增加八大员缺员兼职查询(按照角色划分)功能模块

系统中所有审核功能页面添加一键审批按钮
This commit is contained in:
lSun 2025-02-11 19:11:33 +08:00
parent b4da1ddc80
commit 65944b86cb
11 changed files with 884 additions and 26 deletions

View File

@ -34,3 +34,12 @@ export function exportSubOrg(query) {
params: query
})
}
// 分公司项目部审批 一键审批
export function batchChangeStatus(data) {
return request({
url: '/system/subOrg/batchChangeStatus',
method: 'POST',
data: data
})
}

View File

@ -105,3 +105,12 @@ export function listDeptAll(query) {
params: query
})
}
// 组织架构变更审核 一键审批
export function orgBatchChangeCheck(data) {
return request({
url: '/system/orgChange/orgBatchChangeCheck',
method: 'POST',
data: data
})
}

View File

@ -93,3 +93,20 @@ export function getUserListCheck(id) {
method: 'get'
})
}
// 轮休审批 一键审批
export function batchLxCheckStatus(data) {
return request({
url: '/system/holiday/batchLxCheckStatus',
method: 'POST',
data: data
})
}
// 临时外出审批 一键审批
export function batchLsCheckStatus(data) {
return request({
url: '/system/holiday/batchLxCheckStatus',
method: 'POST',
data: data
})
}

View File

@ -17,3 +17,12 @@ export function userDistributionCheck(data) {
data: data
})
}
// 项目部角色 一键审批
export function batchRoleCheck(data) {
return request({
url: '/system/proDeptRole/batchRoleCheck',
method: 'POST',
data: data
})
}

View File

@ -0,0 +1,47 @@
import request from '@/utils/request'
// 查询八大员缺员兼职查询-列表查询
export function getList(query) {
return request({
url: '/system/eightMembersVacancy/getList',
method: 'get',
params: query
})
}
// 角色下拉
export function getRoleList(query) {
return request({
url: '/system/eightMembersVacancy/getRoleList',
method: 'get',
params: query
})
}
// 查询缺员项目部数量详情
export function getUnderStaffingList(query) {
return request({
url: '/system/eightMembersVacancy/getUnderStaffingList',
method: 'get',
params: query
})
}
// 查询兼职项目部数量详情
export function getPartTimeList(query) {
return request({
url: '/system/eightMembersVacancy/getPartTimeList',
method: 'get',
params: query
})
}
// 导出
export function exportEightMembersVacancy(query) {
return request({
url: '/system/export/exportEightMembersVacancy',
method: 'get',
responseType: 'blob',
params: query
})
}

View File

@ -44,10 +44,21 @@
v-hasPermi="['dept:org:export']"
>导出
</el-button>
<el-button
type="warning"
plain
icon="el-icon-user-solid"
size="mini"
@click="handleClick"
>一键审批</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="typeList">
<el-table v-loading="loading" :data="typeList" @selection-change="handleSelectionChange" row-key="id" ref="multipleTable">
<el-table-column type="selection" width="55" align="center" :reserve-selection="true" />
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
@ -258,11 +269,26 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title" :visible.sync="openClick" width="1000px" append-to-body>
<el-form ref="form" :model="formDate" :rules="rules" label-width="170px" style="font-size: 22px;text-align: center;">
<span >确认一键审批</span>
<span style="color: red">{{formDate.number}}</span>
<span>条数据</span>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="passClick" v-if="!isView"> </el-button>
<el-button type="danger" @click="rejectClick" v-if="!isView">不同意</el-button>
<el-button @click="cancelClick"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {listType, getType, changeStatus,exportSubOrg} from "@/api/process/branchProExamine";
import {listType, getType, changeStatus,exportSubOrg,batchChangeStatus} from "@/api/process/branchProExamine";
import {listDept, orgPersonSelect} from "@/api/system/dept";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
@ -287,6 +313,7 @@ export default {
title: "",
//
open: false,
openClick: false,
details: true,
//
queryParams: {
@ -299,6 +326,7 @@ export default {
},
//
form: {},
formDate: {},
//
rules: {
parentId: [
@ -715,6 +743,65 @@ export default {
})
return data;
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!=1
this.multiple = !selection.length
},
handleClick() {
if(this.ids.length>0){
this.openClick=true;
this.title = "一键审批";
this.formDate.number = this.ids.length;
}else{
this.$message({ message: '请先勾选数据!', type: 'warning' })
}
},
passClick(){
let param = {
ids:this.ids,
reviewerStatus:'1',
}
this.batchChangeStatus(param)
},
rejectClick(){
let param = {
ids:this.ids,
reviewerStatus:'2',
}
this.batchChangeStatus(param)
},
cancelClick(){
this.openClick = false;
this.resetClick();
},
resetClick() {
this.formDate = {
number: 0,
};
this.resetForm("formDate");
},
/** 一键审批 */
batchChangeStatus(param) {
console.log(param)
batchChangeStatus(param).then(response => {
this.$modal.msgSuccess("操作成功");
this.openClick = false;
this.ids = [];
//
this.$refs.multipleTable.clearSelection();
this.getList();
});
},
}
};
</script>

