From 050ee6d982a8ae40011f1f723198d23fedae40b3 Mon Sep 17 00:00:00 2001
From: 祖安之光 <11848914+light-of-zuan@user.noreply.gitee.com>
Date: 星期二, 15 七月 2025 09:39:13 +0800
Subject: [PATCH] 修改新增

---
 src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue |  167 +++++++++++++++++++++++++++++++++++--------------------
 1 files changed, 107 insertions(+), 60 deletions(-)

diff --git a/src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue b/src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue
index e06122a..b8fff89 100644
--- a/src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue
+++ b/src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue
@@ -21,6 +21,18 @@
             <el-radio :label="1">女</el-radio>
           </el-radio-group>
         </el-form-item>
+        <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="positional" v-if="state.title !== '修改密码'">
+          <el-input v-model.trim="state.form.positional" :disabled="disabled" placeholder="请输入职称"></el-input>
+        </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-group>
+        </el-form-item>
         <el-form-item label="身份证号:"  prop="idCard" v-if="state.title !== '修改密码'">
           <el-input v-model.trim="state.form.idCard" :maxlength="18" :disabled="disabled" placeholder="请输入身份证号"></el-input>
         </el-form-item>
@@ -30,6 +42,14 @@
               type="date"
               value-format="YYYY-MM-DD"
               placeholder="请选择入职时间"
+          />
+        </el-form-item>
+        <el-form-item label="离职时间:" prop="resignTime" v-if="state.title !== '修改密码'" >
+          <el-date-picker
+              v-model="state.form.resignTime"
+              type="date"
+              value-format="YYYY-MM-DD"
+              placeholder="请选择离职时间"
           />
         </el-form-item>
         <el-form-item label="密码:" prop="password" v-if="state.title == '新增' || state.title == '修改密码'">
@@ -43,14 +63,15 @@
         </el-form-item>
         <el-form-item label="用户类型:" v-if="state.title !== '修改密码'" prop="userType">
           <el-radio-group v-model="state.form.userType"  :disabled="disabled" @change="changeType" v-if="state.title == '新增'">
-            <el-radio :label="0" v-if="state.currentUserType == 0">管理员</el-radio>
-            <el-radio :label="1" v-if="state.currentUserType == 0 ">企业级</el-radio>
-            <el-radio :label="2" v-if="state.currentUserType == 1 ">部门级</el-radio>
-            <el-radio :label="3" v-if="!state.isAdmin">车间(岗位)级</el-radio>
-            <el-radio :label="4" v-if="state.currentUserType == 0">其他</el-radio>
+            <el-radio :label="0" v-if="state.currentUserType == 0">系统管理员</el-radio>
+            <el-radio :label="6" v-if="state.currentUserType == 0 || state.currentUserType == 6 ">企业管理员</el-radio>
+            <el-radio :label="1" v-if="state.currentUserType == 0 || state.currentUserType == 6 || state.currentUserType ==1">企业用户</el-radio>
+            <el-radio :label="2" v-if="state.currentUserType !== 3">部门级</el-radio>
+            <el-radio :label="3">车间(岗位)级</el-radio>
+<!--            <el-radio :label="4" v-if="state.currentUserType == 0">其他</el-radio>-->
           </el-radio-group>
-          <span v-else-if="state.title == '查看'">{{state.currentUserType === 0 ? '管理员' : state.currentUserType === 1 ? '企业级' : state.currentUserType === 2 ? '部门级' : state.currentUserType === 3 ? '车间级' :'其他'}}</span>
-          <span v-else-if="state.title == '编辑'">{{state.form.userType === 0 ? '管理员' : state.form.userType === 1 ? '企业级' : state.form.userType === 2 ? '部门级' : state.form.userType === 3 ? '车间级' :'其他'}}</span>
+          <span v-else-if="state.title == '查看'">{{state.currentUserType === 0 ? '系统管理员' : state.currentUserType === 1 ? '企业用户' : state.currentUserType === 6 ? '企业管理员' : state.currentUserType === 2 ? '部门级' : state.currentUserType === 3 ? '车间级' :'其他'}}</span>
+          <span v-else-if="state.title == '编辑'">{{state.form.userType === 0 ? '系统管理员' : state.form.userType === 1 ? '企业用户' : state.form.userType === 2 ? '部门级' : state.form.userType === 3 ? '车间级' :'其他'}}</span>
           <!--          <el-radio-group v-model="state.form.userType"  :disabled="disabled" @change="changeType" v-else-if="state.title == '编辑'">-->
 <!--            <el-radio :label="0" v-if="state.currentUserType == 0">管理员</el-radio>-->
 <!--            <el-radio :label="1" >企业级</el-radio>-->
