| | |
| | | </el-button> |
| | | <el-button type="primary" v-if="permission.auto_dispatch" plain @click="reassign(2)">自动派工 |
| | | </el-button> |
| | | <el-button type="primary" v-if="permission.batch_approve" plain @click="reassign(3)">批量审批 |
| | | </el-button> |
| | | </template> |
| | | <template #menu="scope"> |
| | | <el-button type="primary" text size="default" @click.stop="handleAction(scope.row, scope.index)"> |
| | |
| | | </div> |
| | | <div class="right"> |
| | | <TodolistRightTop :row="row" /> |
| | | <avue-form ref="form" :option="optionApprove" v-model="formApprove" @submit="handleSubmit" /> |
| | | <el-tabs |
| | | type="card" |
| | | class="demo-tabs" |
| | | v-model="activeName" |
| | | > |
| | | <el-tab-pane label="审批" name="approve"> |
| | | <avue-form ref="form" :option="optionApprove" v-model="formApprove" @submit="handleSubmit" /> |
| | | </el-tab-pane> |
| | | <el-tab-pane label="流程轨迹" name="log"> |
| | | <processTrace :item="row" v-if="activeName==='log'"></processTrace> |
| | | </el-tab-pane> |
| | | </el-tabs> |
| | | |
| | | </div> |
| | | </div> |
| | | </el-drawer> |
| | |
| | | </template> |
| | | |
| | | <script> |
| | | import { getList, approve, getAssignee,reassgin,manualDispatch,autoDispatch,getPrevius } from '@/api/flow/todolist'; |
| | | import { getList, approve, getAssignee,reassgin,manualDispatch,autoDispatch,getPrevius,batchApprove } from '@/api/flow/todolist'; |
| | | import { mapGetters } from 'vuex'; |
| | | import dayjs from 'dayjs'; |
| | | import TodolistLeft from './components/TodolistLeft.vue'; |
| | | import TodolistRightTop from './components/TodolistRightTop.vue'; |
| | | import processTrace from './components/process-trace.vue'; |
| | | export default { |
| | | components: { |
| | | TodolistLeft, |
| | | TodolistRightTop |
| | | TodolistRightTop, |
| | | processTrace |
| | | }, |
| | | data() { |
| | | return { |
| | | |
| | | activeName: 'approve', |
| | | applist: [], |
| | | assigneeData: [], |
| | | row: {}, |
| | |
| | | label: 'name', |
| | | value: 'id', |
| | | }, |
| | | display: true, |
| | | filterable: true, |
| | | span: 24, |
| | | disabled: false, |
| | |
| | | }, |
| | | { |
| | | label: '流程名称', |
| | | prop: 'processDefinitionName', |
| | | prop: '', |
| | | width: 100, |
| | | render: ({ row }) => { |
| | | return h('p', |
| | | { |
| | | attrs: {}, |
| | | class: {}, |
| | | style: {}, |
| | | }, row?.variables?.myProcessName) |
| | | } |
| | | },/* |
| | | { |
| | | label: '流程类型', |
| | |
| | | emptyBtn: false, |
| | | column: [ |
| | | { |
| | | label: '审批结果', |
| | | prop: 'approve', |
| | | type: 'radio', |
| | | span: 24, |
| | | display: false, |
| | | dicData: [ |
| | | { label: '通过', value: 'Y' }, |
| | | { label: '驳回', value: 'N' }, |
| | | ], |
| | | rules: [{ required: true, message: '请选择审批结果', trigger: 'blur' }], |
| | | }, |
| | | { |
| | | label: '发送给', |
| | | prop: 'newAssigneeId', |
| | | filterable:true, |
| | | type: 'select', |
| | | // dicUrl: `/blade-mdm/flow/flow-user-list?deptId=0`, |
| | | // dicFlag: true, |
| | |
| | | }, |
| | | span: 24, |
| | | disabled: false, |
| | | display: true, |
| | | dicData: [ |
| | | |
| | | ], |
| | |
| | | // } |
| | | |
| | | }, |
| | | 'reassignForm.approve'(val) { |
| | | if(this.reassignType ===3) { |
| | | if(val === 'Y') { |
| | | this.reassignOption.column[1].disabled = true; |
| | | this.reassignOption.column[1].display = false; |
| | | this.reassignForm.newAssigneeId = ''; |
| | | } else { |
| | | this.reassignOption.column[1].display = false; |
| | | this.reassignOption.column[1].disabled = false; |
| | | this.reassignForm.newAssigneeId = ''; |
| | | } |
| | | } |
| | | |
| | | } |
| | | }, |
| | | computed: { |
| | | ...mapGetters(['userInfo', 'permission']), |
| | |
| | | return { |
| | | manual_dispatch: this.validData(this.permission.manual_dispatch, false), |
| | | auto_dispatch: this.validData(this.permission.auto_dispatch, false), |
| | | batch_approve: this.validData(this.permission.batch_approve, true), |
| | | }; |
| | | }, |
| | | }, |
| | |
| | | getAssignee().then(res => { |
| | | this.assigneeData = res.data.data; |
| | | this.optionApprove.column[1].dicData = this.assigneeData; |
| | | this.reassignOption.column[0].dicData = this.assigneeData; |
| | | this.reassignOption.column[1].dicData = this.assigneeData; |
| | | }) |
| | | this.setApproveBtn() |
| | | }, |
| | |
| | | } |
| | | }, |
| | | setAssignee (row, approve) { |
| | | if (approve === 'Y') { |
| | | if (["check", 'cureCheckTask '].includes(row.taskDefinitionKey)) {// 校对 |
| | | if (approve === 'Y') {//审批通过的情况 |
| | | |
| | | this.optionApprove.column[1].disabled = false; |
| | | if (["check", 'cureCheckTask','repalceCheckTask'].includes(row.taskDefinitionKey)) {// 校对节点 |
| | | this.formApprove.assignee = row.variables.senior; |
| | | } else if (["programmingTask",'cureProgramTask'].includes(row.taskDefinitionKey)) {// 编制,校对 |
| | | } else if (["programmingTask",'cureProgramTask','repalceProgrammingTask'].includes(row.taskDefinitionKey)) {// 编制节点 |
| | | this.formApprove.assignee = row.variables.checker; |
| | | } else if (row.taskDefinitionKey == "teamLeaderTask") {// 任务派工 |
| | | } else if (row.taskDefinitionKey == "teamLeaderTask") {// 任务派工(组长) |
| | | this.optionApprove.column[1].disabled = false; |
| | | this.formApprove.assignee = row.variables.programmer |
| | | } else if (row.taskDefinitionKey == "confirmIsUseableTask") { |
| | | } else if (row.taskDefinitionKey == "confirmIsUseableTask") {//判断程序是否可用节点,都是发送给校对 |
| | | this.formApprove.assignee = row.variables.checker |
| | | } else if (["approveTask", 'seniorApproveTask','replaceApprove'].includes(row.taskDefinitionKey)) {// 高师审核 |
| | | this.optionApprove.column[1].disabled = true; |
| | | this.formApprove.assignee = ''; // 如果是通过,则默认指派给自己 |
| | | this.optionApprove.column[1].disabled = true;//最后一个节点"发送给" 禁用 |
| | | this.formApprove.assignee = ''; // 如果是通过流程直接结束 |
| | | } |
| | | } else if(approve === 'N'){ |
| | | this.formApprove.assignee = '' |
| | | if (["approveTask", 'seniorApproveTask','replaceApprove'].includes(row.taskDefinitionKey)) {// 高师审核 |
| | | this.optionApprove.column[1].disabled = true; |
| | | getPrevius({processInstanceId: row.processInstanceId}).then(res => { |
| | | console.log(res) |
| | | if(res.data.code === 200) { |
| | | |
| | | this.formApprove.assignee = res.data.data // 如果是通过,则默认指派给自己 |
| | | } |
| | | }) |
| | | |
| | | //不通过的情况 |
| | | //根据在线文档34行,'发送给'是禁用,但有默认选项 |
| | | this.optionApprove.column[1].disabled = true; |
| | | |
| | | if (["approveTask", 'seniorApproveTask','replaceApprove'].includes(row.taskDefinitionKey)) { |
| | | //审批节点,上一步是校对 |
| | | this.formApprove.assignee = row.variables.checker; |
| | | }else if(["check", 'cureCheckTask','repalceCheckTask'].includes(row.taskDefinitionKey)){ |
| | | //校对节点,上一步是编程 |
| | | this.formApprove.assignee = row.variables.programmer; |
| | | }else if (["programmingTask"].includes(row.taskDefinitionKey)) { |
| | | // 编制节点,上一步是组长 |
| | | this.formApprove.assignee = row.variables.teamLeader; |
| | | }else if(["cureProgramTask"].includes(row.taskDefinitionKey)) { |
| | | //固化编制节点,不通过就结束了,assignee设置='' |
| | | this.formApprove.assignee = ''; |
| | | }else if(["confirmIsUseableTask"].includes(row.taskDefinitionKey)) { |
| | | //判断是否可用节点,不可用,给编制 |
| | | this.formApprove.assignee = row.variables.programmer; |
| | | }if(['teamLeaderTask'].includes(row.taskDefinitionKey)){ |
| | | this.formApprove.assignee = ''; |
| | | } |
| | | |
| | | }else if(approve === 'R'){ |
| | | //驳回,目前只有检查程序是否可用节点 |
| | | if(["confirmIsUseableTask"].includes(row.taskDefinitionKey)) { |
| | | //判断程序是否可用节点,驳回,给组长 |
| | | this.formApprove.assignee = row.variables.teamLeader; |
| | | } |
| | | } |
| | | |
| | |
| | | }).catch(err => { |
| | | this.$message.success('操作失败'); |
| | | }) |
| | | }).catch(() => { |
| | | // this.$message.info('已取消操作'); |
| | | }); |
| | | } else { |
| | | this.reassignBox = true; |
| | | |
| | | if(val === 3) {//批量审批时 显示通过驳回 |
| | | this.reassignOption.column[0].display = true; |
| | | this.reassignOption.column[0].dicData[1].label = '不通过'; |
| | | this.reassignForm.approve = 'Y'; |
| | | this.reassignForm.newAssigneeId = ''; |
| | | this.reassignOption.column[1].disabled = true; |
| | | this.reassignOption.column[1].display = true; |
| | | } else { |
| | | this.reassignOption.column[0].display = false; |
| | | this.reassignForm.approve = ''; |
| | | |
| | | } |
| | | if(val ===1) { |
| | | this.reassignForm.newAssigneeId = this.transferTaskSelection[0].variables.programmer; |
| | | } |
| | | } |
| | | |
| | | |
| | |
| | | confirmButtonText: this.$t('submitText'), |
| | | cancelButtonText: this.$t('cancelText'), |
| | | type: 'warning', |
| | | }).then(() => { |
| | | }).then((res) => { |
| | | console.log(res,'>>>>>>') |
| | | reassgin({ |
| | | ...form, |
| | | taskId: this.transferTaskSelection[0].taskId, |
| | |
| | | this.$message.error('操作失败'); |
| | | done() |
| | | }) |
| | | }).catch(() => { |
| | | console.log('>>>>>>') |
| | | // this.$message.info('已取消操作'); |
| | | done(); |
| | | }); |
| | | |
| | | } else if (this.reassignType === 1) { |
| | |
| | | console.error(err); |
| | | done() |
| | | }) |
| | | }).catch(() => { |
| | | console.log('>>>>>>') |
| | | // this.$message.info('已取消操作'); |
| | | done(); |
| | | }); |
| | | } else if (this.reassignType === 3) { |
| | | this.$confirm('确认要进行批量审批吗?', '', { |
| | | confirmButtonText: this.$t('submitText'), |
| | | cancelButtonText: this.$t('cancelText'), |
| | | type: 'warning', |
| | | }).then(() => { |
| | | batchApprove({ |
| | | assignee: form.newAssigneeId, |
| | | comment: form.comment, |
| | | approve: form.approve, |
| | | 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() |
| | | }) |
| | | }).catch(() => { |
| | | console.log('>>>>>>') |
| | | // this.$message.info('已取消操作'); |
| | | done(); |
| | | }); |
| | | } |
| | | |
| | | done(); |
| | | }, |
| | | handleAction(row, index) { |
| | | this.formApprove = { |
| | |
| | | |
| | | .right { |
| | | flex: 1; |
| | | padding: 0 10px; |
| | | } |
| | | } |
| | | </style> |