View File

@ -0,0 +1,332 @@
<template>
<div class="app-container" id="eightMembersVacancy">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="角色选择" prop="roleIds">
<el-select v-model="queryParams.id" placeholder="角色选择" clearable style="width: 100%;">
<el-option
v-for="item in roleList"
:key="item.id"
:label="item.value"
:value="item.id"
/>
</el-select>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button type="warning" icon="el-icon-download" size="mini" @click="handleExport" >导出</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="typeList">
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="角色名称" align="center" prop="roleName" :show-overflow-tooltip="true"/>
<el-table-column label="缺员项目部数量" align="center" prop="normalNum" :show-overflow-tooltip="true">
<template slot-scope="scope">
<div
@click="openVacancyDeptList(scope.row)" style="color: #02a7f0; cursor: pointer"
>
{{ scope.row.vacancyDeptNum }}
</div>
</template>
</el-table-column>
<el-table-column label="兼职项目部数量" align="center" prop="normalNum" :show-overflow-tooltip="true">
<template slot-scope="scope">
<div
@click="openPartTimeJobList(scope.row)" style="color: #02a7f0; cursor: pointer"
>
{{ scope.row.partTimeJobNum }}
</div>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 缺员情况 -->
<el-dialog :title="title" :visible.sync="showVacancyDept" width="1200px" height="1000px" append-to-body >
<el-form :model="queryVacancyDept" ref="queryFormVacancyDept" size="small" :inline="true" v-show="showSearch" label-width="110px">
<el-form-item label="部门名称" prop="orgName">
<el-input
v-model="queryVacancyDept.orgName"
placeholder="请输入部门名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQueryVacancyDept"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQueryVacancyDept">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQueryVacancyDept">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loadingTwo" :data="tableDataVacancyDept" width="900px" height = "600px" row-key="id">
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{ (queryVacancyDept.pageNum - 1) * queryVacancyDept.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="项目部名称" align="center" prop="orgName" :show-overflow-tooltip="true" />
<el-table-column label="项目经理" align="center" prop="projectManager" :show-overflow-tooltip="true" />
<el-table-column label="安全员" align="center" prop="safetyOfficer" :show-overflow-tooltip="true" />
<el-table-column label="质检员" align="center" prop="qualityInspector" :show-overflow-tooltip="true" />
<el-table-column label="项目总工" align="center" prop="projectChiefEngineer" :show-overflow-tooltip="true" />
<el-table-column label="机械员" align="center" prop="machinist" :show-overflow-tooltip="true" />
<el-table-column label="资料员" align="center" prop="document" :show-overflow-tooltip="true" />
<el-table-column label="施工员" align="center" prop="constructionWorker" :show-overflow-tooltip="true" />
<el-table-column label="材料员" align="center" prop="materialMan" :show-overflow-tooltip="true" />
<el-table-column label="其他" align="center" prop="other" :show-overflow-tooltip="true" />
</el-table>
<pagination
v-show="totalTwo>0"
:total="totalTwo"
:page.sync="queryVacancyDept.pageNum"
:limit.sync="queryVacancyDept.pageSize"
@pagination="getUnderStaffingList"
/>
</el-dialog>
<!-- 兼职情况 -->
<el-dialog :title="title" :visible.sync="showPartTime" width="1200px" height="1000px" append-to-body >
<el-form :model="queryPartTime" ref="queryFormPartTime" size="small" :inline="true" v-show="showSearch" label-width="110px">
<el-form-item label="部门名称" prop="orgName">
<el-input
v-model="queryPartTime.orgName"
placeholder="请输入部门名称"
clearable
style="width: 240px"
@keyup.enter.native="handleQueryPartTime"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQueryPartTime">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQueryPartTime">重置</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loadingThree" :data="tableDataPartTime" width="900px" height = "600px" row-key="id">
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{ (queryPartTime.pageNum - 1) * queryPartTime.pageSize + scope.$index + 1 }}</span>
</template>
</el-table-column>
<el-table-column label="项目部名称" align="center" prop="orgName" :show-overflow-tooltip="true" />
<el-table-column label="项目经理" align="center" prop="projectManager" :show-overflow-tooltip="true" />
<el-table-column label="安全员" align="center" prop="safetyOfficer" :show-overflow-tooltip="true" />
<el-table-column label="质检员" align="center" prop="qualityInspector" :show-overflow-tooltip="true" />
<el-table-column label="项目总工" align="center" prop="projectChiefEngineer" :show-overflow-tooltip="true" />
<el-table-column label="机械员" align="center" prop="machinist" :show-overflow-tooltip="true" />
<el-table-column label="资料员" align="center" prop="document" :show-overflow-tooltip="true" />
<el-table-column label="施工员" align="center" prop="constructionWorker" :show-overflow-tooltip="true" />
<el-table-column label="材料员" align="center" prop="materialMan" :show-overflow-tooltip="true" />
<el-table-column label="其他" align="center" prop="other" :show-overflow-tooltip="true" />
</el-table>
<pagination
v-show="totalThree>0"
:total="totalThree"
:page.sync="queryPartTime.pageNum"
:limit.sync="queryPartTime.pageSize"
@pagination="getPartTimeList"
/>
</el-dialog>
</div>
</template>
<script>
import { getList, getRoleList,getUnderStaffingList,getPartTimeList,exportEightMembersVacancy } from '@/api/process/rolesExamineVacancy'
export default {
name: 'EightMembersVacancy',
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
//
typeList: [],
//
title: '',
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
id: undefined
},
roleList: [],
//
form: {},
showVacancyDept:false,
queryVacancyDept: {
pageNum: 1,
pageSize: 10,
orgName: undefined,
id:undefined
},
loadingTwo: false,
tableDataVacancyDept:[],
totalTwo: 0,
showPartTime:false,
queryPartTime: {
pageNum: 1,
pageSize: 10,
orgName: undefined,
id:undefined
},
loadingThree: false,
tableDataPartTime:[],
totalThree: 0,
}
},
created() {
this.getList()
this.getRoleList()
},
methods: {
/** 查询下拉选 */
getRoleList() {
getRoleList().then(response => {
this.roleList = response.data
})
},
/** 查询列表 */
getList() {
this.loading = true
getList(this.queryParams).then(response => {
this.typeList = response.rows
this.total = response.total
this.loading = false
}
)
},
/** 缺员项目部数量 */
openVacancyDeptList(row) {
this.title = '缺员情况'
this.queryVacancyDept.id = row.id
this.showVacancyDept = true
this.getUnderStaffingList()
},
/** 查询缺员情况列表 */
getUnderStaffingList() {
this.loadingTwo = true
getUnderStaffingList(this.queryVacancyDept).then(response => {
this.tableDataVacancyDept = response.rows.map(item => this.replaceEmptyFields(item));
this.totalTwo = response.total
this.loadingTwo = false
})
},
/** 兼职项目部数量 */
openPartTimeJobList(row) {
this.title = '兼职情况'
this.queryPartTime.id = row.id
this.showPartTime = true
this.getPartTimeList()
},
/** 查询兼职情况列表 */
getPartTimeList() {
this.loadingThree = true
getPartTimeList(this.queryPartTime).then(response => {
this.tableDataPartTime = response.rows.map(item => this.replaceEmptyFields(item));
this.totalThree = response.total
this.loadingThree = false
})
},
replaceEmptyFields(item) {
//
const fieldsToCheck = [
'projectManager', 'safetyOfficer', 'qualityInspector',
'projectChiefEngineer', 'machinist', 'document',
'constructionWorker', 'materialMan', 'other'
];
//
fieldsToCheck.forEach(field => {
if (!item[field]) {
item[field] = '缺员';
}
});
return item;
},
/** 导出按钮操作 */
handleExport() {
this.queryParams.exportType="八大员缺员兼职查询导出"
exportEightMembersVacancy(this.queryParams).then(res => {
this.downloadFile({ fileName: `八大员缺员兼职_${new Date().getTime()}.xlsx`, fileData: res, fileType: 'application/vnd.ms-excel;charset=utf-8' })
})
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1
this.getList()
},
/** 重置按钮操作 */
resetQuery() {
this.queryParams.id = undefined
this.resetForm('queryForm')
this.handleQuery()
},
/** 搜索缺员按钮操作 */
handleQueryVacancyDept() {
this.queryVacancyDept.pageNum = 1;
this.getUnderStaffingList();
},
/** 重置缺员按钮操作 */
resetQueryVacancyDept() {
this.resetForm('queryFormVacancyDept')
this.handleQueryVacancyDept()
},
/** 搜索兼职按钮操作 */
handleQueryPartTime() {
this.queryPartTime.pageNum = 1;
this.getPartTimeList();
},
/** 重置兼职按钮操作 */
resetQueryPartTime() {
this.resetForm('queryFormPartTime')
this.handleQueryPartTime()
},
}
}
</script>