@@ -103,7 +124,22 @@
 
 
         </el-form-item>
-        <el-form-item label="部门:" prop="deptId" v-if="state.title !== '修改密码'">
+        <el-form-item label="所属上级账号:" prop="companyName" v-if="showChild">
+          <scorllSelect
+              :disabled="disabled || state.title =='编辑'"
+              ref="scrollRef"
+              v-model="state.form.parentName"
+              @getval = "getSelectUser"
+              placeholder="请选择"
+              clearable
+              style="width: 45%;"
+              filterable
+              remote
+              searchKey="username"
+              :methods="getUser">
+          </scorllSelect>
+        </el-form-item>
+        <el-form-item label="部门:" prop="deptId" v-if="state.title !== '修改密码' && state.form.userType !== 0">
           <el-select
               clearable
               v-model="state.form.deptId"
@@ -120,26 +156,11 @@
             />
           </el-select>
         </el-form-item>
-        <el-form-item label="职务:" prop="duty" v-if="state.title !== '修改密码'" >
+        <el-form-item label="职务:" prop="duty" v-if="state.title !== '修改密码' && state.form.userType !== 0">
           <el-input v-model.trim="state.form.duty" :disabled="disabled" placeholder="请输入职务"></el-input>
         </el-form-item>
-        <el-form-item label="专业:" prop="post" v-if="state.title !== '修改密码'" >
+        <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="companyName" v-if="showChild">
-          <scorllSelect
-              :disabled="disabled || state.title =='编辑'"
-              ref="scrollRef"
-              v-model="state.form.parentName"
-              @getval = "getSelectUser"
-              placeholder="请选择"
-              clearable
-              style="width: 45%;"
-              filterable
-              remote
-              searchKey="username"
-              :methods="getUser">
-          </scorllSelect>
         </el-form-item>
       </el-form>
       <template #footer v-if="state.title !='查看'">
@@ -156,7 +177,7 @@
 import { View } from "@element-plus/icons-vue";
 import scorllSelect from '@/components/scrollSelect/index.vue'
 import {ElMessage} from "element-plus";
-import {verifyPhone, verifyPwd, verifyUsername} from "@/utils/validate";
+import {verifyPhone, verifyPwd, verifyUsername,verifyIdCard} from "@/utils/validate";
 import { checkUserName, checkPhone } from "@/api/login"
 import {addUser, editUser, getUserById, resetPwd} from "@/api/onlineEducation/user"
 import {Base64} from "js-base64"
