| | |
| | | |
| | | <el-form-item label="最初签署人:" prop="deptId" > |
| | | <el-cascader |
| | | :show-all-levels="false" |
| | | style="width: 170px" |
| | | clearable |
| | | placeholder="请选择部门" |
| | | v-model="state.form.deptId" |
| | | v-model="state.deptIds" |
| | | :options="state.options" |
| | | @change="selectValue" |
| | | :props="{ expandTrigger: 'hover', value: 'deptId',label: 'deptName',emitPath: false}"> |
| | | :props="{ multiple:true, expandTrigger: 'hover', value: 'deptId',label: 'deptName',emitPath: false}"> |
| | | </el-cascader> |
| | | <el-select |
| | | clearable |
| | | v-model="state.form.initiaiUserId" |
| | | v-model="state.initiaiUsers" |
| | | filterable |
| | | remote |
| | | multiple |
| | | reserve-keyword |
| | | placeholder="请输入签署人名称" |
| | | remote-show-suffix |
| | | :remote-method="(val)=>getUserList(val,state.form.deptId)" |
| | | @change="changeUser" |
| | | :remote-method="(val)=>getUserList(val,state.deptIds)" |
| | | style=" width:170px;margin-left:20px" |
| | | 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> |
| | |
| | | </div> |
| | | </template> |
| | | <script setup> |
| | | import {reactive, ref, toRefs} from 'vue' |
| | | import {onMounted, reactive, ref, toRefs} from 'vue' |
| | | import {ElMessage} from "element-plus"; |
| | | import {listDept} from "@/api/system/dept"; |
| | | import {listUser} from "@/api/system/user"; |
| | | import {addSignProject} from "@/api/signAgreement/signProject"; |
| | | import Cookies from "js-cookie"; |
| | | import {userListByDept} from "@/api/signAgreement/template"; |
| | | |
| | | const { proxy } = getCurrentInstance(); |
| | | const dialogVisible = ref(false); |
| | |
| | | itemName: '', |
| | | deptId: null, |
| | | initiaiUserId: null, |
| | | templateId: null |
| | | templateId: null, |
| | | userDept: [] |
| | | }, |
| | | options: [], |
| | | userList: [], |
| | | formRules:{ |
| | | deptId: [{ required: true, trigger: "blur", message:'请选择部门' }], |
| | | // deptId: [{ required: true, trigger: "blur", message:'请选择部门' }], |
| | | itemName: [{ required: true, trigger: "blur", message:'请输入项目名称' }], |
| | | }, |
| | | deptIds: [], |
| | | initiaiUsers: [] |
| | | }) |
| | | |
| | | onMounted( () => { |
| | | const userInfo = JSON.parse(Cookies.get('userInfo')) |
| | | state.form.deptId = userInfo.deptId |
| | | }); |
| | | |
| | | const openDialog = async (value) => { |
| | | await getDept() |
| | | state.form.templateId = value.id |
| | | |
| | | dialogVisible.value = true; |
| | | } |
| | | const selectValue = (val) => { |
| | | state.userList = [] |
| | | state.form.initiaiUserId = null |
| | | state.initiaiUsers = [] |
| | | state.form.userDept = [] |
| | | getUserList("",val) |
| | | |
| | | } |
| | |
| | | initiaiUserId: null, |
| | | templateId: null |
| | | } |
| | | state.deptIds = [] |
| | | } |
| | | const getUserList = async (val,deptId)=>{ |
| | | if(deptId == '' || deptId == null){ |
| | | console.log('dept',deptId) |
| | | 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) |
| | | } |
| | | } |
| | | } |
| | | |
| | | 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) |
| | | } |
| | | defineExpose({ |
| | | openDialog |
| | | }); |