From 1d4195ba32211d7a4061ad83b4527a936b50cff4 Mon Sep 17 00:00:00 2001
From: 祖安之光 <11848914+light-of-zuan@user.noreply.gitee.com>
Date: 星期四, 25 九月 2025 16:32:49 +0800
Subject: [PATCH] 修改新增

---
 src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue |  101 ++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 81 insertions(+), 20 deletions(-)

diff --git a/src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue b/src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue
index a3a7a50..875e2fd 100644
--- a/src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue
+++ b/src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue
@@ -3,7 +3,7 @@
     <el-dialog
         v-model="dialogVisible"
         :title="state.title"
-        width="700px"
+        width="50%"
         :before-close="handleClose"
         :close-on-press-escape="false"
         :close-on-click-modal="false"
@@ -24,14 +24,34 @@
         <el-form-item label="年龄:" prop="age" v-if="state.title !== '修改密码'">
           <el-input v-model.number.trim="state.form.age" type="number" :disabled="disabled" placeholder="请输入年龄"></el-input>
         </el-form-item>
+        <el-form-item label="学历:" prop="qualification" v-if="state.title !== '修改密码'">
+          <el-select
+              v-model="state.form.qualification"
+              placeholder="请选择学历"
+              style="width: 100%"
+          >
+            <el-option
+                v-for="item in state.quaList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.id"
+            />
+          </el-select>
+        </el-form-item>
         <el-form-item label="职称:" prop="positional" v-if="state.title !== '修改密码'">
-          <el-input v-model.trim="state.form.positional" :disabled="disabled" placeholder="请输入职称"></el-input>
+<!--          <el-input v-model.trim="state.form.positional" :disabled="disabled" placeholder="请输入职称"></el-input>-->
+          <el-radio-group v-model="state.form.positional"  :disabled="disabled">
+            <el-radio label="1">初级</el-radio>
+            <el-radio label="2">中级</el-radio>
+            <el-radio label="3">高级</el-radio>
+          </el-radio-group>
         </el-form-item>
         <el-form-item label="人员类别:"  prop="personType" v-if="state.title !== '修改密码'">
           <el-radio-group v-model="state.form.personType"  :disabled="disabled">
             <el-radio :label="1">技术</el-radio>
             <el-radio :label="2">管理</el-radio>
             <el-radio :label="3">行政</el-radio>
+            <el-radio :label="4">特殊作业</el-radio>
           </el-radio-group>
         </el-form-item>
         <el-form-item label="身份证号:"  prop="idCard" v-if="state.title !== '修改密码'">
@@ -164,6 +184,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">
@@ -207,7 +245,7 @@
 
 const validateUserPhone = (rule, value, callback)=>{
   if(value === ''){
-    callback()
+    callback(new Error('请输入手机号'))
   }else{
     if(!verifyPhone(value)){
       callback(new Error('手机号格式有误'))
@@ -295,7 +333,9 @@
     post: '',
     age: null,
     personType: null,
-    positional: ''
+    qualification: null,
+    positional: '',
+    roles: []
   },
   formRules:{
     name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
@@ -304,16 +344,27 @@
     username: [{ required: true, message: '请选择用户名', trigger: 'blur' }],
     password: [{ required: true, validator: validatePwd, trigger: 'blur' }],
     confirmPassword: [{ required: true, validator: equalToPassword, trigger: 'blur' }],
-    phone: [{ validator: validateUserPhone, trigger: 'blur' }],
+    phone: [{ validator: validateUserPhone,required: true, trigger: 'blur' }],
     userType: [{ required: true, message: '请选择用户类型', trigger: 'blur' }],
     // idCard: [{ validator: verifyId, trigger: 'blur' }],
     entryTime: [{ required: true, message: '请选择入职时间', trigger: 'blur' }],
     age: [{ required: true, message: '请输入年龄', trigger: 'blur' }],
     personType: [{ required: true, message: '请选择人员类别', trigger: 'blur' }],
-    positional: [{ required: true, message: '请输入职称', trigger: 'blur' }]
+    post: [{ required: true, message: '请输入专业', trigger: 'blur' }],
+    qualification: [{ required: true, message: '请选择学历', trigger: 'blur' }],
+    positional: [{ required: true, message: '请输入职称', trigger: 'blur' }],
+    roles: [{ required: true, message: '请选择角色', trigger: 'blur' }]
   },
   companyList: [],
   userList: [],
+  roleList: [],
+  quaList: [
+    {id: 1, name: '高中及以下'},
+    {id: 2, name: '专科'},
+    {id: 3, name: '本科'},
+    {id: 4, name: '硕士'},
+    {id: 5, name: '博士及以上'}
+  ],
   keyword:'',
   pageNum: 1,
   pageSize: 10,
@@ -331,10 +382,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,16 +414,9 @@
     if(res.code === 200){
       state.form = res.data
     }
-  }
-  if(type == 'pwd'){
-    state.form.id = value.id
+    state.form.roles = value.roles.map(i=>i.roleId)
   }
   dialogVisible.value = true
-  if(type === 'edit' && state.form && (state.form.userType === 2||state.form.userType === 3)){
-    await nextTick(() => {
-      // doGetUser()
-    })
-  }
 }
 
 const finshed = ref(false)
@@ -413,8 +458,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 +473,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 +504,9 @@
         companyName: data.companyName,
         age: data.age,
         personType: data.personType,
-        positional: data.positional
+        qualification: data.qualification,
+        positional: data.positional,
+        roles: data.roles
       }
 
       const res = await editUser(param)
@@ -551,7 +611,9 @@
     post: '',
     age: null,
     personType: null,
-    positional: ''
+    qualification: null,
+    positional: '',
+    roles: []
   }
   state.userList = [];
   state.companyList = [];
@@ -592,7 +654,6 @@
   })
 }
 const getSelectUser = (val) => {
-  console.log("valllllllll",val)
   state.form.parentId = val;
 }
 

--
Gitblit v1.9.2