| | |
| | | @size-change="sizeChange" @refresh-change="refreshChange" @on-load="onLoad" |
| | | @selection-change="selectionTransferTask"> |
| | | <template #menu-left> |
| | | <el-button type="primary" plain @click="reassign">重新指派 |
| | | <el-button type="primary" plain @click="reassign(0)">重新指派</el-button> |
| | | <el-button type="primary" v-if="permission.manual_dispatch" plain @click="reassign(1)">手动派工 |
| | | </el-button> |
| | | <el-button type="primary" v-if="permission.auto_dispatch" plain @click="reassign(2)">自动派工 |
| | | </el-button> |
| | | </template> |
| | | <template #menu="scope"> |
| | |
| | | </el-button> |
| | | </template> |
| | | </avue-crud> |
| | | <el-dialog title="指派" append-to-body v-model="reassignBox" width="30%"> |
| | | <el-dialog title=" " append-to-body v-model="reassignBox" width="30%"> |
| | | <avue-form ref="reassginform" :option="reassignOption" v-model="reassignForm" @submit="toPerson"></avue-form> |
| | | </el-dialog> |
| | | <el-drawer title="审批" append-to-body v-model="approveBox" size="100%" v-if="approveBox"> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getList, approve, getAssignee,reassgin } from '@/api/flow/todolist'; |
| | | import { getList, approve, getAssignee,reassgin,manualDispatch,autoDispatch } from '@/api/flow/todolist'; |
| | | import { mapGetters } from 'vuex'; |
| | | import dayjs from 'dayjs'; |
| | | import TodolistLeft from './components/TodolistLeft.vue'; |
| | |
| | | formApprove: { |
| | | comment: '', |
| | | approve: '', // 默认同意 |
| | | assignee: '' |
| | | }, |
| | | optionApprove: { |
| | | labelWidth: 100, |
| | |
| | | label: 'name', |
| | | value: 'id', |
| | | }, |
| | | filterable: true, |
| | | span: 24, |
| | | disabled: false, |
| | | dicData: [ |
| | | |
| | | ], |
| | | // rules: [{ required: true, message: '请选择下一审批用户', trigger: 'blur' }], |
| | | }, |
| | | { |
| | | label: '工序版次', |
| | | prop: 'processEdition', |
| | | type: 'input', |
| | | span: 24, |
| | | // disabled: true, |
| | | display: false,// 隐藏显示 |
| | | // rules: [{ required: true, message: '请选择下一审批用户', trigger: 'blur' }], |
| | | }, |
| | | { |
| | |
| | | query: {}, |
| | | loading: true, |
| | | option: { |
| | | rowKey: "taskId", |
| | | addBtn: false, |
| | | editBtn: false, |
| | | delBtn: false, |
| | |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: '标题', |
| | | prop: '', |
| | | width: 100, |
| | | render: ({ row }) => { |
| | | return h('p', |
| | | { |
| | | attrs: {}, |
| | | class: {}, |
| | | style: {}, |
| | | }, row?.variables?.title) |
| | | } |
| | | }, |
| | | { |
| | | label: '任务名称', |
| | | label: '流程名称', |
| | | prop: 'processDefinitionName', |
| | | width: 100, |
| | | }, |
| | | },/* |
| | | { |
| | | label: '流程类型', |
| | | width: 100, |
| | | prop: 'categoryName', |
| | | }, |
| | | },*/ |
| | | |
| | | { |
| | | label: '机床', |
| | |
| | | data: [], |
| | | transferTaskSelection: [], |
| | | reassignBox: false, |
| | | reassignType: 0, // 0:重新指派,1:自动派工 2: 自动派工 |
| | | reassignOption: { |
| | | submitBtn: true, |
| | | emptyBtn: false, |
| | |
| | | // }); |
| | | // }, |
| | | 'formApprove.approve'(val) { |
| | | if (val === 'Y' && this.row.taskDefinitionKey === 'approveTask') { |
| | | this.optionApprove.column[1].disabled = true; |
| | | this.formApprove.assignee = ''; // 如果是通过,则默认指派给自己 |
| | | } else { |
| | | this.optionApprove.column[1].disabled = false; |
| | | } |
| | | this.setAssignee(this.row, val); |
| | | // if(val === 'Y' && ['confirmIsUseableTask'].includes(this.row.taskDefinitionKey) && this.row.variables.isProcessEditionSame=='N') { |
| | | // // this.optionApprove.column[2].display = true; // 显示工序版次 |
| | | // } else { |
| | | // this.optionApprove.column[2].display = false; // 隐藏工序版次 |
| | | // } |
| | | |
| | | }, |
| | | }, |
| | | computed: { |
| | | ...mapGetters(['userInfo', 'permission']), |
| | | // permissionList() { |
| | | // return { |
| | | // addBtn: this.validData(this.permission.menu_add, false), |
| | | // viewBtn: this.validData(this.permission.menu_view, false), |
| | | // delBtn: this.validData(this.permission.menu_delete, false), |
| | | // editBtn: this.validData(this.permission.menu_edit, false), |
| | | // }; |
| | | // }, |
| | | permissionList() { |
| | | return { |
| | | manual_dispatch: this.validData(this.permission.manual_dispatch, false), |
| | | auto_dispatch: this.validData(this.permission.auto_dispatch, false), |
| | | }; |
| | | }, |
| | | }, |
| | | mounted() { |
| | | getAssignee().then(res => { |
| | |
| | | this.optionApprove.column[1].dicData = this.assigneeData; |
| | | this.reassignOption.column[0].dicData = this.assigneeData; |
| | | }) |
| | | this.setApproveBtn() |
| | | }, |
| | | methods: { |
| | | // 设置审批结果的状态 |
| | | setApproveBtn () { |
| | | // 1.审批界面radio文本修改,普通节点的2个radio文本 通过(approve=Y),不通过(现在的驳回)(approve=N) |
| | | this.optionApprove.column[0].dicData = [ |
| | | { label: '通过', value: 'Y' }, |
| | | { label: '不通过', value: 'N' }, |
| | | ]; |
| | | switch (this.row.taskDefinitionKey) { |
| | | case 'teamLeaderTask': // 任务派工 |
| | | case 'cureProgramTask': // 固化编制 |
| | | this.optionApprove.column[0].dicData = [ |
| | | { label: '通过', value: 'Y' }, |
| | | { label: '结束', value: 'N' }, |
| | | ]; |
| | | break; |
| | | case 'confirmIsUseableTask': // 检查程序是否可用 |
| | | this.optionApprove.column[0].dicData = [ |
| | | { label: '通过', value: 'Y' }, |
| | | { label: '不通过', value: 'N' }, |
| | | { label: '驳回', value: 'R' }, |
| | | ]; |
| | | break; |
| | | case 'seniorApproveTask': // 高师审核 |
| | | case 'approveTask': // 高师审核 |
| | | |
| | | default: |
| | | this.optionApprove.column[0].dicData = [ |
| | | { label: '通过', value: 'Y' }, |
| | | { label: '不通过', value: 'N' }, |
| | | ]; |
| | | break; |
| | | } |
| | | }, |
| | | setAssignee (row, approve) { |
| | | if (approve === 'Y') { |
| | | if (["check", 'cureCheckTask '].includes(row.taskDefinitionKey)) {// 校对 |
| | | this.formApprove.assignee = row.variables.senior; |
| | | } else if (["programmingTask",'cureProgramTask'].includes(row.taskDefinitionKey)) {// 编制,校对 |
| | | this.formApprove.assignee = row.variables.checker; |
| | | } else if (row.taskDefinitionKey == "teamLeaderTask") {// 任务派工 |
| | | this.formApprove.assignee = row.variables.programmer |
| | | } else if (row.taskDefinitionKey == "confirmIsUseableTask") { |
| | | this.formApprove.assignee = row.variables.checker |
| | | } else if (["approveTask", 'seniorApproveTask'].includes(row.taskDefinitionKey)) {// 高师审核 |
| | | this.optionApprove.column[1].disabled = true; |
| | | this.formApprove.assignee = ''; // 如果是通过,则默认指派给自己 |
| | | } |
| | | } else if(approve === 'N'){ |
| | | this.formApprove.assignee = '' |
| | | if (["approveTask", 'seniorApproveTask'].includes(row.taskDefinitionKey)) {// 高师审核 |
| | | this.optionApprove.column[1].disabled = true; |
| | | this.formApprove.assignee = row.varables.assignee; // 如果是通过,则默认指派给自己 |
| | | } |
| | | } |
| | | |
| | | }, |
| | | selectionTransferTask(list) { |
| | | this.transferTaskSelection = list; |
| | | }, |
| | | reassign() {// 重新指派 |
| | | reassign(val) {// 重新指派 |
| | | this.reassignType = val; |
| | | if (this.transferTaskSelection.length === 0) { |
| | | this.$message.warning('请选择需要重新指派的任务'); |
| | | this.$message.warning('请选择需要操作的任务'); |
| | | return; |
| | | } |
| | | if (this.transferTaskSelection.length > 1) { |
| | | if (this.transferTaskSelection.length > 1 && this.reassignType === 0) { |
| | | this.$message.warning('请选择一条'); |
| | | return; |
| | | } |
| | | this.reassignBox = true; |
| | | if(val === 2) { |
| | | this.$confirm('请确认是否进行批量自动派工?', '', { |
| | | confirmButtonText: this.$t('submitText'), |
| | | cancelButtonText: this.$t('cancelText'), |
| | | type: 'warning', |
| | | }).then(() => { |
| | | autoDispatch({ |
| | | taskIds: this.transferTaskSelection.map(v => v.taskId), |
| | | processInstanceIds: this.transferTaskSelection.map(v => v.processInstanceId), |
| | | }).then(res => { |
| | | if(res.data.code !== 200) { |
| | | this.$message.error(res.data.msg); |
| | | return; |
| | | } |
| | | this.$message.success('操作成功'); |
| | | this.onLoad(this.page, this.query); |
| | | |
| | | }).catch(err => { |
| | | this.$message.success('操作失败'); |
| | | }) |
| | | }); |
| | | } else { |
| | | this.reassignBox = true; |
| | | } |
| | | |
| | | |
| | | }, |
| | | toPerson(form, done) { |
| | | this.$confirm('请确认是否指派', '', { |
| | | confirmButtonText: this.$t('submitText'), |
| | | cancelButtonText: this.$t('cancelText'), |
| | | type: 'warning', |
| | | }).then(() => { |
| | | console.log('toPerson', form); |
| | | reassgin({ |
| | | ...form, |
| | | taskId: this.transferTaskSelection[0].taskId, |
| | | processInstanceId: this.transferTaskSelection[0].processInstanceId, |
| | | }).then(res => { |
| | | this.$message.success('指派成功'); |
| | | this.reassignBox = false; |
| | | this.$refs?.reassginform?.resetForm(); |
| | | this.onLoad(this.page, this.query); |
| | | done() |
| | | let tip = '' |
| | | this.reassignType === 1 ? tip = '请确认是否手动派工' : this.reassignType === 2 ? tip = '请确认是否自动派工' : tip = '请确认是否重新指派'; |
| | | if (this.reassignType === 0) { |
| | | this.$confirm(tip, '', { |
| | | confirmButtonText: this.$t('submitText'), |
| | | cancelButtonText: this.$t('cancelText'), |
| | | type: 'warning', |
| | | }).then(() => { |
| | | reassgin({ |
| | | ...form, |
| | | taskId: this.transferTaskSelection[0].taskId, |
| | | processInstanceId: this.transferTaskSelection[0].processInstanceId, |
| | | }).then(res => { |
| | | if(res.data.code !== 200) { |
| | | this.$message.error(res.data.msg); |
| | | return; |
| | | } |
| | | this.$message.success('操作成功'); |
| | | this.reassignBox = false; |
| | | this.$refs?.reassginform?.resetForm(); |
| | | this.onLoad(this.page, this.query); |
| | | done() |
| | | |
| | | }).catch(err => { |
| | | console.error(err); |
| | | done() |
| | | }) |
| | | }); |
| | | }).catch(err => { |
| | | this.$message.error('操作失败'); |
| | | done() |
| | | }) |
| | | }); |
| | | |
| | | } else if (this.reassignType === 1) { |
| | | this.$confirm(tip, '', { |
| | | confirmButtonText: this.$t('submitText'), |
| | | cancelButtonText: this.$t('cancelText'), |
| | | type: 'warning', |
| | | }).then(() => { |
| | | manualDispatch({ |
| | | assignee: form.newAssigneeId, |
| | | comment: form.comment, |
| | | taskIds: this.transferTaskSelection.map(v => v.taskId), |
| | | processInstanceIds: this.transferTaskSelection.map(v => v.processInstanceId), |
| | | }).then(res => { |
| | | if(res.data.code !== 200) { |
| | | this.$message.error(res.data.msg); |
| | | return; |
| | | } |
| | | this.$message.success('操作成功'); |
| | | this.reassignBox = false; |
| | | this.$refs?.reassginform?.resetForm(); |
| | | this.onLoad(this.page, this.query); |
| | | done() |
| | | |
| | | }).catch(err => { |
| | | console.error(err); |
| | | done() |
| | | }) |
| | | }); |
| | | } |
| | | |
| | | done(); |
| | | }, |
| | | handleAction(row, index) { |
| | | this.formApprove = { |
| | | comment: '', |
| | | approve: '', // 默认同 |
| | | approve: 'Y', // 默认同 |
| | | } |
| | | this.approveBox = true; |
| | | this.row = row |
| | | if (row.taskDefinitionKey == "check") { |
| | | this.formApprove.assignee = row.variables.senior; |
| | | } else if (row.taskDefinitionKey == "programmingTask") { |
| | | this.formApprove.assignee = row.variables.checker; |
| | | } else if (row.taskDefinitionKey == "teamLeaderTask") { |
| | | this.formApprove.assignee = row.variables.programmer |
| | | } else if (row.taskDefinitionKey == "confirmIsUseableTask") { |
| | | this.formApprove.assignee = row.variables.checker |
| | | } else if (row.taskDefinitionKey == "approveTask") { |
| | | |
| | | } |
| | | this.setAssignee(row, this.formApprove.approve); |
| | | console.log('handleAction', row, index); |
| | | }, |
| | | handleSubmit(form, done) { |