修改用户管理界面
parent
e40e1092e5
commit
f91232d0e0
|
@ -85,7 +85,11 @@ public class SysLoginService
|
|||
|
||||
if (StringUtils.isNull(userResult) || StringUtils.isNull(userResult.getData()))
|
||||
{
|
||||
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, "登录用户不存在");
|
||||
String msg=userResult.getMsg();
|
||||
if(StringUtils.isBlank(msg)){
|
||||
msg="登录用户不存在";
|
||||
}
|
||||
recordLogService.recordLogininfor(username, Constants.LOGIN_FAIL, msg);
|
||||
throw new ServiceException("登录用户:" + username + " 不存在");
|
||||
}
|
||||
|
||||
|
|
|
@ -118,7 +118,8 @@
|
|||
left join sys_user_role ur on rm.role_id = ur.role_id
|
||||
left join sys_role r on r.role_id = ur.role_id
|
||||
left join sys_role_dept rd on rd.role_id = r.role_id
|
||||
where m.status = '0' and r.status = '0' and ur.user_id = #{userId} and rd.dept_id = #{deptId}
|
||||
where m.status = '0' and r.status = '0' and ur.user_id = #{userId}
|
||||
and rd.dept_id = #{deptId}
|
||||
</select>
|
||||
|
||||
<select id="selectMenuPermsByRoleId" parameterType="Long" resultType="String">
|
||||
|
|
|
@ -163,7 +163,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<select id="selectUserByIdAndDept" resultMap="SysUserResult">
|
||||
<include refid="selectUserVo"/>
|
||||
left join sys_role_dept rd on rd.role_id = r.role_id
|
||||
where u.user_id = #{userId} and rd.dept_id = ${deptId}
|
||||
where u.user_id = #{userId}
|
||||
<if test="deptId != null and deptId != ''">
|
||||
and rd.dept_id = ${deptId}
|
||||
</if>
|
||||
</select>
|
||||
|
||||
<select id="selectUserByUserId" parameterType="Long" resultMap="SysUserResult">
|
||||
|
|
|
@ -311,7 +311,7 @@ public class SysUserController extends BaseController {
|
|||
sysUser = userService.selectUserById(userId);
|
||||
} else {
|
||||
user = userService.selectUserByUserId(userId);
|
||||
sysUser = userService.selectUserByIdAndDept(userId, user.getDeptId());
|
||||
sysUser = user.getDeptId()!=null?userService.selectUserByIdAndDept(userId, user.getDeptId()):null;
|
||||
}
|
||||
if(sysUser!=null) {
|
||||
ajax.put(AjaxResult.DATA_TAG, sysUser);
|
||||
|
@ -345,6 +345,11 @@ public class SysUserController extends BaseController {
|
|||
return toAjax(userService.insertUser(user));
|
||||
}
|
||||
|
||||
@GetMapping("/getUserByName/{userName}")
|
||||
@RequiresPermissions("system:user:query")
|
||||
public AjaxResult getUserByName(@PathVariable(value = "userName", required = true)String userName) {
|
||||
return AjaxResult.success(userService.getUserByName(userName));
|
||||
}
|
||||
/**
|
||||
* 修改用户
|
||||
*/
|
||||
|
@ -361,6 +366,17 @@ public class SysUserController extends BaseController {
|
|||
} else if (StringUtils.isNotEmpty(user.getEmail()) && !userService.checkEmailUnique(user)) {
|
||||
return error("修改用户'" + user.getUserName() + "'失败,邮箱账号已存在");
|
||||
}
|
||||
SysUser where=new SysUser();
|
||||
where.setUserName(user.getUserName());
|
||||
List<SysUser> list=userService.selectUserList(where);
|
||||
if(list.size()>1){
|
||||
return error("此用户名己存在,修改失败!");
|
||||
}
|
||||
if(list.size()==1){
|
||||
if(user.getUserId().intValue()!=list.get(0).getUserId().intValue()){
|
||||
return error("此用户名己存在,修改失败!");
|
||||
}
|
||||
}
|
||||
user.setUpdateBy(SecurityUtils.getUsername());
|
||||
return toAjax(userService.updateUser(user));
|
||||
}
|
||||
|
|
|
@ -110,6 +110,7 @@ public interface ISysUserService
|
|||
*/
|
||||
public boolean checkUserNameUnique(SysUser user);
|
||||
|
||||
public SysUser getUserByName(String userName);
|
||||
/**
|
||||
* 校验手机号码是否唯一
|
||||
*
|
||||
|
|
|
@ -249,6 +249,9 @@ public class SysUserServiceImpl implements ISysUserService
|
|||
return UserConstants.UNIQUE;
|
||||
}
|
||||
|
||||
public SysUser getUserByName(String userName){
|
||||
return userMapper.checkUserNameUnique(userName);
|
||||
}
|
||||
/**
|
||||
* 校验手机号码是否唯一
|
||||
*
|
||||
|
|
|
@ -49,6 +49,8 @@ export function updateUser(data) {
|
|||
status:data.status,
|
||||
postIds:data.postIds,
|
||||
roles:data.roles,
|
||||
comId:data.comId,
|
||||
deptId:data.deptId,
|
||||
roleIds:data.roleIds
|
||||
}
|
||||
})
|
||||
|
@ -184,3 +186,10 @@ export function reload(){
|
|||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
||||
export function getUserByName(userName){
|
||||
return request({
|
||||
url: '/system/user/getUserByName/'+userName,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
|
@ -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">
|
||||
|
@ -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);
|
||||
|
@ -334,11 +347,48 @@ function getDeptTree() {
|
|||
};
|
||||
//用于用户增加的查询
|
||||
function doQueryUser() {
|
||||
selectByPhone(form.value.phonenumber).then(d=>{{
|
||||
debugger
|
||||
}});
|
||||
selectByPhone(form.value.phonenumber).then(d => {
|
||||
{
|
||||
if (!d.data) {
|
||||
proxy.$modal.msgError("未找到数据!")
|
||||
}
|
||||
data.editUser = d.data || null;
|
||||
showEditUserData();
|
||||
}
|
||||
});
|
||||
}
|
||||
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" }],
|
||||
|
@ -357,11 +407,36 @@ function doRoleChange(){
|
|||
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" }]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/** 查询用户列表 */
|
||||
function getList() {
|
||||
|
@ -498,6 +573,7 @@ function reset() {
|
|||
roleIds: []
|
||||
};
|
||||
proxy.resetForm("userRef");
|
||||
data.mode = ''
|
||||
};
|
||||
/** 取消按钮 */
|
||||
function cancel() {
|
||||
|
@ -513,6 +589,7 @@ function handleAdd() {
|
|||
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" }]
|
||||
}
|
||||
|
@ -521,6 +598,7 @@ function handleAdd() {
|
|||
open.value = true;
|
||||
title.value = "添加用户";
|
||||
form.value.password = initPassword.value;
|
||||
data.mode = 'add'
|
||||
});
|
||||
};
|
||||
/** 修改按钮操作 */
|
||||
|
@ -532,6 +610,7 @@ function handleUpdate(row) {
|
|||
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);
|
||||
};
|
||||
|
@ -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 = ""
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue