From 85e935b85bbae57e4ec1fab28d7027b867998ec2 Mon Sep 17 00:00:00 2001 From: 祖安之光 <11848914+light-of-zuan@user.noreply.gitee.com> Date: 星期二, 29 七月 2025 16:14:11 +0800 Subject: [PATCH] 修改新增 --- src/views/build/conpanyFunctionConsult/staffManage/staffRegister/index.vue | 22 ++++++++++ src/views/menuPage.vue | 4 +- src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue | 53 ++++++++++++++++++++++---- 3 files changed, 68 insertions(+), 11 deletions(-) diff --git a/src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue b/src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue index bb793d3..7bba3b4 100644 --- a/src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue +++ b/src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue @@ -164,6 +164,24 @@ <el-form-item label="专业:" prop="post" v-if="state.title !== '修改密码' && state.form.userType !== 0"> <el-input v-model.trim="state.form.post" :disabled="disabled" placeholder="请输入专业"></el-input> </el-form-item> + <el-form-item label="角色:" prop="roles" v-if="state.title !== '修改密码'"> + <el-select + clearable + v-model="state.form.roles" + filterable + :disabled="disabled" + placeholder="请选择角色" + multiple + style="width: 100%" + > + <el-option + v-for="item in state.roleList" + :key="item.roleId" + :label="item.roleName" + :value="item.roleId" + /> + </el-select> + </el-form-item> </el-form> <template #footer v-if="state.title !='查看'"> <span class="dialog-footer"> @@ -295,7 +313,8 @@ post: '', age: null, personType: null, - positional: '' + positional: '', + roles: [] }, formRules:{ name: [{ required: true, message: '请输入姓名', trigger: 'blur' }], @@ -310,10 +329,12 @@ entryTime: [{ required: true, message: '请选择入职时间', trigger: 'blur' }], age: [{ required: true, message: '请输入年龄', trigger: 'blur' }], personType: [{ required: true, message: '请选择人员类别', trigger: 'blur' }], - positional: [{ required: true, message: '请输入职称', trigger: 'blur' }] + positional: [{ required: true, message: '请输入职称', trigger: 'blur' }], + roles: [{ required: true, message: '请选择角色', trigger: 'blur' }] }, companyList: [], userList: [], + roleList: [], keyword:'', pageNum: 1, pageSize: 10, @@ -331,10 +352,11 @@ }); const disabled = ref(false); const userInfo = ref() -const openDialog = async (type, value, companyId) => { +const openDialog = async (type, value, companyId, roleList) => { userInfo.value = JSON.parse(Cookies.get('userInfo')) await getCompanyList() state.currentUserType = userInfo.value.userType + state.roleList = roleList if(state.currentUserType === 0){ state.isAdmin = true; state.form.companyId = null; @@ -362,6 +384,7 @@ if(res.code === 200){ state.form = res.data } + state.form.roles = value.roles.map(i=>i.roleId) } if(type == 'pwd'){ state.form.id = value.id @@ -413,8 +436,14 @@ return; } if(state.title == '新增'){ - const {confirmPassword,id,...data} = state.form + const {confirmPassword,id,...data} = JSON.parse(JSON.stringify(state.form)) data.password = Base64.encode(data.password) + data.roles = data.roles.map((item)=>{ + return { + roleId: item, + roleName: state.roleList.find(i=>i.roleId == item)?.roleName + } + }) const res = await addUser(data) if(res.code == 200){ ElMessage.success(res.message) @@ -422,11 +451,18 @@ handleClose() dialogVisible.value = false; }else{ + ElMessage.warning(res.message) } }else if(state.title == '编辑'){ - const {confirmPassword,...data} = state.form + const {confirmPassword,...data} = JSON.parse(JSON.stringify(state.form)) data.password = Base64.encode(data.password) + data.roles = data.roles.map((item)=>{ + return { + roleId: item, + roleName: state.roleList.find(i=>i.roleId == item)?.roleName + } + }) const param = { name: data.name, sex:data.sex, @@ -446,7 +482,8 @@ companyName: data.companyName, age: data.age, personType: data.personType, - positional: data.positional + positional: data.positional, + roles: data.roles } const res = await editUser(param) @@ -551,7 +588,8 @@ post: '', age: null, personType: null, - positional: '' + positional: '', + roles: [] } state.userList = []; state.companyList = []; @@ -592,7 +630,6 @@ }) } const getSelectUser = (val) => { - console.log("valllllllll",val) state.form.parentId = val; } diff --git a/src/views/build/conpanyFunctionConsult/staffManage/staffRegister/index.vue b/src/views/build/conpanyFunctionConsult/staffManage/staffRegister/index.vue index 35b800c..2dc2697 100644 --- a/src/views/build/conpanyFunctionConsult/staffManage/staffRegister/index.vue +++ b/src/views/build/conpanyFunctionConsult/staffManage/staffRegister/index.vue @@ -78,6 +78,11 @@ <el-table-column label="联系方式" prop="phone" align="center"/> <el-table-column label="专业" prop="post" align="center"/> <el-table-column label="用户类型" prop="userTypeName" align="center"/> + <el-table-column label="角色" prop="userTypeName" align="center"> + <template #default="scope"> + {{ scope.row.roles?.map(i=>i.roleName).join('、') }} + </template> + </el-table-column> <el-table-column label="操作" align="center" class-name="small-padding fixed-width" > <template #default="scope"> <el-button link type="primary" @click="openDialog('view',scope.row)">查看</el-button> @@ -107,6 +112,7 @@ import {delUser, getUser} from "@/api/onlineEducation/user"; import Cookies from "js-cookie"; import useUserStore from "@/store/modules/user"; +import {listRole} from "@/api/system/role"; const userStore = useUserStore() const { proxy } = getCurrentInstance(); @@ -124,6 +130,7 @@ dataList: [], isAdmin: false, companyList: [], + roleList: [], expertData: [], userTypeList: [ { @@ -173,6 +180,7 @@ data.queryParams.companyId = userStore.companyId } await getList() + await getRoleList() }) onUnmounted(()=>{ @@ -196,6 +204,18 @@ } loading.value = false await getAllList() +} + +const getRoleList = () => { + listRole(proxy.addDateRange({ + pageNum: 1, + pageSize: 999, + roleName: undefined, + roleKey: undefined, + status: undefined + }, [])).then(response => { + data.roleList = response.data.list + }); } const getCompanyList = async ()=>{ @@ -239,7 +259,7 @@ ElMessage.warning('非管理员身份不可操作') return; } - dialogRef.value.openDialog(type, value, data.queryParams.companyId); + dialogRef.value.openDialog(type, value, data.queryParams.companyId,data.roleList); } /** 重置新增的表单以及其他数据 */ diff --git a/src/views/menuPage.vue b/src/views/menuPage.vue index 5944604..09dd2d3 100644 --- a/src/views/menuPage.vue +++ b/src/views/menuPage.vue @@ -51,7 +51,7 @@ </div> </div> </div> - <user-dialog ref="reviewRef" ></user-dialog> + <user-dialog ref="reviewRef"></user-dialog> </div> </template> @@ -407,4 +407,4 @@ .system-card:hover p { transform: translateZ(20px); } -</style> \ No newline at end of file +</style> -- Gitblit v1.9.2