|
|
|
@ -222,10 +222,10 @@
|
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
|
|
|
|
|
//提升数据表格的作用域,因为底下还有一个reloadTable方法
|
|
|
|
|
var tableIns;
|
|
|
|
|
var tableIns; // 定义表格实例变量
|
|
|
|
|
|
|
|
|
|
layui.extend({
|
|
|
|
|
dtree: '/resources/layui_ext/dtree/dtree'
|
|
|
|
|
dtree: '/resources/layui_ext/dtree/dtree' // 扩展模块,引入dtree树形组件
|
|
|
|
|
}).use(['jquery', 'form', 'layer', 'laydate', 'table', 'layedit', 'dtree','laydate'], function () {
|
|
|
|
|
var $ = layui.jquery;
|
|
|
|
|
var form = layui.form;
|
|
|
|
@ -240,7 +240,7 @@
|
|
|
|
|
type: "datetime"
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
//初始化表格 加载数据
|
|
|
|
|
// 初始化表格并加载数据
|
|
|
|
|
tableIns = table.render({
|
|
|
|
|
elem: "#userTable",
|
|
|
|
|
title: "部门数据表格",
|
|
|
|
@ -257,11 +257,13 @@
|
|
|
|
|
{field: 'remark', title: '用户备注', align: 'center', width: '120'},
|
|
|
|
|
{field: 'address', title: '用户地址', align: 'center', width: '100'},
|
|
|
|
|
{field: 'hiredate', title: '入职时间', align: 'center', width: '160'},
|
|
|
|
|
{field: 'imgpath', title: '用户头像', align: 'center', width: '160', templet:function(d){
|
|
|
|
|
{
|
|
|
|
|
field: 'imgpath', title: '用户头像', align: 'center', width: '160', templet: function (d) {
|
|
|
|
|
return '<img width=40 height=40 src=/file/showImageByPath?path=' + d.imgpath + ' />';
|
|
|
|
|
}},
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'sex', title: '是否可用', align: 'center', width: '100', templet: function (d) {
|
|
|
|
|
field: 'sex', title: '性别', align: 'center', width: '100', templet: function (d) {
|
|
|
|
|
return d.sex == 1 ? '<font color="blue">男</font>' : '<font color="red">女</font>';
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
@ -274,7 +276,7 @@
|
|
|
|
|
{fixed: 'right', title: '操作', toolbar: '#userRowBar', align: 'center', width: '330'}
|
|
|
|
|
]],
|
|
|
|
|
done: function (data, curr, count) {
|
|
|
|
|
//不是第一页时,如果当前返回的数据为0那么就返回上一页
|
|
|
|
|
// 如果不是第一页且当前返回的数据为空,则返回上一页
|
|
|
|
|
if (data.data.length == 0 && curr != 1) {
|
|
|
|
|
tableIns.reload({
|
|
|
|
|
page: {
|
|
|
|
@ -300,7 +302,7 @@
|
|
|
|
|
table.on("toolbar(userTable)", function (obj) {
|
|
|
|
|
switch (obj.event) {
|
|
|
|
|
case 'add':
|
|
|
|
|
openAddLayer();
|
|
|
|
|
openAddLayer(); // 打开添加弹出层
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
@ -308,29 +310,28 @@
|
|
|
|
|
|
|
|
|
|
// 监控行工具条事件
|
|
|
|
|
table.on("tool(userTable)", function (obj) {
|
|
|
|
|
//获取当前行数据
|
|
|
|
|
var data = obj.data;
|
|
|
|
|
var data = obj.data; // 获取当前行数据
|
|
|
|
|
switch (obj.event) {
|
|
|
|
|
case 'delete':
|
|
|
|
|
deleteUser(data);
|
|
|
|
|
deleteUser(data); // 删除用户
|
|
|
|
|
break;
|
|
|
|
|
case 'update':
|
|
|
|
|
updateUser(data);
|
|
|
|
|
updateUser(data); // 更新用户信息
|
|
|
|
|
break;
|
|
|
|
|
case 'resetPwd':
|
|
|
|
|
resetPwd(data);
|
|
|
|
|
resetPwd(data); // 重置密码
|
|
|
|
|
break;
|
|
|
|
|
case 'selectRole':
|
|
|
|
|
selectRole(data);
|
|
|
|
|
selectRole(data); // 选择角色
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
;
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
var mainIndex;
|
|
|
|
|
var url;
|
|
|
|
|
var mainIndex; // 主窗口索引
|
|
|
|
|
var url; // URL变量,用于存储提交的URL地址
|
|
|
|
|
|
|
|
|
|
//打开添加弹出层
|
|
|
|
|
// 打开添加弹出层函数
|
|
|
|
|
function openAddLayer() {
|
|
|
|
|
mainIndex = layer.open({
|
|
|
|
|
type: 1,
|
|
|
|
@ -338,23 +339,20 @@
|
|
|
|
|
area: ['800px', '550px'],
|
|
|
|
|
title: '添加用户',
|
|
|
|
|
success: function () {
|
|
|
|
|
$("#dataFrm")[0].reset();
|
|
|
|
|
//设置下拉树中父节点的值为空
|
|
|
|
|
$("#deptid").val("");
|
|
|
|
|
url = "/user/addUser";
|
|
|
|
|
//初始化排序码
|
|
|
|
|
$.get("/user/loadUserMaxOrderNum", function (res) {
|
|
|
|
|
$("#dataFrm")[0].reset(); // 清空表单数据
|
|
|
|
|
$("#deptid").val(""); // 设置下拉树中父节点的值为空
|
|
|
|
|
url = "/user/addUser"; // 设置提交的URL地址为添加用户地址
|
|
|
|
|
$.get("/user/loadUserMaxOrderNum", function (res) { // 初始化排序码
|
|
|
|
|
$("#ordernum").val(res.value);
|
|
|
|
|
});
|
|
|
|
|
//重新渲染直属领导的下拉列表
|
|
|
|
|
var html = "<option value='0'>请选择直属领导</option>";
|
|
|
|
|
var html = "<option value='0'>请选择直属领导</option>"; // 重新渲染直属领导的下拉列表
|
|
|
|
|
$("#mgr").html(html);
|
|
|
|
|
form.render("select");
|
|
|
|
|
form.render("select"); // 重新渲染表单元素
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//打开修改的弹出层
|
|
|
|
|
// 打开修改弹出层函数
|
|
|
|
|
function updateUser(data) {
|
|
|
|
|
mainIndex = layer.open({
|
|
|
|
|
type: 1,
|
|
|
|
@ -362,83 +360,80 @@
|
|
|
|
|
area: ['800px', '550px'],
|
|
|
|
|
title: '修改用户',
|
|
|
|
|
success: function () {
|
|
|
|
|
//清空原有的数据
|
|
|
|
|
$("#dataFrm")[0].reset();
|
|
|
|
|
$("#deptid").val("");
|
|
|
|
|
//装载新的数据
|
|
|
|
|
form.val("dataFrm", data);
|
|
|
|
|
//选中之前的所属部门 nodeId=data.deptid
|
|
|
|
|
dtree.dataInit("deptTree", data.deptid);
|
|
|
|
|
dtree.selectVal("deptTree");
|
|
|
|
|
|
|
|
|
|
//选中领导部门,首先拿到领导的id,如何再去数据库中查询出领导的信息,取出领导的部门
|
|
|
|
|
var leaderid = data.mgr;
|
|
|
|
|
$("#dataFrm")[0].reset(); // 清空原有的数据
|
|
|
|
|
$("#deptid").val(""); // 清空部门ID输入框
|
|
|
|
|
form.val("dataFrm", data); // 装载新的数据到表单中
|
|
|
|
|
dtree.dataInit("deptTree", data.deptid); // 选中之前的所属部门 nodeId=data.deptid
|
|
|
|
|
dtree.selectVal("deptTree"); // 选中部门树的值
|
|
|
|
|
|
|
|
|
|
var leaderid = data.mgr; // 选中领导部门,首先拿到领导的id,如何再去数据库中查询出领导的信息,取出领导的部门
|
|
|
|
|
$.get("/user/loadUserById", {id: leaderid}, function (res) {
|
|
|
|
|
var d = res.data;
|
|
|
|
|
//查询领导的部门ID,如何重新加载领导部门的下拉列表
|
|
|
|
|
dtree.dataInit("leaderdeptTree",d.deptid);
|
|
|
|
|
dtree.selectVal("leaderdeptTree");
|
|
|
|
|
//根据部门ID查询当前部门下面的领导列表
|
|
|
|
|
$.get("/user/loadUsersByDeptId",{deptid:d.deptid},function (res) {
|
|
|
|
|
var users = res.data;
|
|
|
|
|
var dom_mgr=$("#mgr");
|
|
|
|
|
var html = "<option value=''>请选择直属领导</option>";
|
|
|
|
|
$.each(users,function (index, item) {
|
|
|
|
|
var d = res.data; // 查询领导的部门ID,如何重新加载领导部门的下拉列表
|
|
|
|
|
dtree.dataInit("leaderdeptTree", d.deptid); // 重新加载领导部门树的数据
|
|
|
|
|
dtree.selectVal("leaderdeptTree"); // 选中领导部门树的值
|
|
|
|
|
$.get("/user/loadUsersByDeptId", {deptid: d.deptid}, function (res) { // 根据部门ID查询当前部门下面的所有领导列表
|
|
|
|
|
var users = res.data; // 获取用户列表数据
|
|
|
|
|
var dom_mgr = $("#mgr"); // 获取直属领导下拉列表DOM对象
|
|
|
|
|
var html = "<option value=''>请选择直属领导</option>"; // 构建下拉列表选项HTML字符串
|
|
|
|
|
$.each(users, function (index, item) { // 遍历用户列表,生成下拉列表选项
|
|
|
|
|
html += "<option value='" + item.id + "'>" + item.name + "</option>";
|
|
|
|
|
});
|
|
|
|
|
dom_mgr.html(html);
|
|
|
|
|
//选中一个
|
|
|
|
|
dom_mgr.val(leaderid);
|
|
|
|
|
|
|
|
|
|
//重新渲染
|
|
|
|
|
form.render("select");
|
|
|
|
|
})
|
|
|
|
|
dom_mgr.html(html); // 将生成的HTML字符串添加到直属领导下拉列表中
|
|
|
|
|
dom_mgr.val(leaderid); // 选中一个选项(即当前用户的直属领导)
|
|
|
|
|
form.render("select"); // 重新渲染表单元素
|
|
|
|
|
});
|
|
|
|
|
url = "/user/updateUser";
|
|
|
|
|
});
|
|
|
|
|
url = "/user/modifyUser"; // 设置提交的URL地址为修改用户地址
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 提交表单事件处理函数
|
|
|
|
|
form.on("submit(doSubmit)", function (data) {
|
|
|
|
|
$.post(url, data.field, function (res) {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
tableIns.reload();
|
|
|
|
|
$.post(url, data.field, function (res) { // 发送POST请求到服务器端进行数据提交
|
|
|
|
|
if (res.code == 200) { // 如果响应状态码为200,表示成功
|
|
|
|
|
tableIns.reload(); // 重新加载表格数据
|
|
|
|
|
}
|
|
|
|
|
layer.msg(res.msg);
|
|
|
|
|
layer.close(mainIndex);
|
|
|
|
|
layer.msg(res.msg); // 显示响应消息提示框
|
|
|
|
|
layer.close(mainIndex); // 关闭当前弹窗
|
|
|
|
|
});
|
|
|
|
|
return false;
|
|
|
|
|
return false; // 阻止表单默认提交行为
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
//删除
|
|
|
|
|
// 删除用户函数
|
|
|
|
|
function deleteUser(data) {
|
|
|
|
|
// 弹出确认框,询问用户是否确定要删除该用户
|
|
|
|
|
layer.confirm('你确定要删除【' + data.name + '】这个用户吗?', {icon: 3, title: '提示'}, function (index) {
|
|
|
|
|
// 查询该用户是否是其他用户的直属领导,如果是,提示删除失败
|
|
|
|
|
$.get("/user/queryMgrByUserId", {userId: data.id}, function (res) {
|
|
|
|
|
if (res.code == -1) {
|
|
|
|
|
layer.msg(res.msg);
|
|
|
|
|
layer.msg(res.msg); // 如果用户是其他用户的直属领导,显示错误消息
|
|
|
|
|
} else {
|
|
|
|
|
// 发送POST请求到服务器端进行用户删除操作
|
|
|
|
|
$.post("/user/deleteUser/" + data.id, function (res) {
|
|
|
|
|
if (res.code == 200) {
|
|
|
|
|
tableIns.reload({
|
|
|
|
|
where:"",
|
|
|
|
|
});
|
|
|
|
|
tableIns.reload({where: ""}); // 重新加载表格数据
|
|
|
|
|
}
|
|
|
|
|
layer.msg(res.msg);
|
|
|
|
|
layer.msg(res.msg); // 显示响应消息提示框
|
|
|
|
|
});
|
|
|
|
|
layer.close(index);
|
|
|
|
|
layer.close(index); // 关闭当前弹窗
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
//重置密码
|
|
|
|
|
// 重置密码函数
|
|
|
|
|
function resetPwd(data) {
|
|
|
|
|
layer.confirm('你确定要重置【' + data.name + '】这个用户的密码吗?', {icon: 3, title: '提示'}, function (index) {
|
|
|
|
|
// 弹出确认框,询问用户是否确定要重置该用户的密码
|
|
|
|
|
layer.confirm('你确定要重置【' + data.name + '】这个用户的密码吗?', {
|
|
|
|
|
icon: 3,
|
|
|
|
|
title: '提示'
|
|
|
|
|
}, function (index) {
|
|
|
|
|
// 发送POST请求到服务器端进行密码重置操作
|
|
|
|
|
$.post("/user/resetPwd/" + data.id, function (res) {
|
|
|
|
|
layer.msg(res.msg);
|
|
|
|
|
layer.msg(res.msg); // 显示响应消息提示框
|
|
|
|
|
});
|
|
|
|
|
layer.close(index);
|
|
|
|
|
layer.close(index); // 关闭当前弹窗
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -454,12 +449,10 @@
|
|
|
|
|
|
|
|
|
|
// 监听点击的方法
|
|
|
|
|
dtree.on("node(search_deptTree)", function (obj) {
|
|
|
|
|
$("#search_deptid").val(obj.param.nodeId);
|
|
|
|
|
console.log(obj.param.nodeId);
|
|
|
|
|
$("#search_deptid").val(obj.param.nodeId); // 将选中的节点ID赋值给隐藏域
|
|
|
|
|
console.log(obj.param.nodeId); // 打印选中的节点ID
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化添加弹出层所属部门的下拉列表
|
|
|
|
|
var deptTree = dtree.renderSelect({
|
|
|
|
|
elem: "#deptTree",
|
|
|
|
@ -472,13 +465,10 @@
|
|
|
|
|
|
|
|
|
|
// 监听所属部门点击方法
|
|
|
|
|
dtree.on("node(deptTree)", function (obj) {
|
|
|
|
|
//将该部门的id赋值给隐藏域,
|
|
|
|
|
$("#deptid").val(obj.param.nodeId);
|
|
|
|
|
console.log(obj.param.nodeId);
|
|
|
|
|
$("#deptid").val(obj.param.nodeId); // 将选中的节点ID赋值给隐藏域
|
|
|
|
|
console.log(obj.param.nodeId); // 打印选中的节点ID
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 初始化添加弹出层领导部门的下拉列表
|
|
|
|
|
var leaderdeptTree = dtree.renderSelect({
|
|
|
|
|
elem: "#leaderdeptTree",
|
|
|
|
@ -491,30 +481,28 @@
|
|
|
|
|
|
|
|
|
|
// 监听点击的方法
|
|
|
|
|
dtree.on("node(leaderdeptTree)", function (obj) {
|
|
|
|
|
var deptId = obj.param.nodeId;
|
|
|
|
|
var deptId = obj.param.nodeId; // 获取选中的节点ID
|
|
|
|
|
// 根据部门ID查询当前部门下面的领导列表
|
|
|
|
|
$.get("/user/loadUsersByDeptId", {deptId: deptId}, function (res) {
|
|
|
|
|
var users = res.data;
|
|
|
|
|
var dom_mgr=$("#mgr");
|
|
|
|
|
var html = "<option value=''>请选择直属领导</option>";
|
|
|
|
|
var users = res.data; // 获取领导列表数据
|
|
|
|
|
var dom_mgr = $("#mgr"); // 获取直属领导选择框的DOM对象
|
|
|
|
|
var html = "<option value=''>请选择直属领导</option>"; // 初始化选项HTML字符串
|
|
|
|
|
$.each(users, function (index, item) {
|
|
|
|
|
html+="<option value='"+item.id+"'>"+item.name+"</option>";
|
|
|
|
|
html += "<option value='" + item.id + "'>" + item.name + "</option>"; // 拼接每个领导的选项HTML字符串
|
|
|
|
|
});
|
|
|
|
|
dom_mgr.html(html); // 将拼接好的选项HTML字符串添加到直属领导选择框中
|
|
|
|
|
form.render("select"); // 重新渲染直属领导选择框
|
|
|
|
|
});
|
|
|
|
|
dom_mgr.html(html);
|
|
|
|
|
//重新渲染
|
|
|
|
|
form.render("select");
|
|
|
|
|
})
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 监听用户名失去焦点事件
|
|
|
|
|
$("#username").on("blur", function () {
|
|
|
|
|
var username = $(this).val();
|
|
|
|
|
var username = $(this).val(); // 获取输入的用户名
|
|
|
|
|
// 将中文用户名转换为拼音并设置到登录名输入框中
|
|
|
|
|
$.get("/user/changeChineseToPinyin", {username: username}, function (res) {
|
|
|
|
|
$("#loginname").val(res.value);
|
|
|
|
|
})
|
|
|
|
|
$("#loginname").val(res.value); // 设置转换后的拼音到登录名输入框中
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// 打开分配角色的弹出层
|
|
|
|
|
function selectRole(data) {
|
|
|
|
@ -526,48 +514,42 @@
|
|
|
|
|
btn: ['<span class=layui-icon>确认分配</span>', '<span class=layui-icon>ဆ取消分配</span>'],
|
|
|
|
|
btnAlign: 'c',
|
|
|
|
|
yes: function (index, layero) {
|
|
|
|
|
var checkStatus = table.checkStatus('roleTable');
|
|
|
|
|
var params = "uid="+data.id;
|
|
|
|
|
var checkStatus = table.checkStatus('roleTable'); // 获取角色表格的选择状态
|
|
|
|
|
var params = "uid=" + data.id; // 初始化参数字符串,包含用户ID
|
|
|
|
|
$.each(checkStatus.data, function (index, item) {
|
|
|
|
|
params+="&ids="+item.id;
|
|
|
|
|
params += "&ids=" + item.id; // 拼接选中的角色ID到参数字符串中
|
|
|
|
|
});
|
|
|
|
|
// 发送POST请求到服务器端进行角色分配操作
|
|
|
|
|
$.post("/user/saveUserRole", params, function (res) {
|
|
|
|
|
layer.msg(res.msg);
|
|
|
|
|
layer.close(mainIndex);
|
|
|
|
|
})
|
|
|
|
|
layer.msg(res.msg); // 显示响应消息提示框
|
|
|
|
|
layer.close(mainIndex); // 关闭当前弹窗
|
|
|
|
|
});
|
|
|
|
|
},
|
|
|
|
|
btn2: function (index, layero) {
|
|
|
|
|
//关闭弹出层
|
|
|
|
|
// 关闭弹出层,无需额外操作
|
|
|
|
|
},
|
|
|
|
|
success: function () {
|
|
|
|
|
initRoleTable(data);
|
|
|
|
|
initRoleTable(data); // 初始化角色列表表格
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var roleTableIns;
|
|
|
|
|
//初始化角色列表
|
|
|
|
|
var roleTableIns; // 定义角色列表表格实例变量
|
|
|
|
|
// 初始化角色列表表格
|
|
|
|
|
function initRoleTable(data) {
|
|
|
|
|
console.log(data);
|
|
|
|
|
console.log(data); // 打印传入的数据对象
|
|
|
|
|
roleTableIns = table.render({
|
|
|
|
|
elem:'#roleTable',
|
|
|
|
|
url:'/user/initRoleByUserId',
|
|
|
|
|
//将用户id传到后台去
|
|
|
|
|
where:{
|
|
|
|
|
id:data.id
|
|
|
|
|
},
|
|
|
|
|
cols:[ [
|
|
|
|
|
{type:'checkbox',align:'center'},
|
|
|
|
|
{field:'id',title:'ID',align:'center'},
|
|
|
|
|
{field:'name',title:'角色名称',align:'center'},
|
|
|
|
|
{field:'remark',title:'角色备注',align:'center'}
|
|
|
|
|
elem: '#roleTable', // 绑定表格元素
|
|
|
|
|
url: '/user/initRoleByUserId', // 设置表格数据源URL
|
|
|
|
|
where: {id: data.id}, // 将用户ID作为参数传递到后台
|
|
|
|
|
cols: [[ // 定义表格列配置
|
|
|
|
|
{type: 'checkbox', align: 'center'}, // 复选框列,居中对齐
|
|
|
|
|
{field: 'id', title: 'ID', align: 'center'}, // ID列,居中对齐
|
|
|
|
|
{field: 'name', title: '角色名称', align: 'center'}, // 角色名称列,居中对齐
|
|
|
|
|
{field: 'remark', title: '角色备注', align: 'center'} // 角色备注列,居中对齐
|
|
|
|
|
]]
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
</script>
|
|
|
|
|