From 89ca288fbb88ca7083030e2f332ec7a9731d8cd6 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期一, 24 三月 2025 10:37:57 +0800 Subject: [PATCH] bug修改 --- src/views/signProject/components/circulation.vue | 127 ++++++++++++++++++++++++++++------------- 1 files changed, 86 insertions(+), 41 deletions(-) diff --git a/src/views/signProject/components/circulation.vue b/src/views/signProject/components/circulation.vue index dd5f2c3..fe2a562 100644 --- a/src/views/signProject/components/circulation.vue +++ b/src/views/signProject/components/circulation.vue @@ -9,34 +9,37 @@ :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="deptId" > + <el-form-item label="部门:" prop="deptIds" > <el-cascader style="width: 100%" clearable - v-model="state.form.deptId" + 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="people" > + <el-form-item label="签署人:" prop="initiaiUsers" > <el-select clearable - v-model="state.form.people" + v-model="state.initiaiUsers" filterable - multiple remote - + multiple reserve-keyword - placeholder="请输入签署人名称(可多选)" + placeholder="请输入签署人名称" remote-show-suffix - :remote-method="(val)=>getUserList(val,state.form.deptId)" - 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> @@ -55,6 +58,9 @@ import {ElMessage} from "element-plus"; import {listDept} from "@/api/system/dept"; 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); @@ -65,35 +71,54 @@ const state = reactive({ form: { - id: '', - deptId: '', - people: [] + itemId: null, + initiaiUserId:null, + userDept: [] }, + user: {}, options: [], userList: [], - formRules:{ - deptId: [{ required: true, trigger: "blur", message:'请选择部门' }], - people: [{ required: true, trigger: "blur", message:'请选择签署人' }], - }, + // formRules:{ + // deptIds: [{ required: true, trigger: "blur", message:'请选择部门' }], + // initiaiUsers: [{ required: true, trigger: "blur", message:'请选择签署人' }], + // }, + deptIds: [], + initiaiUsers: [] }) const openDialog = async (value) => { await getDept() + await getUserInfo() + state.form.itemId = value.id dialogVisible.value = true; } const selectValue = (val) => { state.userList = [] - state.form.people = [] + 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'); - console.log('response',state.options) }); +} + +const getUserInfo = async () => { + const res = await getInfo() + if(res.code == 200){ + state.user = res.user + }else{ + ElMessage.warning(res.message) + } } @@ -101,20 +126,27 @@ const valid = await busRef.value.validate(); if(valid){ const {id, ...data} = JSON.parse(JSON.stringify(state.form)) - // const res = await addWarehouse(data) - // if(res.code === 200){ - // ElMessage({ - // type: 'success', - // message: '新增成功' - // }); - // }else{ - // ElMessage.warning(res.message) - // } + data.userId = state.user.userId + 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({ + type: 'success', + message: '流转成功' + }); + }else{ + ElMessage.warning(res.message) + } emit("getList") busRef.value.clearValidate(); reset(); dialogVisible.value = false; - } } @@ -126,23 +158,31 @@ } const reset = () => { state.form = { - id: '', - name: '', - remark: '', + itemId: null, + initiaiUserId:null, + userDept: [] } + state.deptIds = [] + state.initiaiUsers = [] } const getUserList = async (val,deptId)=>{ - if(deptId == '' || deptId == null){ - ElMessage.warning("请选择部门!") + if(deptId.length ==0 || deptId == null){ + // ElMessage.warning("请选择部门!") return; } if(val != ""){ const queryParams = { - name: val, + 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) } @@ -152,9 +192,14 @@ 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) } -- Gitblit v1.9.2