View File

@ -32,6 +32,13 @@
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button
type="warning"
plain
icon="el-icon-user-solid"
size="mini"
@click="handleClick"
>一键审批</el-button>
</el-form-item>
</el-form>
@ -49,8 +56,8 @@
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="tableList">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange" row-key="id" ref="multipleTable">
<el-table-column type="selection" width="55" align="center" :reserve-selection="true" :selectable="selectableRow" />
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
@ -188,16 +195,30 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title" :visible.sync="openClick" width="1000px" append-to-body>
<el-form ref="form" :model="formDate" :rules="rules" label-width="170px" style="font-size: 22px;text-align: center;">
<span >确认一键审批</span>
<span style="color: red">{{formDate.number}}</span>
<span>条数据</span>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="passClick" v-if="!isView"> </el-button>
<el-button type="danger" @click="rejectClick" v-if="!isView">不同意</el-button>
<el-button @click="cancelClick"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {
listOrg, getOrg, delOrg, addOrg, updateOrg, changeOrgStatus, exportOrg, getPostName,
getAttGroupList,getAllList
getAttGroupList,getAllList,orgBatchChangeCheck
} from "@/api/process/orgApply";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
import {changeHolidayStatus} from "@/api/process/rest";
export default {
name: "OrgExam",
data() {
@ -226,6 +247,7 @@
title: "",
//
open: false,
openClick: false,
isEdit: false,
isView: false,
userList:[],
@ -244,6 +266,7 @@
personOptions:[],
//
form: {},
formDate: {},
//
rules: {
userName:[
@ -516,6 +539,73 @@
this.getList();
});
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!=1
this.multiple = !selection.length
},
handleClick() {
if(this.ids.length>0){
this.openClick=true;
this.title = "一键审批";
this.formDate.number = this.ids.length;
}else{
this.$message({ message: '请先勾选数据!', type: 'warning' })
}
},
passClick(){
let param = {
ids:this.ids,
isCheck:'1',
}
this.orgBatchChangeCheck(param)
},
rejectClick(){
let param = {
ids:this.ids,
isCheck:'2',
}
this.orgBatchChangeCheck(param)
},
cancelClick(){
this.openClick = false;
this.resetClick();
},
resetClick() {
this.formDate = {
number: 0,
};
this.resetForm("formDate");
},
selectableRow(row,index){
if(row.isCheck==0){
return true
}else {
return false
}
},
/** 一键审批 */
orgBatchChangeCheck(param) {
console.log(param)
orgBatchChangeCheck(param).then(response => {
this.$modal.msgSuccess("操作成功");
this.openClick = false;
this.ids = [];
//
this.$refs.multipleTable.clearSelection();
this.getList();
});
},
}
};
</script>

