| | |
| | | :close-on-click-modal="false" |
| | | > |
| | | <el-form :model="state.form" size="default" ref="busRef" :rules="state.formRules" label-width="150px" > |
| | | <el-form-item label="部门:" prop="signDeptId" > |
| | | <el-form-item label="部门:" prop="deptIds" > |
| | | <el-cascader |
| | | style="width: 100%" |
| | | clearable |
| | | v-model="state.form.signDeptId" |
| | | placeholder="请选择部门" |
| | | v-model="state.deptIds" |
| | | :options="state.options" |
| | | @change="selectValue" |
| | | :props="{ expandTrigger: 'hover', value: 'deptId',label: 'deptName',emitPath: false}"></el-cascader> |
| | | :props="{ multiple:true, expandTrigger: 'hover', value: 'deptId',label: 'deptName',emitPath: false}"> |
| | | </el-cascader> |
| | | </el-form-item> |
| | | <el-form-item label="签署人:" prop="signUserId" > |
| | | <el-form-item label="签署人:" prop="initiaiUsers" > |
| | | <el-select |
| | | clearable |
| | | v-model="state.form.signUserId" |
| | | v-model="state.initiaiUsers" |
| | | filterable |
| | | remote |
| | | multiple |
| | | reserve-keyword |
| | | placeholder="请输入签署人名称" |
| | | remote-show-suffix |
| | | :remote-method="(val)=>getUserList(val,state.form.signDeptId)" |
| | | style="width: 100%" |
| | | @change="changeUser" |
| | | :remote-method="(val)=>getUserList(val,state.deptIds)" |
| | | style=" width:100%" |
| | | value-key="userId" |
| | | > |
| | | <el-option |
| | | v-for="item in state.userList" |
| | | :key="item.userId" |
| | | :label="item.nickName" |
| | | :value="item.userId" |
| | | :value="item" |
| | | /> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | import {listUser} from "@/api/system/user"; |
| | | import {signFlow} from "@/api/signAgreement/signProject"; |
| | | import {getInfo} from "@/api/login"; |
| | | import {userListByDept} from "@/api/signAgreement/template"; |
| | | |
| | | const { proxy } = getCurrentInstance(); |
| | | const dialogVisible = ref(false); |
| | |
| | | const state = reactive({ |
| | | form: { |
| | | itemId: null, |
| | | signUserId: null, |
| | | signDeptId: null |
| | | initiaiUserId:null, |
| | | userDept: [] |
| | | }, |
| | | user: {}, |
| | | options: [], |
| | | userList: [], |
| | | formRules:{ |
| | | signDeptId: [{ required: true, trigger: "blur", message:'请选择部门' }], |
| | | signUserId: [{ required: true, trigger: "blur", message:'请选择签署人' }], |
| | | }, |
| | | // formRules:{ |
| | | // deptIds: [{ required: true, trigger: "blur", message:'请选择部门' }], |
| | | // initiaiUsers: [{ required: true, trigger: "blur", message:'请选择签署人' }], |
| | | // }, |
| | | deptIds: [], |
| | | initiaiUsers: [] |
| | | }) |
| | | |
| | | |
| | |
| | | } |
| | | const selectValue = (val) => { |
| | | state.userList = [] |
| | | state.form.signUserId = [] |
| | | state.form.initiaiUserId = null |
| | | state.initiaiUsers = [] |
| | | state.form.userDept = [] |
| | | getUserList("",val) |
| | | |
| | | } |
| | | |
| | | const changeUser = (val) =>{ |
| | | const userIds = val.map(item => item.userId) |
| | | state.form.initiaiUserId = userIds.join(',') |
| | | state.form.userDept = val.map(i => i.userId + '_' + i.deptId) |
| | | } |
| | | const getDept = () => { |
| | | listDept().then(response => { |
| | | state.options = proxy.handleTree(response.data, "deptId",'parentId','children'); |
| | |
| | | data.userName = state.user.userName |
| | | data.deptId = state.user.deptId |
| | | data.deptName = state.user.dept.deptName |
| | | if(data.initiaiUserId == null) { |
| | | ElMessage.warning('请选择签署人') |
| | | return; |
| | | } |
| | | const res = await signFlow(data) |
| | | if(res.code === 200){ |
| | | ElMessage({ |
| | |
| | | const reset = () => { |
| | | state.form = { |
| | | itemId: null, |
| | | signUserId: null, |
| | | signDeptId: null |
| | | initiaiUserId:null, |
| | | userDept: [] |
| | | } |
| | | state.deptIds = [] |
| | | state.initiaiUsers = [] |
| | | } |
| | | const getUserList = async (val,deptId)=>{ |
| | | if(deptId == '' || deptId == null){ |
| | | if(deptId.length ==0 || deptId == null){ |
| | | // ElMessage.warning("请选择部门!") |
| | | return; |
| | | } |
| | |
| | | deptId: deptId, |
| | | nickName: val, |
| | | } |
| | | const res = await listUser(queryParams) |
| | | const res = await userListByDept(queryParams) |
| | | if (res.code == 200) { |
| | | state.userList = res.rows |
| | | state.userList = res.rows.map(item => { |
| | | return { |
| | | ...item, |
| | | nickName: item.nickName + ' ( ' + item.dept.deptName + ' ) ' |
| | | } |
| | | }) |
| | | } else { |
| | | ElMessage.warning(res.message) |
| | | } |
| | |
| | | pageSize: 10, |
| | | deptId: deptId |
| | | } |
| | | const res = await listUser(queryParams) |
| | | const res = await userListByDept(queryParams) |
| | | if (res.code == 200) { |
| | | state.userList = res.rows |
| | | state.userList = res.rows.map(item => { |
| | | return { |
| | | ...item, |
| | | nickName: item.nickName + ' ( ' + item.dept.deptName + ' ) ' |
| | | } |
| | | }) |
| | | } else { |
| | | ElMessage.warning(res.message) |
| | | } |