From f94b96403234f5927e74f72fc0cbc65d7b426019 Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期三, 10 十二月 2025 14:52:50 +0800
Subject: [PATCH] 修改
---
src/views/build/conpanyFunctionConsult/staffManage/staffRegister/components/staffDialog.vue | 205 +++++++++++++++++++++++++++++++++++----------------
1 files changed, 141 insertions(+), 64 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..21160d9 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,41 +24,60 @@
<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="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-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 !== '修改密码'">
- <el-input v-model.trim="state.form.idCard" :maxlength="18" :disabled="disabled" placeholder="请输入身份证号"></el-input>
+ <el-form-item label="是否公司人员:" prop="internal" v-if="state.title !== '修改密码'">
+ <el-radio-group v-model="state.form.internal" :disabled="disabled">
+ <el-radio :label="0">是</el-radio>
+ <el-radio :label="1">否</el-radio>
+ </el-radio-group>
</el-form-item>
- <el-form-item label="入职时间:" prop="entryTime" v-if="state.title !== '修改密码'" >
- <el-date-picker
- v-model="state.form.entryTime"
- 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 == '修改密码'">
- <el-input v-model.trim="state.form.password" type="password" show-password placeholder="请输入密码"></el-input>
- </el-form-item>
- <el-form-item label="重复密码:" prop="confirmPassword" v-if="state.title == '新增' || state.title == '修改密码'">
- <el-input v-model.trim="state.form.confirmPassword" type="password" show-password placeholder="请输入确认密码"></el-input>
- </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>-->
+<!-- <el-form-item label="入职时间:" prop="entryTime" v-if="state.title !== '修改密码'" >-->
+<!-- <el-date-picker-->
+<!-- v-model="state.form.entryTime"-->
+<!-- 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="phone" v-if="state.title !== '修改密码'" >
<el-input v-model.trim="state.form.phone" :maxlength="11" :disabled="disabled" placeholder="请输入手机号"></el-input>
</el-form-item>
@@ -91,7 +110,7 @@
remote
@change="selectValue"
reserve-keyword
- placeholder="请输入企业名称"
+ placeholder="请输入单位名称"
remote-show-suffix
:remote-method="getCompanyList"
:loading="loading"
@@ -158,11 +177,41 @@
/>
</el-select>
</el-form-item>
- <el-form-item label="职务:" prop="duty" v-if="state.title !== '修改密码' && state.form.userType !== 0">
+ <el-form-item label="职务:" 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 !== '修改密码' && state.form.userType !== 0">
+ <el-form-item label="专业:" prop="post" v-if="state.title !== '修改密码'">
<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-item label="密码:" prop="password" v-if="state.title == '新增' || state.title == '修改密码'">
+ <el-input v-model.trim="state.form.password" type="password" show-password placeholder="请输入密码"></el-input>
+ </el-form-item>
+ <el-form-item label="密码:" v-else>
+ <el-input v-model.trim="state.form.password" type="password" show-password placeholder="请输入密码"></el-input>
+ </el-form-item>
+ <el-form-item label="重复密码:" prop="confirmPassword" v-if="state.title == '新增' || state.title == '修改密码'">
+ <el-input v-model.trim="state.form.confirmPassword" type="password" show-password placeholder="请输入确认密码"></el-input>
+ </el-form-item>
+ <el-form-item label="重复密码:" v-else>
+ <el-input v-model.trim="state.form.confirmPassword" type="password" show-password placeholder="请输入确认密码"></el-input>
</el-form-item>
</el-form>
<template #footer v-if="state.title !='查看'">
@@ -191,6 +240,7 @@
import {debounce} from "@/utils";
import Cookies from "js-cookie";
import {getDepart} from "@/api/orgStructure/depart";
+import {removeToken} from "@/utils/auth";
const emit = defineEmits(["getList"]);
const dialogVisible = ref(false)
const superRef = ref()
@@ -198,16 +248,16 @@
const equalToPassword = (rule, value, callback) => {
- if (state.form.password !== value) {
- callback(new Error("两次输入的密码不一致"));
- } else {
- callback();
- }
+ if (state.form.password !== value) {
+ callback(new Error("两次输入的密码不一致"));
+ } else {
+ callback();
+ }
};
const validateUserPhone = (rule, value, callback)=>{
if(value === ''){
- callback()
+ callback(new Error('请输入手机号'))
}else{
if(!verifyPhone(value)){
callback(new Error('手机号格式有误'))
@@ -230,15 +280,15 @@
}
let validatePwd = (rule, value, callback)=>{
- if(value === ''){
- callback(new Error('请输入密码'))
- }else{
- if(!verifyPwd(value)){
- callback(new Error('密码须包含字母、数字、特殊字符,长度在6-16之间'))
+ if(value === ''){
+ callback(new Error('请输入密码'))
}else{
- callback()
+ if(!verifyPwd(value)){
+ callback(new Error('密码须包含字母、数字、特殊字符,长度在6-16之间'))
+ }else{
+ callback()
+ }
}
- }
}
const startUsername = ref('');
const validateUsername = (rule, value, callback)=>{
@@ -295,7 +345,10 @@
post: '',
age: null,
personType: null,
- positional: ''
+ internal: null,
+ qualification: null,
+ positional: '',
+ roles: []
},
formRules:{
name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
@@ -304,16 +357,28 @@
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' }]
+ internal: [{ 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 +396,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;
@@ -351,7 +417,7 @@
// }
}
state.title = type === 'add' ? '新增' : type ==='edit' ? '编辑' : type ==='pwd' ? '修改密码' : '查看' ;
- if(type === 'edit' || type === 'view') {
+ if(type === 'edit' || type === 'view' || type === 'pwd') {
startUsername.value = value.username
if( type === 'view'){
disabled.value = true
@@ -362,16 +428,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 +472,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 +487,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 +518,10 @@
companyName: data.companyName,
age: data.age,
personType: data.personType,
- positional: data.positional
+ internal: data.internal,
+ qualification: data.qualification,
+ positional: data.positional,
+ roles: data.roles
}
const res = await editUser(param)
@@ -464,8 +539,8 @@
const res = await resetPwd(data)
if(res.code == 200){
ElMessage.success(res.message)
- emit('getList')
- handleClose()
+ removeToken()
+ location.href = '/homePage';
}else{
ElMessage.warning(res.message)
}
@@ -551,7 +626,10 @@
post: '',
age: null,
personType: null,
- positional: ''
+ internal: null,
+ qualification: null,
+ positional: '',
+ roles: []
}
state.userList = [];
state.companyList = [];
@@ -592,7 +670,6 @@
})
}
const getSelectUser = (val) => {
- console.log("valllllllll",val)
state.form.parentId = val;
}
--
Gitblit v1.9.2