View File

@ -25,11 +25,19 @@
>导出</el-button>
</el-col>
<el-button
type="warning"
plain
icon="el-icon-user-solid"
size="mini"
@click="handleClick"
>一键审批</el-button>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange" row-key="id" ref="multipleTable">
<el-table-column type="selection" width="55" align="center" :reserve-selection="true" :selectable="selectableRow" />
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
@ -68,7 +76,7 @@
@click="handleUpdate(scope.row)"
v-hasPermi="['flow:outExam:edit']"
v-if="scope.row.examineStatus==0"
></el-button>
></el-button>
<el-button
size="mini"
v-hasPermi="['flow:outExam:query']"
@ -218,11 +226,34 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title" :visible.sync="openClick" width="1000px" append-to-body>
<el-form ref="form" :model="formDate" :rules="rules" label-width="170px" style="font-size: 22px;text-align: center;">
<span >确认一键审批</span>
<span style="color: red">{{formDate.number}}</span>
<span>条数据</span>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="passClick" v-if="!isView"> </el-button>
<el-button type="danger" @click="rejectClick" v-if="!isView">不同意</el-button>
<el-button @click="cancelClick"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { checkListHoliday,getHoliday,changeHolidayStatus,exportHoliday,getPostName,getUserListCheck} from "@/api/process/rest";
import {
checkListHoliday,
getHoliday,
changeHolidayStatus,
exportHoliday,
getPostName,
getUserListCheck,
batchLsCheckStatus
} from '@/api/process/rest'
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
@ -263,6 +294,7 @@ export default {
title: "",
//
open: false,
openClick: false,
isView: false,
userList:[],
isAgreeList:[{id:'0',name:'否'},{id:'1',name:'是'}],
@ -282,6 +314,7 @@ export default {
attDayList:[{id:0,label:'周一'},{id:1,label:'周二'},{id:2,label:'周三'},{id:3,label:'周四'},{id:4,label:'周五'},{id:5,label:'周六'},{id:6,label:'周日'}],
//
form: {},
formDate: {},
//
rules: {
// examineOpinion: [
@ -356,7 +389,7 @@ export default {
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.Id)
this.ids = selection.map(item => item.id)
this.single = selection.length!=1
this.multiple = !selection.length
},
@ -466,6 +499,64 @@ export default {
})
},
handleClick() {
if(this.ids.length>0){
this.openClick=true;
this.title = "一键审批";
this.formDate.number = this.ids.length;
}else{
this.$message({ message: '请先勾选数据!', type: 'warning' })
}
},
passClick(){
let param = {
ids:this.ids,
examineStatus:'1',
}
this.batchLsCheckStatus(param)
},
rejectClick(){
let param = {
ids:this.ids,
examineStatus:'2',
}
this.batchLsCheckStatus(param)
},
cancelClick(){
this.openClick = false;
this.resetClick();
},
resetClick() {
this.formDate = {
number: 0,
};
this.resetForm("formDate");
},
selectableRow(row,index){
if(row.examineStatus==0){
return true
}else {
return false
}
},
/** 一键审批 */
batchLsCheckStatus(param) {
console.log(param)
batchLsCheckStatus(param).then(response => {
this.$modal.msgSuccess("操作成功");
this.openClick = false;
this.ids = [];
//
this.$refs.multipleTable.clearSelection();
this.getList();
});
},
}
};
</script>

