基础管理

This commit is contained in:
fl 2025-04-23 10:00:52 +08:00
parent 9d44a86aa3
commit 33e58386e9
8 changed files with 73 additions and 280 deletions

View File

@ -94,6 +94,8 @@ public class SysUser extends PageEntity {
private List<Long> departs;
private String deptName;
/**
* 登录权限
*/

View File

@ -224,8 +224,8 @@ public class UserController {
public ServerResponse user(EncryptedReq<UserDto> data) {
try {
UserDto userDto = userService.getById(data.getData().getId());
List<SelectVo> projects = userService.getProjects(userDto);
userDto.setProjects(projects);
// List<SelectVo> projects = userService.getProjects(userDto);
// userDto.setProjects(projects);
String loginType = userDto.getLoginType();
if (loginType != null && !loginType.isEmpty()){
String[] loginTypeArr = loginType.split(",");

View File

@ -52,12 +52,12 @@ public class UserServiceImpl implements UserService {
SysUser user = userDto;
user.setPassword(passwordEncoder.encode(user.getPassword()));
int num = userDao.saveUser(user);
if (StringUtils.isNotBlank(project)){
for (String proId : project.split(",")) {
// 新增工程
userDao.saveUserProject(user.getId(), proId);
}
}
// if (StringUtils.isNotBlank(project)){
// for (String proId : project.split(",")) {
// // 新增工程
// userDao.saveUserProject(user.getId(), proId);
// }
// }
if (num > 0) {
return ServerResponse.createSuccess("新增成功", num);
} else {
@ -144,19 +144,19 @@ public class UserServiceImpl implements UserService {
@Override
public List<SysUser> list(SysUser user) {
List<SysUser> list = userDao.list(user);
if (list.size() > 0) {
for (SysUser users : list) {
//如果班组为不空则拼接否则只展示组织
if (StringHelper.isNotEmpty(users.getTeamName())) {
users.setOrgName(users.getOrgName() + "/" + users.getTeamName());
}
if (StringHelper.isNotEmpty(users.getSignImg())) {
users.setSignStatus("已签");
} else {
users.setSignStatus("未签");
}
}
}
// if (list.size() > 0) {
// for (SysUser users : list) {
// //如果班组为不空则拼接否则只展示组织
// if (StringHelper.isNotEmpty(users.getTeamName())) {
// users.setOrgName(users.getOrgName() + "/" + users.getTeamName());
// }
// if (StringHelper.isNotEmpty(users.getSignImg())) {
// users.setSignStatus("已签");
// } else {
// users.setSignStatus("未签");
// }
// }
// }
return list;
}
@ -318,13 +318,13 @@ public class UserServiceImpl implements UserService {
userDao.update(userDto);
// saveUserRoles(userDto.getId(), userDto.getRoleIds());
// 先删除之前绑定的工程
userDao.deleteUserProject(userDto.getId());
if (StringUtils.isNotBlank(project)){
for (String proId : project.split(",")) {
// 在新增修改后的工程
userDao.saveUserProject(userDto.getId(), proId);
}
}
// userDao.deleteUserProject(userDto.getId());
// if (StringUtils.isNotBlank(project)){
// for (String proId : project.split(",")) {
// // 在新增修改后的工程
// userDao.saveUserProject(userDto.getId(), proId);
// }
// }
return userDto;
}

View File

@ -57,7 +57,7 @@
<if test="userCode != null and userCode != ''">
user_code,
</if>
sex, org_id,login_type, role_id, user_type, state,
sex, dept,login_type, role_id, user_type, state,
password,
<if test="teamId != null and teamId != ''">
team_id,
@ -67,7 +67,7 @@
<if test="userCode != null and userCode != ''">
#{userCode},
</if>
#{sex}, #{orgId},#{loginType}, #{roleId}, #{userType},
#{sex}, #{dept},#{loginType}, #{roleId}, #{userType},
1,
#{password},
<if test="teamId != null and teamId != ''">
@ -131,25 +131,14 @@
t.login_name AS loginName,
t.user_name AS username,
t.sex,
t.org_id as orgId,
sr.role_name roleName,
case when sr.level = 0 then '项目部级'
when sr.level = 1 then '公司级'
else ''
end as levelName,
CASE
t.user_type
WHEN '0' THEN
'内部用户'
WHEN '1' THEN
'外部用户' ELSE ''
END userType,
t.state AS state,
t.del_flag AS delFlag,
td.depart_name as deptName,
sr.role_name roleName,
t.create_time AS createTime
FROM
sys_user t
LEFT JOIN sys_role sr ON sr.role_id = t.role_id
left join tb_depart td on td.id=t.dept
where t.del_flag = 0
<if test="keyWord!=null and keyWord!=''">
AND (
@ -172,7 +161,7 @@
password,
login_name as loginName,
sex,
org_id as orgId,
dept,
user_type as userType,
type,
login_type as loginType,
@ -183,14 +172,12 @@
</select>
<select id="getOrg" resultType="com.bonus.digitalSignage.system.vo.Org">
select org_id as id,
org_name as title,
p_id as parentId,
'0' AS checkArr
from sys_org
where del_flag = 0
and state=1
order by org_sort asc
select id,
depart_name as title,
parent_id as parentId,
'0' AS checkArr
from tb_depart
where is_active = '1'
</select>
<select id="getPhone" resultType="com.bonus.digitalSignage.model.SysUser">
select id,phone
@ -306,13 +293,9 @@
update sys_user t
set t.user_name = #{username},
t.login_name = #{loginName},
t.user_code = #{userCode},
t.sex = #{sex},
t.org_id = #{orgId},
t.dept = #{dept},
t.role_id = #{roleId},
t.user_type = #{userType},
t.login_type = #{loginType},
t.team_id = #{teamId},
t.update_time = now()
where t.id = #{id}
</update>

View File

@ -24,6 +24,7 @@ function setParams(params) {
dtree = layui.dtree;
var $ = layui.jquery;
roleList = getRoleSelected();
getOrgTree();
// projectList = getProSelected();
// teamList = getTeamSelected();
// orgData = getOrgTree();
@ -36,10 +37,10 @@ function setParams(params) {
form.render("checkbox", "select");//重新渲染页面checkbox控件
form.on('submit(formData)', function (data) {
data.field.id = $('#id').val();
/* console.log( data.field.orgId_select_nodeId);
console.log( data.field.orgId_select_nodeId);
if(!data.field.orgId_select_nodeId){
return layer.alert("请选择组织机构!", {icon: 2})
}*/
return layer.alert("请选择项目部!", {icon: 2})
}
let loginName = $('#loginName').val();
if (loginName) {
if (!(/^1[3456789]\d{9}$/.test(loginName))) {
@ -49,16 +50,6 @@ function setParams(params) {
saveData(data);
});
// 监听角色下拉框的 change 事件
form.on('select(roleId)', function (data) {
const roleName = $('#roleId option:selected').text();
if (roleName.includes('项目部级')) {
$('#projectDiv').removeClass('layui-hide'); // 显示 div
} else {
$('#projectDiv').addClass('layui-hide'); // 隐藏 div
}
});
});
var a = 0;
@ -118,85 +109,25 @@ function getRoleSelected() {
});
}
/**
* 获取工程数据
*/
function getProSelected() {
let url = dataUrl + '/sys/select/getProjectSelect';
ajaxRequest(url, "GET", null, true, function () {
}, function (result) {
if (result.code === 200) {
setProjectValue(result.data);
} else {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
function setOrgTree(data){
orgTree = dtree.renderSelect({
elem: "#orgId",
data: data,
dataFormat: "list",
skin: "laySimple",
line: true, // 显示树线
checkbar: false, //开启复选框
done: function (data, url, first) {
console.log($('#orgId').val())
if(first) {
var params = dtree.dataInit("orgId", $('#orgId').val());
var selectParam = dtree.selectVal("orgId");
console.log(params)
}
}
});
}
/**
* 获取班组数据
*/
/*function getTeamSelected() {
let url = dataUrl + '/testReport/getTeamSelected';
ajaxRequest(url, "POST", null, true, function () {
}, function (result) {
if (result.code === 200) {
setSelectValue(result.data, 'teamId');
} else {
layer.alert(result.msg, {icon: 2})
}
}, function (xhr) {
error(xhr)
});
}*/
function setSelectValue(list, selectName) {
let html = '<option value="" selected>请选择</option>';
$.each(list, function (index, item) {
html += '<option value="' + item.id + '">' + item.name + '(' + item.levelName + ')' + '</option>';
})
$('#' + selectName).empty().append(html);
layui.form.render();
}
function setProjectValue(data) {
let keys = [];
$.each(data, function (index, item) {
let temp = {
"name": item.name,
"value": item.id
};
keys.push(temp);
})
formSelects.data('project', 'local', {
arr: keys
});
layui.form.render('select'); // 重新渲染 select 组件
}
// function setOrgTree(data){
// orgTree = dtree.renderSelect({
// elem: "#orgId",
// data: data,
// dataFormat: "list",
// skin: "laySimple",
// line: true, // 显示树线
// checkbar: false, //开启复选框
// done: function (data, url, first) {
// console.log($('#orgId').val())
// if(first) {
// var params = dtree.dataInit("orgId", $('#orgId').val());
// var selectParam = dtree.selectVal("orgId");
// console.log(params)
// }
// }
// });
// }
/*function getOrgTree() {
function getOrgTree() {
let data = [];
let url = dataUrl + '/users/getOrg';
ajaxRequest(url, "POST", null, true, function () {
@ -212,7 +143,7 @@ function setProjectValue(data) {
error(xhr)
});
return data;
}*/
}
// 根据id获取用户信息
function getUserById() {
@ -238,7 +169,7 @@ function getUserById() {
layer.close(loadingMsg); // 关闭提示层
error(xhr)
});
}, 100)
}, 200)
}
// 设置表单内容
@ -248,56 +179,16 @@ function setFormData(data) {
$("#password").removeAttr("lay-verify");
$("#pwd").css("display", "none");
$('#id').val(data.id)
$('#username').val(data.username)
$('#loginName').val(data.loginName)
// 设置选中状态
if (data.sex === 1) {
document.getElementById('sex_1').checked = true;
} else if (data.sex === 0) {
document.getElementById('sex_0').checked = true;
}
/* if (data.userType === '1') {
document.getElementById('userType_1').checked = true;
} else if (data.userType === '0') {
document.getElementById('userType_0').checked = true;
}*/
/* if (data.state === 1) {
document.getElementById('state_1').checked = true;
} else if (data.state === 0) {
document.getElementById('state_0').checked = true;
}*/
$('#type_' + data.type).attr('checked', true)
$('#orgId').val(data.orgId)
$('#orgId').val(data.dept)
$('#roleId').val(data.roleId)
$('#roleId option[value=' + data.roleId + ']').attr('selected', true)
if ($('#roleId option:selected').text().includes('项目部级')) {
$('#projectDiv').removeClass('layui-hide');
} else {
$('#projectDiv').addClass('layui-hide');
}
$('#project').val(data.project)
var selectedValues = data.projects.map(function (item) {
return item.id;
});
formSelects.value('project', selectedValues);
/*$('#teamId').val(data.teamId)
$('#teamId option[value=' + data.teamId + ']').attr('selected', true)*/
$('input[name="loginType"]').prop('checked', false);
// form.render();
var arrCB = data.loginTypes;
console.log(arrCB + "arrCB");
for (var j = 0; j < arrCB.length; j++) {
var cbthis = $("input[name='loginType']");
for (var i = 0; i < cbthis.length; i++) {
if (cbthis[i].value == arrCB[j]) {
cbthis[i].checked = true;
}
}
}
layui.form.render();
}
}
@ -315,14 +206,8 @@ function saveData(data) {
$('#cbGuDing input[type=checkbox]:checked').each(function () {
arr_box.push($(this).val());
});
// var arr_pro = [];//固定复选框
// $('#project input[type=checkbox]:checked').each(function () {
// arr_pro.push($(this).val());
// });
params.loginType = arr_box.join()
// params.project = arr_pro.join()
// params.orgId = params.orgId_select_nodeId;
params.dept = params.orgId_select_nodeId;
if (params.id != "") {
url = dataUrl + "/users/update";
} else {

View File

@ -108,10 +108,8 @@ function initTable(dataList, limit, page) {
}
}
},*/
// {field: "orgName", title: "单位部门", unresize: true, align: "center"},
{field: "roleName", title: "角色", unresize: true, align: "center"},
// {field: "phone", title: "联系电话", unresize: true, align: "center"},
{field: "levelName", title: "用户级别", unresize: true, align: "center"},
{field: "deptName", title: "项目部", unresize: true, align: "center"},
{field: "state", title: "启用状态", align: "center", templet: '#is-state'},
{field: "createTime", title: "创建时间", unresize: true, align: "center"},
{

View File

@ -62,68 +62,14 @@
</div>
</div>
<div class="layui-form-item layui-hide" id="projectDiv">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>管理的工程</label>
<div class="layui-form-item" id="projectDiv">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>项目部</label>
<div class="layui-input-inline">
<!-- <select id="project" lay-verify="required" name="project" class="form-control input-sm">-->
<!-- </select>-->
<select name="project" xm-select-search xm-select-search-type="dl" id="project" xm-select="project" xm-select-show-count='3'>
</select>
<ul id="orgId" class="dtree" data-id="0"></ul>
</div>
</div>
<!-- <div class="layui-form-item" style="margin-top: 2%;">-->
<!-- <label class="layui-form-label"><i style="padding: 0 10px;">*</i>工号</label>-->
<!-- <div class="layui-input-inline">-->
<!-- <input class="layui-input" id="userCode" name="userCode" autocomplete="off"-->
<!-- lay-verify="required" maxlength="20">-->
<!-- </div>-->
<!-- </div>-->
<!-- <div class="layui-form-item">
<label class="layui-form-label">班组</label>
<div class="layui-input-inline">
<select id="teamId" name="teamId" class="form-control input-sm">
</select>
</div>
</div>
-->
<!--
<div class="layui-form-item">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>联系电话</label>
<div class="layui-input-inline">
<input class="layui-input" autocomplete="off"
lay-verify="isRepeat |required" maxlength="11" id="phone" name="phone">
</div>
</div>
-->
<!-- <div class="layui-form-item">
<label class="layui-form-label"> <i style="padding: 0 10px;">*</i> 用户类型:</label>
<div class="layui-input-block" >
<input type="radio" id="userType_1" name="userType" value="1" title="外部用户" checked>
<input type="radio" id="userType_0" name="userType" value="0" title="内部用户">
</div>
</div>-->
<!-- <div class="layui-form-item">
<label class="layui-form-label"> <i style="padding: 0 10px;">*</i> 是否启用:</label>
<div class="layui-input-block" >
<input type="radio" id="state_1" name="state" value="1" title="启用" checked>
<input type="radio" id="state_0" name="state" value="0" title="关闭">
</div>
</div>-->
<div class="layui-form-item">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>登录权限</label>
<div class="layui-input-inline" id="cbGuDing" >
<input type="checkbox" name="loginType" value="1" title="后台" lay-skin="primary" checked>
<!-- <input type="checkbox" name="loginType" value="2" title="大屏" lay-skin="primary">-->
<input type="checkbox" name="loginType" value="3" title="app" lay-skin="primary">
<input type="hidden" id="loginType" />
</div>
</div>
<div class="layui-form-item" style="margin-top: 2%;" id="pwd">
<label class="layui-form-label"><i style="padding: 0 10px;">*</i>密码</label>

View File

@ -26,27 +26,6 @@
</div>
</div>
<!-- <div class="layui-inline" style="padding: 0 0 0 10px;">
<div class="layui-input-inline">
<input type="text" id="phone" maxlength="30" class="layui-input" autocomplete="off" placeholder="请输入电话号码">
</div>
</div>
<div class="layui-inline" style="padding: 0 0 0 10px;">
<div class="layui-input-inline">
<ul id="orgId" class="dtree" data-id="0"></ul>
</div>
</div>
<div class="layui-inline" style="padding: 0 0 0 10px;">
<div class="layui-input-inline">
<select id="userType" name="userType" class="form-control input-sm">
<option value=""> 用户类型</option>
<option value="0"> 内部用户</option>
<option value="1"> 外部用户</option>
</select>
</div>
</div>-->
<div class="layui-inline btns">
<button type="button" class="layui-btn layui-btn-normal layui-btn-sm btn-1" onclick="query(1)">查询
</button>