|
|
|
@ -130,12 +130,18 @@
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="用户名称" prop="nickName">
|
|
|
|
|
<el-input v-model="form.nickName" placeholder="请输入用户名称" maxlength="30" />
|
|
|
|
|
<el-input v-model="form.nickName" :disabled="data.editUser" placeholder="请输入用户名称" maxlength="30"
|
|
|
|
|
style="width: 150px;" />
|
|
|
|
|
<el-button v-if="data.mode == 'add' && !data.editUser" type="primary" style="margin-left: 10px;"
|
|
|
|
|
@click="doQueryUserByName">查询</el-button>
|
|
|
|
|
<el-button v-if="data.editUser" type="success" style="margin-left: 10px;"
|
|
|
|
|
@click="doCleanEditData">清除</el-button>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="用户类型" prop="userType">
|
|
|
|
|
<el-select v-model="form.userType" placeholder="请选择用户类型" style="width: 100%" @change="doRoleChange">
|
|
|
|
|
<el-select v-model="form.userType" placeholder="请选择用户类型" style="width: 100%"
|
|
|
|
|
@change="doRoleChange">
|
|
|
|
|
<el-option v-for="dict in sys_user_type" :key="dict.value" :label="dict.label"
|
|
|
|
|
:value="dict.value" />
|
|
|
|
|
</el-select>
|
|
|
|
@ -143,15 +149,18 @@
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="手机号码" prop="phonenumber">
|
|
|
|
|
<el-input v-model="form.phonenumber" :disabled="form.userId" placeholder="请输入手机号码"
|
|
|
|
|
maxlength="11" style="width: 150px;"/>
|
|
|
|
|
<el-button type="primary" style="margin-left: 10px;" @click="doQueryUser">查询</el-button>
|
|
|
|
|
<el-input v-model="form.phonenumber" :disabled="form.userId || data.editUser" placeholder="请输入手机号码"
|
|
|
|
|
maxlength="11" style="width: 150px;" autocomplete="off" disableautocomplete />
|
|
|
|
|
<el-button v-if="data.mode == 'add' && !data.editUser" type="primary" style="margin-left: 10px;"
|
|
|
|
|
@click="doQueryUser">查询</el-button>
|
|
|
|
|
<el-button v-if="data.editUser" type="success" style="margin-left: 10px;"
|
|
|
|
|
@click="doCleanEditData">清除</el-button>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="登录密码" prop="password">
|
|
|
|
|
<el-input v-model="form.password" placeholder="请输入登录密码" type="password" maxlength="20"
|
|
|
|
|
:disabled="form.userId" :show-password="!form.userId" />
|
|
|
|
|
:disabled="form.userId" :show-password="!form.userId" autocomplete="off" disableautocomplete />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
@ -180,18 +189,18 @@
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="12">
|
|
|
|
|
<el-form-item label="用户角色" prop="roleIds">
|
|
|
|
|
<el-select v-model="form.roleIds" multiple placeholder="请选择用户角色" style="width:100%" >
|
|
|
|
|
<el-select v-model="form.roleIds" multiple placeholder="请选择用户角色" style="width:100%">
|
|
|
|
|
<el-option v-for="item in roleOptions" :key="item.roleId" :label="item.roleName"
|
|
|
|
|
:value="item.roleId" :disabled="item.status == 1"></el-option>
|
|
|
|
|
</el-select>
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="24" v-if="form.userType=='99'">
|
|
|
|
|
<el-col :span="24" v-if="form.userType == '99'">
|
|
|
|
|
<el-form-item label="证件号码" prop="cardCode">
|
|
|
|
|
<el-input v-model="form.cardCode" placeholder="请输入证件号码" maxlength="18" />
|
|
|
|
|
</el-form-item>
|
|
|
|
|
</el-col>
|
|
|
|
|
<el-col :span="24" v-if="form.userType=='99'">
|
|
|
|
|
<el-col :span="24" v-if="form.userType == '99'">
|
|
|
|
|
<el-form-item label="入场近照" prop="avatar">
|
|
|
|
|
<image-upload v-model="form.avatar" :limit="1" />
|
|
|
|
|
</el-form-item>
|
|
|
|
@ -237,7 +246,9 @@
|
|
|
|
|
<script setup name="User">
|
|
|
|
|
import { getToken } from "@/utils/auth";
|
|
|
|
|
import { getDeptRole } from "@/api/system/role";
|
|
|
|
|
import { changeUserStatus, listUser, resetUserPwd, delUser, getUser, updateUser, addUser,selectByPhone, deptTreeSelect } from "@/api/system/user";
|
|
|
|
|
import {
|
|
|
|
|
changeUserStatus, listUser, resetUserPwd, delUser, getUser, updateUser, addUser, selectByPhone, deptTreeSelect, getUserByName
|
|
|
|
|
} from "@/api/system/user";
|
|
|
|
|
|
|
|
|
|
const router = useRouter();
|
|
|
|
|
const { proxy } = getCurrentInstance();
|
|
|
|
@ -311,7 +322,9 @@ const data = reactive({
|
|
|
|
|
phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }],
|
|
|
|
|
cardCode: [{ required: true, message: "用户名称不能为空", trigger: "blur" }],
|
|
|
|
|
avatar: [{ required: true, message: "入场近照不能为空", trigger: "change" }],
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
editUser: null,
|
|
|
|
|
mode: ''
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
const { queryParams, form, rules } = toRefs(data);
|
|
|
|
@ -333,32 +346,94 @@ function getDeptTree() {
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
//用于用户增加的查询
|
|
|
|
|
function doQueryUser(){
|
|
|
|
|
selectByPhone(form.value.phonenumber).then(d=>{{
|
|
|
|
|
debugger
|
|
|
|
|
}});
|
|
|
|
|
}
|
|
|
|
|
function doRoleChange(){
|
|
|
|
|
if(form.value.userType==99){
|
|
|
|
|
data.rules={
|
|
|
|
|
deptId: [{ required: true, message: "所属单位不能为空", trigger: "change" }],
|
|
|
|
|
userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
|
|
|
|
|
nickName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }],
|
|
|
|
|
userType: [{ required: true, message: "用户类型不能为空", trigger: "change" }],
|
|
|
|
|
password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }],
|
|
|
|
|
phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }],
|
|
|
|
|
cardCode: [{ required: true, message: "用户名称不能为空", trigger: "blur" }],
|
|
|
|
|
avatar: [{ required: true, message: "入场近照不能为空", trigger: "change" }],
|
|
|
|
|
roleIds: [{ required: true, message: "用户角色不能为空", trigger: "change" }],
|
|
|
|
|
function doQueryUser() {
|
|
|
|
|
selectByPhone(form.value.phonenumber).then(d => {
|
|
|
|
|
{
|
|
|
|
|
if (!d.data) {
|
|
|
|
|
proxy.$modal.msgError("未找到数据!")
|
|
|
|
|
}
|
|
|
|
|
data.editUser = d.data || null;
|
|
|
|
|
showEditUserData();
|
|
|
|
|
}
|
|
|
|
|
}else{
|
|
|
|
|
data.rules={
|
|
|
|
|
deptId: [{ required: true, message: "所属单位不能为空", trigger: "change" }],
|
|
|
|
|
userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
|
|
|
|
|
nickName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }],
|
|
|
|
|
userType: [{ required: true, message: "用户类型不能为空", trigger: "change" }],
|
|
|
|
|
password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }],
|
|
|
|
|
phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
function doQueryUserByName() {
|
|
|
|
|
getUserByName(form.value.nickName).then(d => {
|
|
|
|
|
if (!d.data) {
|
|
|
|
|
proxy.$modal.msgError("未找到数据!")
|
|
|
|
|
}
|
|
|
|
|
data.editUser = d.data || null
|
|
|
|
|
showEditUserData();
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
function showEditUserData() {
|
|
|
|
|
let old = data.editUser
|
|
|
|
|
if (old) {
|
|
|
|
|
form.value.nickName = old.nickName;
|
|
|
|
|
form.value.phonenumber = old.phonenumber;
|
|
|
|
|
form.value.sex = old.sex;
|
|
|
|
|
form.value.cardCode = old.cardCode;
|
|
|
|
|
form.value.avatar = old.avatar;
|
|
|
|
|
} else {
|
|
|
|
|
form.value.nickName = "";
|
|
|
|
|
form.value.phonenumber = "";
|
|
|
|
|
form.value.sex = "";
|
|
|
|
|
form.value.cardCode = "";
|
|
|
|
|
form.value.avatar = "";
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
function doCleanEditData() {
|
|
|
|
|
data.editUser = null;
|
|
|
|
|
showEditUserData();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function doRoleChange() {
|
|
|
|
|
if (data.mode == 'add') {
|
|
|
|
|
if (form.value.userType == 99) {
|
|
|
|
|
data.rules = {
|
|
|
|
|
deptId: [{ required: true, message: "所属单位不能为空", trigger: "change" }],
|
|
|
|
|
userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
|
|
|
|
|
nickName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }],
|
|
|
|
|
userType: [{ required: true, message: "用户类型不能为空", trigger: "change" }],
|
|
|
|
|
password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }],
|
|
|
|
|
phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }],
|
|
|
|
|
cardCode: [{ required: true, message: "用户名称不能为空", trigger: "blur" }],
|
|
|
|
|
avatar: [{ required: true, message: "入场近照不能为空", trigger: "change" }],
|
|
|
|
|
roleIds: [{ required: true, message: "用户角色不能为空", trigger: "change" }],
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
data.rules = {
|
|
|
|
|
deptId: [{ required: true, message: "所属单位不能为空", trigger: "change" }],
|
|
|
|
|
userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
|
|
|
|
|
nickName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }],
|
|
|
|
|
userType: [{ required: true, message: "用户类型不能为空", trigger: "change" }],
|
|
|
|
|
roleIds: [{ required: true, message: "用户角色不能为空", trigger: "change" }],
|
|
|
|
|
password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }],
|
|
|
|
|
phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
if (form.value.userType == 99) {
|
|
|
|
|
data.rules = {
|
|
|
|
|
deptId: [{ required: true, message: "所属单位不能为空", trigger: "change" }],
|
|
|
|
|
userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
|
|
|
|
|
nickName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }],
|
|
|
|
|
userType: [{ required: true, message: "用户类型不能为空", trigger: "change" }],
|
|
|
|
|
phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }],
|
|
|
|
|
cardCode: [{ required: true, message: "用户名称不能为空", trigger: "blur" }],
|
|
|
|
|
avatar: [{ required: true, message: "入场近照不能为空", trigger: "change" }],
|
|
|
|
|
roleIds: [{ required: true, message: "用户角色不能为空", trigger: "change" }],
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
data.rules = {
|
|
|
|
|
deptId: [{ required: true, message: "所属单位不能为空", trigger: "change" }],
|
|
|
|
|
userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
|
|
|
|
|
nickName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }],
|
|
|
|
|
userType: [{ required: true, message: "用户类型不能为空", trigger: "change" }],
|
|
|
|
|
roleIds: [{ required: true, message: "用户角色不能为空", trigger: "change" }],
|
|
|
|
|
phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -498,6 +573,7 @@ function reset() {
|
|
|
|
|
roleIds: []
|
|
|
|
|
};
|
|
|
|
|
proxy.resetForm("userRef");
|
|
|
|
|
data.mode = ''
|
|
|
|
|
};
|
|
|
|
|
/** 取消按钮 */
|
|
|
|
|
function cancel() {
|
|
|
|
@ -508,19 +584,21 @@ function cancel() {
|
|
|
|
|
function handleAdd() {
|
|
|
|
|
reset();
|
|
|
|
|
getUser().then(response => {
|
|
|
|
|
data.rules={
|
|
|
|
|
data.rules = {
|
|
|
|
|
deptId: [{ required: true, message: "所属单位不能为空", trigger: "change" }],
|
|
|
|
|
userName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }, { min: 2, max: 20, message: "用户名称长度必须介于 2 和 20 之间", trigger: "blur" }],
|
|
|
|
|
nickName: [{ required: true, message: "用户名称不能为空", trigger: "blur" }],
|
|
|
|
|
userType: [{ required: true, message: "用户类型不能为空", trigger: "change" }],
|
|
|
|
|
roleIds: [{ required: true, message: "用户角色不能为空", trigger: "change" }],
|
|
|
|
|
password: [{ required: true, message: "用户密码不能为空", trigger: "blur" }, { min: 5, max: 20, message: "用户密码长度必须介于 5 和 20 之间", trigger: "blur" }],
|
|
|
|
|
phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
|
|
|
|
|
}
|
|
|
|
|
roleOptions.value=[];
|
|
|
|
|
roleOptions.value = [];
|
|
|
|
|
postOptions.value = response.posts;
|
|
|
|
|
open.value = true;
|
|
|
|
|
title.value = "添加用户";
|
|
|
|
|
form.value.password = initPassword.value;
|
|
|
|
|
data.mode = 'add'
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
/** 修改按钮操作 */
|
|
|
|
@ -528,10 +606,11 @@ function handleUpdate(row) {
|
|
|
|
|
reset();
|
|
|
|
|
const userId = row.userId || ids.value;
|
|
|
|
|
getUser(userId).then(response => {
|
|
|
|
|
|
|
|
|
|
data.rules={
|
|
|
|
|
|
|
|
|
|
data.rules = {
|
|
|
|
|
deptId: [{ required: true, message: "所属单位不能为空", trigger: "change" }],
|
|
|
|
|
userType: [{ required: true, message: "用户类型不能为空", trigger: "change" }],
|
|
|
|
|
roleIds: [{ required: true, message: "用户角色不能为空", trigger: "change" }],
|
|
|
|
|
phonenumber: [{ required: true, message: "手机号码不能为空", trigger: "blur" }, { pattern: /^1[3|4|5|6|7|8|9][0-9]\d{8}$/, message: "请输入正确的手机号码", trigger: "blur" }]
|
|
|
|
|
}
|
|
|
|
|
form.value = response.data;
|
|
|
|
@ -541,6 +620,7 @@ function handleUpdate(row) {
|
|
|
|
|
open.value = true;
|
|
|
|
|
title.value = "修改用户";
|
|
|
|
|
form.password = "";
|
|
|
|
|
data.mode = 'edit'
|
|
|
|
|
});
|
|
|
|
|
handleChangeDept(row.deptId);
|
|
|
|
|
};
|
|
|
|
@ -553,22 +633,22 @@ function handleChangeDept(value) {
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const getCompId=()=>{
|
|
|
|
|
const getCompId=n=>{
|
|
|
|
|
if(n.data.data.deptType==2){
|
|
|
|
|
const getCompId = () => {
|
|
|
|
|
const getCompId = n => {
|
|
|
|
|
if (n.data.data.deptType == 2) {
|
|
|
|
|
return n.data.id
|
|
|
|
|
}else{
|
|
|
|
|
let pnode=node.parent;
|
|
|
|
|
if(!pnode){
|
|
|
|
|
} else {
|
|
|
|
|
let pnode = node.parent;
|
|
|
|
|
if (!pnode) {
|
|
|
|
|
return ""
|
|
|
|
|
}else{
|
|
|
|
|
} else {
|
|
|
|
|
return getCompId(pnode);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
let ndData=selTreeDept.value.getCurrentNode();
|
|
|
|
|
let node=selTreeDept.value.getNode(ndData.id);
|
|
|
|
|
let compId=getCompId(node);
|
|
|
|
|
let ndData = selTreeDept.value.getCurrentNode();
|
|
|
|
|
let node = selTreeDept.value.getNode(ndData.id);
|
|
|
|
|
let compId = getCompId(node);
|
|
|
|
|
return compId;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -582,12 +662,14 @@ function submitForm() {
|
|
|
|
|
proxy.$modal.msgSuccess("修改成功");
|
|
|
|
|
open.value = false;
|
|
|
|
|
getList();
|
|
|
|
|
data.mode = ""
|
|
|
|
|
});
|
|
|
|
|
} else {
|
|
|
|
|
addUser(form.value).then(response => {
|
|
|
|
|
proxy.$modal.msgSuccess("新增成功");
|
|
|
|
|
open.value = false;
|
|
|
|
|
getList();
|
|
|
|
|
data.mode = ""
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|