View File

@ -25,13 +25,21 @@
size="mini"
@click="handleExport"
>导出</el-button>
<el-button
type="warning"
plain
icon="el-icon-user-solid"
size="mini"
@click="handleClick"
>一键审批</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange">
<!-- <el-table-column type="selection" width="55" align="center" /> -->
<el-table v-loading="loading" :data="tableList" @selection-change="handleSelectionChange" row-key="id" ref="multipleTable">
<el-table-column type="selection" width="55" align="center" :reserve-selection="true" :selectable="selectableRow" />
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
@ -70,7 +78,7 @@
v-if="scope.row.examineStatus==0"
v-hasPermi="['flow:restExam:edit']"
@click="handleUpdate(scope.row)"
></el-button>
></el-button>
<el-button
size="mini"
v-hasPermi="['flow:restExam:query']"
@ -216,11 +224,27 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title" :visible.sync="openClick" width="1000px" append-to-body>
<el-form ref="form" :model="formDate" :rules="rules" label-width="170px" style="font-size: 22px;text-align: center;">
<span >确认一键审批</span>
<span style="color: red">{{formDate.number}}</span>
<span>条数据</span>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="passClick" v-if="!isView"> </el-button>
<el-button type="danger" @click="rejectClick" v-if="!isView">不同意</el-button>
<el-button @click="cancelClick"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { checkListHoliday,getHoliday,changeHolidayStatus,exportHoliday,getPostName,getUserList } from "@/api/process/rest";
import { checkListHoliday,getHoliday,changeHolidayStatus,exportHoliday,getPostName,getUserList,batchLxCheckStatus } from "@/api/process/rest";
import Treeselect from "@riophae/vue-treeselect";
import "@riophae/vue-treeselect/dist/vue-treeselect.css";
export default {
@ -261,6 +285,7 @@ export default {
title: "",
//
open: false,
openClick: false,
isView: false,
userList:[],
isAgreeList:[{id:'0',name:'否'},{id:'1',name:'是'}],
@ -280,6 +305,7 @@ export default {
attDayList:[{id:0,label:'周一'},{id:1,label:'周二'},{id:2,label:'周三'},{id:3,label:'周四'},{id:4,label:'周五'},{id:5,label:'周六'},{id:6,label:'周日'}],
//
form: {},
formDate: {},
//
rules: {
// examineOpinion: [
@ -356,7 +382,7 @@ export default {
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.Id)
this.ids = selection.map(item => item.id)
this.single = selection.length!=1
this.multiple = !selection.length
},
@ -466,6 +492,62 @@ export default {
})
},
handleClick() {
if(this.ids.length>0){
this.openClick=true;
this.title = "一键审批";
this.formDate.number = this.ids.length;
}else{
this.$message({ message: '请先勾选数据!', type: 'warning' })
}
},
passClick(){
let param = {
ids:this.ids,
examineStatus:'1',
}
this.batchLxCheckStatus(param)
},
rejectClick(){
let param = {
ids:this.ids,
examineStatus:'2',
}
this.batchLxCheckStatus(param)
},
cancelClick(){
this.openClick = false;
this.resetClick();
},
resetClick() {
this.formDate = {
number: 0,
};
this.resetForm("formDate");
},
selectableRow(row,index){
if(row.examineStatus==0){
return true
}else {
return false
}
},
/** 一键审批 */
batchLxCheckStatus(param) {
console.log(param)
batchLxCheckStatus(param).then(response => {
this.$modal.msgSuccess("操作成功");
this.openClick = false;
this.ids = [];
//
this.$refs.multipleTable.clearSelection();
this.getList();
});
},
}
};
</script>

