| | |
| | | </el-button-group> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="候选角色" v-else> |
| | | <el-form-item label="候选角色" v-else-if="bpmnFormData.userType === 'candidateGroups'"> |
| | | <el-input-tag v-model="bpmnFormData.candidateGroups" :value="bpmnFormData.candidateGroups"/> |
| | | <el-button-group class="ml-4" style="margin-top: 4px"> |
| | | <!--候选角色--> |
| | | <el-tooltip class="box-item" effect="dark" content="候选角色" placement="bottom"> |
| | | <el-button size="mini" type="primary" icon="el-icon-user" @click="multipleRoleCheck"/> |
| | | </el-tooltip> |
| | | <!--选择表达式--> |
| | | <el-tooltip class="box-item" effect="dark" content="选择表达式" placement="bottom"> |
| | | <el-button size="mini" type="warning" icon="el-icon-postcard" @click="singleExpCheck"/> |
| | | </el-tooltip> |
| | | </el-button-group> |
| | | </el-form-item> |
| | | |
| | | <el-form-item label="候选部门" v-else> |
| | | <el-input-tag v-model="bpmnFormData.candidateGroups" :value="bpmnFormData.candidateGroups"/> |
| | | <el-button-group class="ml-4" style="margin-top: 4px"> |
| | | <!--候选部门--> |
| | | <el-tooltip class="box-item" effect="dark" content="候选部门" placement="bottom"> |
| | | <el-button size="mini" type="primary" icon="el-icon-user" @click="deptVisible = true"/> |
| | | </el-tooltip> |
| | | <!--选择表达式--> |
| | | <el-tooltip class="box-item" effect="dark" content="选择表达式" placement="bottom"> |
| | |
| | | </div> |
| | | </el-dialog> |
| | | |
| | | <flow-dept :checkeds="selectData.candidateGroups" :show="deptVisible" @close="closeDept" @submit="submitDept"/> |
| | | |
| | | <!--选择表达式--> |
| | | <el-dialog |
| | | title="选择表达式" |
| | |
| | | import FlowRole from '@/components/flow/Role' |
| | | import FlowExp from '@/components/flow/Expression' |
| | | import ElInputTag from '@/components/flow/ElInputTag' |
| | | import FlowDept from '@/components/flow/Dept' |
| | | import {StrUtil} from '@/utils/StrUtil' |
| | | |
| | | export default { |
| | |
| | | FlowUser, |
| | | FlowRole, |
| | | FlowExp, |
| | | ElInputTag |
| | | ElInputTag, |
| | | FlowDept |
| | | }, |
| | | /** 组件传值 */ |
| | | props : { |
| | |
| | | userVisible: false, |
| | | roleVisible: false, |
| | | expVisible: false, |
| | | deptVisible: false, |
| | | isIndeterminate: true, |
| | | checkType: 'single', // 选类 |
| | | userType: '', |
| | | userTypeOption: [ |
| | | {label: '指定人员', value: 'assignee'}, |
| | | {label: '候选人员', value: 'candidateUsers'}, |
| | | {label: '候选角色', value: 'candidateGroups'} |
| | | {label: '候选角色', value: 'candidateGroups'}, |
| | | {label: '候选部门', value: 'candidateDeptGroups'}, |
| | | ], |
| | | checkAll: false, |
| | | bpmnFormData: { |
| | |
| | | selectData: { |
| | | assignee: null, |
| | | candidateUsers: null, |
| | | candidateGroups: null, |
| | | candidateGroups: null, // 角色 |
| | | candidateDeptGroups: [], // 部门 |
| | | exp: null, |
| | | }, |
| | | otherExtensionList:[], |
| | |
| | | |
| | | }, |
| | | methods: { |
| | | closeDept() { |
| | | this.deptVisible = false |
| | | this.selectData.candidateGroups = [] |
| | | }, |
| | | |
| | | // 初始化表单 |
| | | resetTaskForm() { |
| | | // 初始化设为空值 |
| | |
| | | const value = this.modelerStore.element?.businessObject[key] || this.bpmnFormData[key]; |
| | | this.$set(this.bpmnFormData, key, value); |
| | | } |
| | | // 人员信息回显 |
| | | // 人员、角色、部门信息回显 |
| | | this.checkValuesEcho(this.bpmnFormData); |
| | | }, |
| | | |
| | |
| | | assignee: null, |
| | | candidateUsers: null, |
| | | candidateGroups: null, |
| | | candidateDeptGroups: null, |
| | | exp: null, |
| | | } |
| | | // 写入userType节点信息到xml |
| | |
| | | if (StrUtil.isNotBlank(formData.expId)) { |
| | | this.getExpList(formData.expId, formData.userType); |
| | | } else { |
| | | if ("candidateGroups" === formData.userType) { |
| | | this.getRoleList(formData[formData.userType], formData.userType); |
| | | console.log("我去", formData.userType) |
| | | if ("candidateGroups" === formData.userType || "candidateDeptGroups" === formData.userType) { |
| | | this.getRoleList(formData["candidateGroups"], "candidateGroups"); |
| | | } else { |
| | | this.getUserList(formData[formData.userType], formData.userType); |
| | | } |
| | |
| | | // 获取角色信息 |
| | | getRoleList(val, key) { |
| | | if (StrUtil.isNotBlank(val)) { |
| | | const newArr = this.modelerStore.roleList?.filter(i => val.split(',').includes(i.roleId.toString())) |
| | | this.bpmnFormData[key] = newArr.map(item => item.roleName).join(','); |
| | | if ('assignee' === key) { |
| | | this.selectData[key] = newArr.find(item => item.roleId.toString() === val).roleId; |
| | | |
| | | // 根据id筛选出是角色还是部门 |
| | | const roleAndDeptIds = val.split(","); |
| | | const deptIds = roleAndDeptIds.filter(item => item.includes("dept")); |
| | | const roleIds = roleAndDeptIds.filter(item => !item.includes("dept")); |
| | | // 谁有值就是谁 |
| | | if (roleIds && roleIds.length > 0) { |
| | | console.log("我去1", roleIds) |
| | | const newArr = this.modelerStore.roleList?.filter(i => roleIds.includes(i.roleId.toString())) |
| | | this.bpmnFormData[key] = newArr.map(item => item.roleName).join(','); |
| | | if ('assignee' === key) { |
| | | this.selectData[key] = newArr.find(item => item.roleId.toString() === val).roleId; |
| | | } else { |
| | | this.selectData[key] = newArr.map(item => item.roleId); |
| | | } |
| | | } else { |
| | | this.selectData[key] = newArr.map(item => item.roleId); |
| | | console.log("我去2", deptIds) |
| | | const newArr = this.modelerStore.deptList?.filter(i => deptIds.includes(i.id)) |
| | | this.bpmnFormData[key] = newArr.map(item => item.label).join(','); |
| | | if ('assignee' === key) { |
| | | this.selectData[key] = newArr.find(item => item.id === val).id; |
| | | } else { |
| | | this.selectData[key] = newArr.map(item => item.id); |
| | | } |
| | | } |
| | | |
| | | |
| | | } |
| | | }, |
| | | |
| | |
| | | } |
| | | }, |
| | | |
| | | // 部门选中数据 |
| | | submitDept(checkList, names) { |
| | | this.deptVisible = false |
| | | // this.selectData.candidateDeptGroups = checkList |
| | | if (checkList && names) { |
| | | this.deleteFlowAttar(); |
| | | this.bpmnFormData["candidateGroups"] = names; |
| | | this.updateCustomElement('dataType', 'fixed'); |
| | | // userType = candidateGroups |
| | | // 这里只能写死为:candidateGroups,因为flowable用户组的关键字就是它 |
| | | this.updateCustomElement("candidateGroups", checkList); |
| | | this.handleSelectData("candidateGroups", checkList); |
| | | } |
| | | }, |
| | | |
| | | // 处理人员回显 |
| | | handleSelectData(key, value) { |
| | | for (let oldKey in this.selectData) { |