From 686b6f9e7ee9a390e179a3290d70d57c635ac7e1 Mon Sep 17 00:00:00 2001 From: xiangpei <xiangpei@timesnew.cn> Date: 星期二, 31 十二月 2024 15:09:54 +0800 Subject: [PATCH] 流程转办:指定用户组件 --- src/views/flowable/task/myProcess/send/index.vue | 70 +++++++++++++++++++++++++++-------- 1 files changed, 54 insertions(+), 16 deletions(-) diff --git a/src/views/flowable/task/myProcess/send/index.vue b/src/views/flowable/task/myProcess/send/index.vue index 70d044d..e55ed89 100644 --- a/src/views/flowable/task/myProcess/send/index.vue +++ b/src/views/flowable/task/myProcess/send/index.vue @@ -83,7 +83,7 @@ </el-alert> <el-form-item label="鐢ㄦ埛绫诲瀷" prop="peopleType"> <el-select v-model="delegationForm.peopleType" @change="peopleTypeChange" placeholder="璇烽�夋嫨鐢ㄦ埛绫诲瀷"> - <el-option label="鎸囧畾浜哄憳" disabled value="FIX_USER"></el-option> + <el-option label="鎸囧畾浜哄憳" value="FIX_USER"></el-option> <el-option label="鍊欓�夌敤鎴�" disabled value="USER"></el-option> <el-option label="鍊欓�夐儴闂�" value="DEPT"></el-option> <el-option label="鍊欓�夎鑹�" disabled value="ROLE"></el-option> @@ -94,6 +94,13 @@ <div style="display: flex;align-items: center"> <div>{{deptNames}}</div> <el-button style="margin-left: 8px" type="text" @click="editDept">缂栬緫</el-button> + </div> + </el-form-item> + <el-form-item v-if="delegationForm.peopleType === 'FIX_USER'" label="鎸囧畾鐢ㄦ埛" prop="targetId"> + <single-user ref="singleUser" :select-user="delegationForm.targetId" :show="singleUserShow" @close="closeUser" @submit="getSingleUserSelect"/> + <div style="display: flex;align-items: center"> + <div>{{delegationUserSelect.map(item => item.nickName).join(',')}}</div> + <el-button style="margin-left: 8px" type="text" @click="editUser">缂栬緫</el-button> </div> </el-form-item> </el-form> @@ -110,6 +117,7 @@ import {definitionStart, flowXmlAndNode} from "@/api/flowable/definition"; import BpmnViewer from '@/components/Process/viewer'; import Dept from '@/components/flow/Dept' +import SingleUser from '@/components/flow/User/SingleUser' import {completeSubmitFormTask} from "@/api/flowable/process"; import { flowTaskForm } from "@/api/flowable/todo"; import {getNextFlowNodeByStart} from "@/api/flowable/todo"; @@ -125,10 +133,13 @@ FlowUser, FlowRole, Dept, + SingleUser, }, props: {}, data() { return { + singleUserShow: false, // 鎸囧畾鐢ㄦ埛鏄剧ず + delegationUserSelect: [], // 閫変腑鐨勭敤鎴� deptShow: false, // 閮ㄩ棬鏄剧ず deptNames: '', // 閫変腑鐨勯儴闂ㄥ悕绉� delegationDeptSelect: [], // 閫変腑閮ㄩ棬 @@ -194,20 +205,27 @@ }, methods: { delegation() { - this.$confirm(`纭畾瑕佸皢姝や换鍔′氦鐢便��${this.deptNames}銆戝鐞嗗悧?`, '鎻愮ず', { - confirmButtonText: '纭畾', - cancelButtonText: '鍙栨秷', - type: 'warning' - }).then(() => { - taskDelegation(this.delegationForm).then(res => { - this.$message.success("宸插彂璧疯浆鍔炵敵璇�") - this.goBack() - }) - }).catch(() => { - this.$message({ - type: 'info', - message: '宸插彇娑堣浆鍔炴搷浣�' - }); + this.$refs['delegationForm'].validate((valid) => { + if (valid) { + this.$confirm(`纭畾瑕佸皢姝や换鍔′氦鐢便��${this.deptNames}銆戝鐞嗗悧?`, '鎻愮ず', { + confirmButtonText: '纭畾', + cancelButtonText: '鍙栨秷', + type: 'warning' + }).then(() => { + taskDelegation(this.delegationForm).then(res => { + this.$message.success("宸插彂璧疯浆鍔炵敵璇�") + this.goBack() + }) + }).catch(() => { + this.$message({ + type: 'info', + message: '宸插彇娑堣浆鍔炴搷浣�' + }); + }); + } else { + console.log('error submit!!'); + return false; + } }); }, peopleTypeChange(val) { @@ -216,6 +234,8 @@ this.$refs.dept.setCheckList(this.delegationDeptSelect) }) this.deptShow = true + } else if (val === 'FIX_USER') { + this.singleUserShow = true } }, editDept() { @@ -223,6 +243,12 @@ this.$refs.dept.setCheckList(this.delegationDeptSelect) }) this.deptShow = true + }, + editUser() { + this.$nextTick(() => { + this.$refs.singleUser.setChecked(this.delegationForm.targetId) + }) + this.singleUserShow = true }, getDeptSelect(list, names) { console.log(list, names) @@ -233,10 +259,22 @@ } this.deptShow = false }, + getSingleUserSelect(user) { + if (user) { + this.delegationForm.targetId = user.userId + this.delegationUserSelect = [user] + } else { + this.delegationForm.targetId = '' + this.delegationUserSelect = [] + } + this.singleUserShow = false + }, closeDept() { - console.log(this.deptNames) this.deptShow = false }, + closeUser() { + this.singleUserShow = false + }, openDelegation(taskName) { this.delegationForm.taskName = taskName this.delegationForm.taskId = this.taskId -- Gitblit v1.8.0