View File

@ -37,10 +37,18 @@
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery">搜索</el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery">重置</el-button>
<el-button
type="warning"
plain
icon="el-icon-user-solid"
size="mini"
@click="handleClick"
>一键审批</el-button>
</el-form-item>
</el-form>
<el-table v-loading="loading" :data="typeList" >
<el-table v-loading="loading" :data="typeList" @selection-change="handleSelectionChange" row-key="departmentId" ref="multipleTable">
<el-table-column type="selection" width="55" align="center" :reserve-selection="true" />
<el-table-column label="序号" align="center" width="80" type="index">
<template slot-scope="scope">
<span>{{ (queryParams.pageNum - 1) * queryParams.pageSize + scope.$index + 1 }}</span>
@ -53,8 +61,8 @@
<el-table-column label="审批状态" align="center" prop="reviewerStatus" :show-overflow-tooltip="true" >
<template slot-scope="scope">
<span v-if="scope.row.userName == null "></span>
<span v-else-if="scope.row.reviewerStatus == 0 ">待审</span>
<span v-else-if="scope.row.reviewerStatus == 1 ">已审</span>
<span v-else-if="scope.row.reviewerStatus == 0 ">待审</span>
<span v-else-if="scope.row.reviewerStatus == 1 ">已审</span>
<span v-else-if="scope.row.reviewerStatus == 2 ">未通过</span>
<span v-else></span>
</template>
@ -68,7 +76,7 @@
icon="el-icon-edit"
@click="handleAllocation(scope.row)"
v-hasPermi="['dept:check:edit']"
></el-button>
></el-button>
</template>
</el-table-column>
</el-table>
@ -101,11 +109,26 @@
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
<!-- 添加或修改参数配置对话框 -->
<el-dialog :title="title" :visible.sync="openClick" width="1000px" append-to-body>
<el-form ref="form" :model="formDate" :rules="rules" label-width="170px" style="font-size: 22px;text-align: center;">
<span >确认一键审批</span>
<span style="color: red">{{formDate.number}}</span>
<span>条数据</span>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="passClick" v-if="!isView"> </el-button>
<el-button type="danger" @click="rejectClick" v-if="!isView">不同意</el-button>
<el-button @click="cancelClick"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import {getRoleCheckList, userDistributionCheck} from "@/api/process/rolesExamine";
import {getRoleCheckList, userDistributionCheck,batchRoleCheck} from "@/api/process/rolesExamine";
import {getInfoById} from "@/api/process/roles";
export default {
@ -130,6 +153,7 @@
title: "",
//
open: false,
openClick: false,
//
queryParams: {
pageNum: 1,
@ -140,6 +164,7 @@
},
//
form: {},
formDate: {},
};
},
mounted() {
@ -194,7 +219,7 @@
this.resetForm("queryForm");
this.handleQuery();
},
/** 审人员按钮操作 */
/** 审人员按钮操作 */
async handleAllocation(row) {
this.reset();
const orgId = row.orgId;
@ -205,11 +230,11 @@
this.form = response.data;
})
this.open = true;
this.title = "项目部角色审";
this.title = "项目部角色审";
},
/**
* 同意
* 同意
*/
handleAgree(){
this.form.reviewerStatus = "1";
@ -217,7 +242,7 @@
},
/**
* 驳回
* 驳回
*/
handleReject(){
this.form.reviewerStatus = "2";
@ -230,7 +255,7 @@
if (valid) {
userDistributionCheck(this.form).then(response => {
if(this.form.reviewerStatus=="1"){
this.$modal.msgSuccess("审成功");
this.$modal.msgSuccess("审成功");
}else if(this.form.reviewerStatus=="2"){
this.$modal.msgSuccess("驳回成功");
}
@ -241,6 +266,66 @@
}
});
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.departmentId)
this.single = selection.length!=1
this.multiple = !selection.length
},
handleClick() {
if(this.ids.length>0){
this.openClick=true;
this.title = "一键审批";
this.formDate.number = this.ids.length;
}else{
this.$message({ message: '请先勾选数据!', type: 'warning' })
}
},
passClick(){
let param = {
ids:this.ids,
reviewerStatus:'1',
}
this.batchRoleCheck(param)
},
rejectClick(){
let param = {
ids:this.ids,
reviewerStatus:'2',
}
this.batchRoleCheck(param)
},
cancelClick(){
this.openClick = false;
this.resetClick();
},
resetClick() {
this.formDate = {
number: 0,
};
this.resetForm("formDate");
},
/** 一键审批 */
batchRoleCheck(param) {
console.log(param)
batchRoleCheck(param).then(response => {
this.$modal.msgSuccess("操作成功");
this.openClick = false;
this.ids = [];
//
this.$refs.multipleTable.clearSelection();
this.getList();
});
},
},
};
</script>