@@ -184,10 +205,22 @@
 
 const validateUserPhone = (rule, value, callback)=>{
   if(value === ''){
-    callback(new Error('请输入手机号'))
+    callback()
   }else{
     if(!verifyPhone(value)){
       callback(new Error('手机号格式有误'))
+    }else{
+      callback()
+    }
+  }
+}
+
+const verifyId = (rule, value, callback)=>{
+  if(value === ''){
+    callback()
+  }else{
+    if(!verifyIdCard(value)){
+      callback(new Error('身份证号格式有误'))
     }else{
       callback()
     }
@@ -253,29 +286,32 @@
     companyName: '',
     parentId: null,
     entryTime: '',
+    resignTime: '',
     idCard: '',
     deptId: null,
     duty: '',
-    post: ''
+    post: '',
+    age: null,
+    personType: null,
+    positional: ''
   },
   formRules:{
     name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
     companyName: [{ required: true, message: '请选择所在企业', trigger: 'blur' }],
-    deptId: [{ required: true, message: '请选择部门', trigger: 'blur' }],
-    username: [{ required: true, trigger: "blur", validator: validateUsername }],
+    // deptId: [{ required: true, message: '请选择部门', trigger: 'blur' }],
+    username: [{ required: true, message: '请选择用户名', trigger: 'blur' }],
     password: [{ required: true, validator: validatePwd, trigger: 'blur' }],
     confirmPassword: [{ required: true, validator: equalToPassword, trigger: 'blur' }],
-    // phone: [{ required: true, validator: validateUserPhone, trigger: 'blur' }],
+    // phone: [{ validator: validateUserPhone, trigger: 'blur' }],
     userType: [{ required: true, message: '请选择用户类型', trigger: 'blur' }],
-    // idCard: [{ required: true, message: '请输入身份证号', trigger: 'blur' }],
+    // idCard: [{ validator: verifyId, trigger: 'blur' }],
     entryTime: [{ required: true, message: '请选择入职时间', trigger: 'blur' }],
-    duty: [{ required: true, message: '请输入职务', trigger: 'blur' }],
-    // post: [{ required: true, message: '请输入专业', trigger: 'blur' }]
+    age: [{ required: true, message: '请输入年龄', trigger: 'blur' }],
+    personType: [{ required: true, message: '请选择人员类别', trigger: 'blur' }],
+    positional: [{ required: true, message: '请输入职称', trigger: 'blur' }]
   },
   companyList: [],
-  userList: [
-
-  ],
+  userList: [],
   keyword:'',
   pageNum: 1,
   pageSize: 10,
@@ -426,7 +462,7 @@
 const onSubmit = async () => {
   const valid = await superRef.value.validate();
   if(valid){
-    if((state.form.userType ===1 && state.form.companyId ===null) || ((state.form.userType ===2 ||state.form.userType ===3) && (state.form.parentId ===null ||state.form.companyId===null))){
+    if((state.form.userType ===2 ||state.form.userType ===3) && (state.form.parentId ===null ||state.form.companyId===null)){
       ElMessage.warning('请选择所属父级账号')
       return;
     }
@@ -458,8 +494,13 @@
         parentId: data.parentId,
         idCard: data.idCard,
         entryTime: data.entryTime,
+        resignTime: data.resignTime,
         duty: data.duty,
-        post: data.post
+        post: data.post,
+        companyName: data.companyName,
+        age: data.age,
+        personType: data.personType,
+        positional: data.positional
       }
 
       const res = await editUser(param)
@@ -502,28 +543,37 @@
   state.form.companyId = null;
   state.form.companyName = '';
   //当前是管理员级用户
+  console.log(state.currentUserType,'type')
   if(state.currentUserType === 0){
     if(state.form.userType === 0){
       showCompany.value = false;
       showChild.value = false;
     }else {
       showCompany.value = true;
-      showChild.value = false;
+      if(state.form.userType === 3){
+        showChild.value = true
+      }else{
+        showChild.value = false;
+      }
+
     }
+  }else{
+    state.form.companyId = userInfo.value.companyId;
+    state.form.companyName = userInfo.value.companyName
+    showCompany.value = true
   }
   //当前是企业级/其他用户选择部门
-  if((state.currentUserType === 1 && state.form.userType === 2) || (state.currentUserType === 4 && state.form.userType === 2)){
+  if((state.currentUserType === 1 && state.form.userType === 2) || (state.currentUserType === 4 && state.form.userType === 2) || (state.currentUserType === 6 && state.form.userType === 2)){
     state.form.parentId = userInfo.value.id;
     state.form.companyName = userInfo.value.companyName
     state.form.companyId = userInfo.value.companyId;
     showChild.value = false;
-    showCompany.value = true;
+    // showCompany.value = true;
 
-  } //当前是企业级/其他用户选择车间
-  else if((state.currentUserType === 1 && state.form.userType === 3) || (state.currentUserType === 4 && state.form.userType === 3)){
+  } else if((state.currentUserType === 1 && state.form.userType === 3) || (state.currentUserType === 4 && state.form.userType === 3)|| (state.currentUserType === 6 && state.form.userType === 3)){
     state.form.companyName = userInfo.value.companyName
     state.form.companyId = userInfo.value.companyId;
-    showCompany.value = true;
+    // showCompany.value = true;
     showChild.value = true;
     const param = {
       userType: 2,
@@ -538,22 +588,9 @@
     state.form.parentId = userInfo.value.id;
     state.form.companyName = userInfo.value.companyName
     state.form.companyId = userInfo.value.companyId;
-    showCompany.value = true;
+    // showCompany.value = true;
     showChild.value = false;
   }
-  // if(state.isAdmin){
-  //   state.form.companyId = null;
-  //   state.form.companyName = '';
-  // }
-  // state.form.parentId = null;
-  // state.form.parentName = '';
-  // if(state.form.userType === 2 || state.form.userType === 3 ){
-  //   const param = {
-  //     userType: state.form.userType-1,
-  //     companyId: state.form.companyId,
-  //   }
-  //   scrollRef.value.getList(param,'change');
-  // }
 }
 
 const handleClose = () => {
@@ -567,7 +604,17 @@
     userType: null,
     sex: 0,
     companyId: null,
-    parentId: null
+    companyName: '',
+    parentId: null,
+    entryTime: '',
+    resignTime: '',
+    idCard: '',
+    deptId: null,
+    duty: '',
+    post: '',
+    age: null,
+    personType: null,
+    positional: ''
   }
   showCompany.value = false;
   showChild.value = false;

--
Gitblit v1.9.2