Merge remote-tracking branch 'origin/group2-sysUser'

# Conflicts:
#	src/main/java/cn/stylefeng/guns/modular/user/UserViewController.java
pull/64/head
fengshuonan 2021-01-12 21:20:29 +08:00
commit 638c236aed
14 changed files with 410 additions and 341 deletions

View File

@ -49,4 +49,15 @@ public class UserViewController {
return "/modular/system/user/user_edit.html"; return "/modular/system/user/user_edit.html";
} }
/**
* --
*
* @author chenjinlong
* @date 2021/1/7 19:09
*/
@GetResource(name = "用户管理-角色-视图", path = "roleView")
public String roleView() {
return "/modular/system/user/user_role.html";
}
} }

View File

@ -1,40 +1,22 @@
layui.use(['table', 'form', 'func', 'HttpRequest', 'tree', 'util'], function () { layui.use(['layer', 'form', 'table', 'ztree', 'laydate', 'admin', 'HttpRequest', 'func', 'tree', 'util'], function () {
var $ = layui.$;
var table = layui.table;
var form = layui.form; var form = layui.form;
var func = layui.func; var table = layui.table;
var HttpRequest = layui.HttpRequest; var HttpRequest = layui.HttpRequest;
var xmSelect = layui.xmSelect; var func = layui.func;
var tree = layui.tree; var tree = layui.tree;
// 职位表管理 /**
* 系统管理--用户管理
*/
var Organization = { var Organization = {
tableId: "organizationTable" tableId: "userTable", //表格id
condition: {
orgName: "",
orgParentId: "",
orgCode: ""
}
}; };
/* 渲染树形 */
function renderTree() {
$.get(Feng.ctxPath + '/hrOrganization/treeLayui', function (data) {
tree.render({
elem: '#organizationTree',
onlyIconControl: true,
data: data.data,
click: function (rest) {
$('#organizationTree').find('.ew-tree-click').removeClass('ew-tree-click');
$(rest.elem).children('.layui-tree-entry').addClass('ew-tree-click');
table.reload(Organization.tableId, {
where: {organizationId: rest.data.id},
page: {curr: 1}
});
}
});
$('#organizationTree').find('.layui-tree-entry:first>.layui-tree-main>.layui-tree-txt').trigger('click');
});
}
renderTree();
// 初始化表格的列 // 初始化表格的列
Organization.initColumn = function () { Organization.initColumn = function () {
return [[ return [[
@ -49,13 +31,22 @@ layui.use(['table', 'form', 'func', 'HttpRequest', 'tree', 'util'], function ()
]]; ]];
}; };
// 选择部门时
Organization.onClickDept = function (obj) {
console.log(obj);
Organization.condition.orgParentId = obj.data.id;
Organization.search();
};
// 点击查询按钮 // 点击查询按钮
Organization.search = function () { Organization.search = function () {
var queryData = {}; var queryData = {};
queryData['orgParentId'] = Organization.condition.orgParentId;
queryData['orgName'] = $("#orgName").val(); queryData['orgName'] = $("#orgName").val();
queryData['orgCode'] = $("#orgCode").val();
table.reload(Organization.tableId, { table.reload(Organization.tableId, {
where: queryData, where: queryData, page: {curr: 1}
page: {curr: 1}
}); });
}; };
@ -96,7 +87,7 @@ layui.use(['table', 'form', 'func', 'HttpRequest', 'tree', 'util'], function ()
Feng.success("删除成功!"); Feng.success("删除成功!");
table.reload(Organization.tableId); table.reload(Organization.tableId);
}, function (data) { }, function (data) {
Feng.error("删除失败!" + data.responseJSON.message + "!"); Feng.error("删除失败!" + data.message + "!");
}); });
httpRequest.set(data); httpRequest.set(data);
httpRequest.start(true); httpRequest.start(true);
@ -111,7 +102,7 @@ layui.use(['table', 'form', 'func', 'HttpRequest', 'tree', 'util'], function ()
Feng.success("修改成功!"); Feng.success("修改成功!");
}, function (data) { }, function (data) {
table.reload(Organization.tableId); table.reload(Organization.tableId);
Feng.error("修改失败!" + data.responseJSON.message); Feng.error("修改失败!" + data.message);
}); });
httpRequest.set({"orgId": orgId, "statusFlag": checked}); httpRequest.set({"orgId": orgId, "statusFlag": checked});
httpRequest.start(true); httpRequest.start(true);
@ -122,13 +113,23 @@ layui.use(['table', 'form', 'func', 'HttpRequest', 'tree', 'util'], function ()
elem: '#' + Organization.tableId, elem: '#' + Organization.tableId,
url: Feng.ctxPath + '/hrOrganization/page', url: Feng.ctxPath + '/hrOrganization/page',
page: true, page: true,
request: {pageName: 'pageNo', limitName: 'pageSize'}, //自定义分页参数 height: "full-98",
height: "full-158",
cellMinWidth: 100, cellMinWidth: 100,
cols: Organization.initColumn(), cols: Organization.initColumn(),
parseData: Feng.parseData parseData: Feng.parseData
}); });
// 初始化部门树
var request = new HttpRequest(Feng.ctxPath + '/hrOrganization/treeLayui', 'get', function (data) {
tree.render({
elem: '#deptTree',
data: data.data,
click: Organization.onClickDept,
onlyIconControl: true
});
});
request.start();
// 搜索按钮点击事件 // 搜索按钮点击事件
$('#btnSearch').click(function () { $('#btnSearch').click(function () {
Organization.search(); Organization.search();
@ -161,4 +162,13 @@ layui.use(['table', 'form', 'func', 'HttpRequest', 'tree', 'util'], function ()
var checked = obj.elem.checked ? 1 : 2; var checked = obj.elem.checked ? 1 : 2;
Organization.updateStatus(orgId, checked); Organization.updateStatus(orgId, checked);
}); });
}); });
$(function () {
var panehHidden = false;
if ($(this).width() < 769) {
panehHidden = true;
}
$('#myContiner').layout({initClosed: panehHidden, west__size: 260});
});

View File

@ -4,35 +4,31 @@ layui.use(['form', 'admin', 'HttpRequest', 'xmSelect'], function () {
var admin = layui.admin; var admin = layui.admin;
var HttpRequest = layui.HttpRequest; var HttpRequest = layui.HttpRequest;
var xmSelect = layui.xmSelect; var xmSelect = layui.xmSelect;
var insXmSel; var organizationXmSel;
/* 渲染树形 */ // 初始化组织树
function renderTree() { new HttpRequest(Feng.ctxPath + "/hrOrganization/treeLayui", 'get', function (data) {
$.get(Feng.ctxPath + '/hrOrganization/treeLayui', function (data) { organizationXmSel = xmSelect.render({
insXmSel = xmSelect.render({ el: '#organization',
el: '#organizationEditParentSel', data: data.data,
height: '250px', model: {label: {type: 'text'}},
data: data.data, prop: {name: 'title', value: 'id'},
model: {label: {type: 'text'}}, radio: true,
prop: {name: 'title', value: 'id'}, layVerify: 'required',
radio: true, clickClose: true,
clickClose: true, tree: {
tree: { show: true,
show: true, indent: 15,
indent: 15, strict: false,
strict: false, expandedKeys: true
expandedKeys: true }
}
});
}); });
} }).start();
renderTree();
//表单提交事件 //表单提交事件
form.on('submit(btnSubmit)', function (data) { form.on('submit(btnSubmit)', function (data) {
//获取机构id //获取机构id
data.field.orgParentId = insXmSel.getValue('valueStr'); data.field.orgParentId = organizationXmSel.getValue('valueStr');
var request = new HttpRequest(Feng.ctxPath + "/hrOrganization/add", 'post', function (data) { var request = new HttpRequest(Feng.ctxPath + "/hrOrganization/add", 'post', function (data) {
admin.closeThisDialog(); admin.closeThisDialog();
Feng.success("添加成功!"); Feng.success("添加成功!");

View File

@ -4,41 +4,38 @@ layui.use(['form', 'admin', 'HttpRequest', 'xmSelect'], function () {
var admin = layui.admin; var admin = layui.admin;
var HttpRequest = layui.HttpRequest; var HttpRequest = layui.HttpRequest;
var xmSelect = layui.xmSelect; var xmSelect = layui.xmSelect;
var insXmSel; var organizationXmSel;
//获取信息详情填充表单 //获取信息详情填充表单
var request = new HttpRequest(Feng.ctxPath + "/hrOrganization/detail?orgId=" + Feng.getUrlParam("orgId"), 'get'); var request = new HttpRequest(Feng.ctxPath + "/hrOrganization/detail?orgId=" + Feng.getUrlParam("orgId"), 'get');
var result = request.start(); var result = request.start();
form.val('organizationForm', result.data); form.val('organizationForm', result.data);
renderTree(result.data.orgParentId);
/* 渲染树形 */ // 初始化组织树
function renderTree(orgParentId) { new HttpRequest(Feng.ctxPath + "/hrOrganization/treeLayui", 'get', function (data) {
$.get(Feng.ctxPath + '/hrOrganization/treeLayui', function (data) { organizationXmSel = xmSelect.render({
insXmSel = xmSelect.render({ el: '#organization',
el: '#organizationEditParentSel', data: data.data,
height: '250px', initValue: [result.data.orgId],
data: data.data, layVerify: 'required',
initValue: [orgParentId], model: {label: {type: 'text'}},
model: {label: {type: 'text'}}, prop: {name: 'title', value: 'id'},
prop: {name: 'title', value: 'id'}, radio: true,
radio: true, clickClose: true,
clickClose: true, tree: {
tree: { show: true,
show: true, indent: 15,
indent: 15, strict: false,
strict: false, expandedKeys: true
expandedKeys: true }
}
});
}); });
} }).start();
//表单提交事件 //表单提交事件
form.on('submit(btnSubmit)', function (data) { form.on('submit(btnSubmit)', function (data) {
//获取机构id //获取机构id
data.field.orgParentId = insXmSel.getValue('valueStr'); data.field.orgParentId = organizationXmSel.getValue('valueStr');
var request = new HttpRequest(Feng.ctxPath + "/hrOrganization/edit", 'post', function (data) { var request = new HttpRequest(Feng.ctxPath + "/hrOrganization/edit", 'post', function (data) {
admin.closeThisDialog(); admin.closeThisDialog();

View File

@ -97,7 +97,7 @@ layui.use(['table', 'form', 'func', 'HttpRequest', 'util'], function () {
Feng.success("修改成功!"); Feng.success("修改成功!");
}, function (data) { }, function (data) {
table.reload(Position.tableId); table.reload(Position.tableId);
Feng.error("修改失败!" + data.responseJSON.message); Feng.error("修改失败!" + data.message);
}); });
httpRequest.set({"positionId": positionId, "statusFlag": checked}); httpRequest.set({"positionId": positionId, "statusFlag": checked});
httpRequest.start(true); httpRequest.start(true);

View File

@ -13,9 +13,9 @@ layui.use(['layer', 'form', 'table', 'ztree', 'laydate', 'admin', 'HttpRequest',
var MgrUser = { var MgrUser = {
tableId: "userTable", //表格id tableId: "userTable", //表格id
condition: { condition: {
name: "", realName: "",
deptId: "", orgId: "",
timeLimit: "" account: ""
} }
}; };
@ -25,7 +25,7 @@ layui.use(['layer', 'form', 'table', 'ztree', 'laydate', 'admin', 'HttpRequest',
MgrUser.initColumn = function () { MgrUser.initColumn = function () {
//获取多语言 //获取多语言
var langs = layui.data('system').lang; //var langs = layui.data('system').lang;
return [[ return [[
{type: 'checkbox'}, {type: 'checkbox'},
@ -45,7 +45,8 @@ layui.use(['layer', 'form', 'table', 'ztree', 'laydate', 'admin', 'HttpRequest',
* 选择部门时 * 选择部门时
*/ */
MgrUser.onClickDept = function (obj) { MgrUser.onClickDept = function (obj) {
MgrUser.condition.deptId = obj.data.id; console.log(obj);
MgrUser.condition.orgId = obj.data.id;
MgrUser.search(); MgrUser.search();
}; };
@ -54,9 +55,9 @@ layui.use(['layer', 'form', 'table', 'ztree', 'laydate', 'admin', 'HttpRequest',
*/ */
MgrUser.search = function () { MgrUser.search = function () {
var queryData = {}; var queryData = {};
queryData['deptId'] = MgrUser.condition.deptId; queryData['orgId'] = MgrUser.condition.orgId;
queryData['name'] = $("#name").val(); queryData['account'] = $("#account").val();
queryData['timeLimit'] = $("#timeLimit").val(); queryData['realName'] = $("#realName").val();
table.reload(MgrUser.tableId, { table.reload(MgrUser.tableId, {
where: queryData, page: {curr: 1} where: queryData, page: {curr: 1}
}); });
@ -92,88 +93,57 @@ layui.use(['layer', 'form', 'table', 'ztree', 'laydate', 'admin', 'HttpRequest',
} }
}; };
/** // 删除用户
* 点击删除用户按钮
*
* @param data 点击按钮时候的行数据
*/
MgrUser.onDeleteUser = function (data) { MgrUser.onDeleteUser = function (data) {
var operation = function () { var operation = function () {
var ajax = new $ax(Feng.ctxPath + "/mgr/delete", function () { var httpRequest = new HttpRequest(Feng.ctxPath + "/sysUser/delete", 'post', function (data) {
table.reload(MgrUser.tableId);
Feng.success("删除成功!"); Feng.success("删除成功!");
table.reload(MgrUser.tableId);
}, function (data) { }, function (data) {
Feng.error("删除失败!" + data.responseJSON.message + "!"); Feng.error("删除失败!" + data.message + "!");
}); });
ajax.set("userId", data.userId); httpRequest.set(data);
ajax.start(); httpRequest.start(true);
}; };
Feng.confirm("是否删除用户" + data.account + "?", operation); Feng.confirm("是否删除用户" + data.account + "?", operation);
}; };
/** // 分配角色
* 分配角色
*
* @param data 点击按钮时候的行数据
*/
MgrUser.roleAssign = function (data) { MgrUser.roleAssign = function (data) {
//获取多语言 func.open({
var langs = layui.data('system').lang; title: '授权角色',
height: 470,
layer.open({ content: Feng.ctxPath + '/view/user/roleView?userId=' + data.userId,
type: 2, tableId: MgrUser.tableId
title: langs.TITLE_ROLE_ASSIGN,
area: ['300px', '400px'],
content: Feng.ctxPath + '/mgr/role_assign?userId=' + data.userId,
end: function () {
table.reload(MgrUser.tableId);
}
}); });
}; };
/** // 重置密码
* 重置密码
*
* @param data 点击按钮时候的行数据
*/
MgrUser.resetPassword = function (data) { MgrUser.resetPassword = function (data) {
Feng.confirm("是否重置密码为" + $("#defaultPassword").val() + "?", function () { Feng.confirm("是否重置密码为" + $("#defaultPassword").val() + "?", function () {
var ajax = new $ax(Feng.ctxPath + "/mgr/reset", function (data) { var httpRequest = new HttpRequest(Feng.ctxPath + "/sysUser/resetPwd", 'post', function (data) {
Feng.success("重置密码成功!"); Feng.success("重置密码成功!");
table.reload(MgrUser.tableId);
}, function (data) { }, function (data) {
Feng.error("重置密码失败!" + data.responseJSON.message + "!"); Feng.error("重置密码失败!" + data.message + "!");
}); });
ajax.set("userId", data.userId); httpRequest.set(data);
ajax.start(); httpRequest.start(true);
}); });
}; };
/** // 修改用户状态
* 修改用户状态
*
* @param userId 用户id
* @param checked 是否选中true,false选中就是解锁用户未选中就是锁定用户
*/
MgrUser.changeUserStatus = function (userId, checked) { MgrUser.changeUserStatus = function (userId, checked) {
if (checked) {
var ajax = new $ax(Feng.ctxPath + "/mgr/unfreeze", function (data) { var httpRequest = new HttpRequest(Feng.ctxPath + "/sysUser/changeStatus", 'post', function (data) {
Feng.success("解除冻结成功!"); table.reload(MgrUser.tableId);
}, function (data) { Feng.success("修改成功!");
Feng.error("解除冻结失败!"); }, function (data) {
table.reload(MgrUser.tableId); table.reload(MgrUser.tableId);
}); Feng.error("修改失败!" + data.message);
ajax.set("userId", userId); });
ajax.start(); httpRequest.set({"userId": userId, "statusFlag": checked});
} else { httpRequest.start(true);
var ajax = new $ax(Feng.ctxPath + "/mgr/freeze", function (data) {
Feng.success("冻结成功!");
}, function (data) {
Feng.error("冻结失败!" + data.responseJSON.message + "!");
table.reload(MgrUser.tableId);
});
ajax.set("userId", userId);
ajax.start();
}
}; };
// 渲染表格 // 渲染表格
@ -239,7 +209,7 @@ layui.use(['layer', 'form', 'table', 'ztree', 'laydate', 'admin', 'HttpRequest',
// 修改user状态 // 修改user状态
form.on('switch(status)', function (obj) { form.on('switch(status)', function (obj) {
var userId = obj.elem.value; var userId = obj.elem.value;
var checked = obj.elem.checked ? true : false; var checked = obj.elem.checked ? 1 : 2;
MgrUser.changeUserStatus(userId, checked); MgrUser.changeUserStatus(userId, checked);
}); });

View File

@ -1,38 +1,47 @@
/** layui.use(['layer', 'form', 'admin', 'laydate', 'HttpRequest', 'xmSelect'], function () {
* 用户详情对话框
*/
var UserInfoDlg = {
data: {
deptId: "",
deptName: ""
}
};
layui.use(['layer', 'form', 'admin', 'laydate', 'HttpRequest', 'formSelects'], function () {
var $ = layui.jquery; var $ = layui.jquery;
var HttpRequest = layui.HttpRequest; var HttpRequest = layui.HttpRequest;
var form = layui.form; var form = layui.form;
var admin = layui.admin; var admin = layui.admin;
var laydate = layui.laydate; var laydate = layui.laydate;
var layer = layui.layer; var xmSelect = layui.xmSelect;
var formSelects = layui.formSelects; var organizationXmSel;
var positionXmSel;
// 点击部门时 // 初始化组织树
$('#deptName').click(function () { new HttpRequest(Feng.ctxPath + "/hrOrganization/treeLayui", 'get', function (data) {
var formName = encodeURIComponent("parent.UserInfoDlg.data.deptName"); organizationXmSel = xmSelect.render({
var formId = encodeURIComponent("parent.UserInfoDlg.data.deptId"); el: '#organization',
var treeUrl = encodeURIComponent("/dept/tree"); data: data.data,
model: {label: {type: 'text'}},
layer.open({ prop: {name: 'title', value: 'id'},
type: 2, radio: true,
title: '部门选择', layVerify: 'required',
area: ['300px', '400px'], clickClose: true,
content: Feng.ctxPath + '/system/commonTree?formName=' + formName + "&formId=" + formId + "&treeUrl=" + treeUrl, tree: {
end: function () { show: true,
$("#deptId").val(UserInfoDlg.data.deptId); indent: 15,
$("#deptName").val(UserInfoDlg.data.deptName); strict: false,
expandedKeys: true
} }
}); });
}).start();
// 初始化职位
new HttpRequest(Feng.ctxPath + "/hrPosition/list", 'get', function (data) {
positionXmSel = xmSelect.render({
el: '#position',
radio: true,
layVerify: 'required',
clickClose: true,
data: data.data,
prop: {name: 'positionName', value: 'positionId'},
});
}).start();
// 渲染时间选择框
laydate.render({
elem: '#birthday'
}); });
// 添加表单验证方法 // 添加表单验证方法
@ -45,36 +54,23 @@ layui.use(['layer', 'form', 'admin', 'laydate', 'HttpRequest', 'formSelects'], f
} }
}); });
// 渲染时间选择框
laydate.render({
elem: '#birthday'
});
// 表单提交事件 // 表单提交事件
form.on('submit(btnSubmit)', function (data) { form.on('submit(btnSubmit)', function (data) {
var ajax = new $ax(Feng.ctxPath + "/mgr/add", function (data) {
Feng.success("添加成功!");
//传给上个页面刷新table用 // 获取机构id
admin.putTempData('formOk', true); data.field.orgId = organizationXmSel.getValue('valueStr');
// 职位id
data.field.positionId = positionXmSel.getValue('valueStr');
//关掉对话框 var request = new HttpRequest(Feng.ctxPath + "/sysUser/add", 'post', function (data) {
admin.closeThisDialog(); admin.closeThisDialog();
Feng.success("添加成功!");
admin.putTempData('formOk', true);
}, function (data) { }, function (data) {
Feng.error("添加失败!" + data.responseJSON.message) admin.closeThisDialog();
Feng.error("添加失败!" + data.message);
}); });
ajax.set(data.field); request.set(data.field);
ajax.start(); request.start(true);
//添加 return false 可成功跳转页面
return false;
});
//初始化所有的职位列表
formSelects.config('selPosition', {
searchUrl: Feng.ctxPath + "/position/listPositions",
keyName: 'name',
keyVal: 'positionId'
}); });
}); });

View File

@ -1,46 +1,52 @@
/** layui.use(['layer', 'form', 'admin', 'laydate', 'HttpRequest', 'xmSelect'], function () {
* 用户详情对话框
*/
var UserInfoDlg = {
data: {
deptId: "",
deptName: ""
}
};
layui.use(['layer', 'form', 'admin', 'laydate', 'HttpRequest', 'formSelects'], function () {
var $ = layui.jquery; var $ = layui.jquery;
var HttpRequest = layui.HttpRequest; var HttpRequest = layui.HttpRequest;
var form = layui.form; var form = layui.form;
var admin = layui.admin; var admin = layui.admin;
var laydate = layui.laydate; var laydate = layui.laydate;
var layer = layui.layer; var xmSelect = layui.xmSelect;
var formSelects = layui.formSelects; var organizationXmSel;
var positionXmSel;
//获取信息详情填充表单 //获取信息详情填充表单
var request = new HttpRequest(Feng.ctxPath + "/sysUser/detail?userId=" + Feng.getUrlParam("userId"), 'get'); var request = new HttpRequest(Feng.ctxPath + "/sysUser/detail?userId=" + Feng.getUrlParam("userId"), 'get');
var result = request.start(); var result = request.start();
form.val('userForm', result.data); form.val('userForm', result.data);
// 初始化职位
new HttpRequest(Feng.ctxPath + "/hrPosition/list", 'get', function (data) {
positionXmSel = xmSelect.render({
el: '#position',
radio: true,
clickClose: true,
layVerify: 'required',
data: data.data,
initValue: [result.data.positionId],
prop: {name: 'positionName', value: 'positionId'},
});
}).start();
// 点击部门时
$('#deptName').click(function () {
var formName = encodeURIComponent("parent.UserInfoDlg.data.deptName");
var formId = encodeURIComponent("parent.UserInfoDlg.data.deptId");
var treeUrl = encodeURIComponent("/dept/tree");
layer.open({ // 初始化组织树
type: 2, new HttpRequest(Feng.ctxPath + "/hrOrganization/treeLayui", 'get', function (data) {
title: '部门选择', organizationXmSel = xmSelect.render({
area: ['300px', '400px'], el: '#organization',
content: Feng.ctxPath + '/system/commonTree?formName=' + formName + "&formId=" + formId + "&treeUrl=" + treeUrl, data: data.data,
end: function () { initValue: [result.data.orgId],
console.log(UserInfoDlg.data); layVerify: 'required',
$("#deptId").val(UserInfoDlg.data.deptId); model: {label: {type: 'text'}},
$("#deptName").val(UserInfoDlg.data.deptName); prop: {name: 'title', value: 'id'},
radio: true,
clickClose: true,
tree: {
show: true,
indent: 15,
strict: false,
expandedKeys: true
} }
}); });
}); }).start();
// 添加表单验证方法 // 添加表单验证方法
form.verify({ form.verify({
@ -59,28 +65,22 @@ layui.use(['layer', 'form', 'admin', 'laydate', 'HttpRequest', 'formSelects'], f
// 表单提交事件 // 表单提交事件
form.on('submit(btnSubmit)', function (data) { form.on('submit(btnSubmit)', function (data) {
var ajax = new $ax(Feng.ctxPath + "/mgr/edit", function (data) { // 获取机构id
Feng.success("修改成功!"); data.field.orgId = organizationXmSel.getValue('valueStr');
// 职位id
data.field.positionId = positionXmSel.getValue('valueStr');
//传给上个页面刷新table用 var request = new HttpRequest(Feng.ctxPath + "/sysUser/edit", 'post', function (data) {
admin.putTempData('formOk', true);
//关掉对话框
admin.closeThisDialog(); admin.closeThisDialog();
Feng.success("修改成功!");
admin.putTempData('formOk', true);
}, function (data) { }, function (data) {
Feng.error("修改失败!" + data.responseJSON.message) admin.closeThisDialog();
Feng.error("修改失败!" + data.message);
}); });
ajax.set(data.field); request.set(data.field);
ajax.start(); request.start(true);
//添加 return false 可成功跳转页面
return false;
}); });
//初始化所有的职位列表
// formSelects.config('selPosition', {
// searchUrl: Feng.ctxPath + "/position/listPositions?userId=" + $("#userId").val(),
// keyName: 'name',
// keyVal: 'positionId'
// });
}); });

View File

@ -0,0 +1,45 @@
layui.use(['layer', 'form', 'admin', 'laydate', 'HttpRequest', 'xmSelect'], function () {
var $ = layui.jquery;
var HttpRequest = layui.HttpRequest;
var form = layui.form;
var admin = layui.admin;
var xmSelect = layui.xmSelect;
var roleXmSel;
//获取信息详情填充表单
var request = new HttpRequest(Feng.ctxPath + "/sysUser/detail?userId=" + Feng.getUrlParam("userId"), 'get');
var result = request.start();
form.val('userForm', result.data);
console.log(result.data.grantRoleIdList);
// 初始化角色
new HttpRequest(Feng.ctxPath + "/sysRole/dropDown", 'get', function (data) {
roleXmSel = xmSelect.render({
el: '#role',
toolbar: {show: true},
layVerify: 'required',
initValue: result.data.grantRoleIdList,
data: data.data,
prop: {name: 'name', value: 'id'},
});
}).start();
// 表单提交事件
form.on('submit(btnSubmit)', function (data) {
// 角色ids
console.log(Feng.getUrlParam("userId"));
data.field.grantRoleIdList = roleXmSel.getValue('value');
data.field.userId = Feng.getUrlParam("userId");
var request = new HttpRequest(Feng.ctxPath + "/sysUser/grantRole", 'post', function (data) {
admin.closeThisDialog();
Feng.success("授权成功!");
admin.putTempData('formOk', true);
}, function (data) {
admin.closeThisDialog();
Feng.error("授权失败!" + data.message);
});
request.set(data.field);
request.start(true);
});
});

View File

@ -1,49 +1,43 @@
@layout("/layout/_container.html",{js:["/assets/modular/system/organization/organization.js"]}){ @layout("/layout/_tree_container.html",{plugins:["ztree"],js:["/assets/modular/system/organization/organization.js"]}){
<div class="layui-body-header"> <div class="layui-body-header">
<span class="layui-body-header-title">机构管理</span> <span class="layui-body-header-title">机构管理</span>
</div> </div>
<div class="layui-fluid"> <div id="myContiner" style="height: 100%">
<div class="layui-row layui-col-space15"> <div class="ui-layout-west">
<div class="layui-col-md3"> <div class="box box-main">
<div class="layui-card"> <div class="ui-layout-content">
<div class="layui-card-body" style="padding: 10px;"> <div id="deptTree"></div>
<!-- 树工具栏 -->
<!-- <div class="layui-form toolbar" id="organizationTreeBar">-->
<!-- <button id="organizationAddBtn" class="layui-btn layui-btn-sm icon-btn">-->
<!-- <i class="layui-icon">&#xe654;</i>添加-->
<!-- </button>&nbsp;-->
<!-- <button id="organizationEditBtn" class="layui-btn layui-btn-sm layui-btn-warm icon-btn">-->
<!-- <i class="layui-icon">&#xe642;</i>修改-->
<!-- </button>&nbsp;-->
<!-- <button id="organizationDelBtn"-->
<!-- class="layui-btn layui-btn-sm layui-btn-danger icon-btn">-->
<!-- <i class="layui-icon">&#xe640;</i>删除-->
<!-- </button>-->
<!-- </div>-->
<!-- 左树 -->
<div id="organizationTree"></div>
</div>
</div> </div>
</div> </div>
<div class="layui-col-md9"> </div>
<div class="layui-card"> <div class="ui-layout-center">
<div class="layui-card-body" style="padding: 10px;"> <div class="layui-fluid">
<div class="layui-form toolbar"> <div class="layui-row">
<div class="layui-form-item"> <div class="layui-col-md12">
<div class="layui-inline"> <div class="layui-card">
<input id="orgName" class="layui-input" type="text" placeholder="机构名称"/> <div class="layui-card-body">
</div> <div class="layui-form toolbar">
<div class="layui-inline">
<button id="btnSearch" class="layui-btn icon-btn"><i class="layui-icon">&#xe615;</i>搜索</button> <input id="defaultPassword" class="layui-input" type="hidden" value="${constants.getDefaultPassWord()}"/>
<button id="btnAdd" class="layui-btn icon-btn"><i class="layui-icon">&#xe654;</i>添加</button> <div class="layui-form-item">
<button id="btnExp" class="layui-btn icon-btn"><i class="layui-icon">&#xe67d;</i>导出</button> <div class="layui-inline">
<input id="orgName" class="layui-input" type="text" placeholder="组织名称"/>
</div>
<div class="layui-inline">
<input id="orgCode" class="layui-input" type="text" placeholder="组织编码"/>
</div>
<div class="layui-inline">
<button id="btnSearch" class="layui-btn icon-btn"><i class="layui-icon">&#xe615;</i>搜索</button>
<button id="btnAdd" class="layui-btn icon-btn"><i class="layui-icon">&#xe654;</i>添加</button>
<button id="btnExp" class="layui-btn icon-btn"><i class="layui-icon">&#xe67d;</i>导出</button>
</div>
</div>
</div> </div>
<table class="layui-table" id="userTable" lay-filter="userTable"></table>
</div> </div>
</div> </div>
<!-- 数据表格 -->
<table id="organizationTable" lay-filter="organizationTable"></table>
</div> </div>
</div> </div>
</div> </div>
@ -53,9 +47,11 @@
<script type="text/html" id="tableBar"> <script type="text/html" id="tableBar">
<a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a>
<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="delete">删除</a> <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="delete">删除</a>
<a class="layui-btn layui-btn-normal layui-btn-xs" lay-event="roleAssign">分配角色</a>
<a class="layui-btn layui-btn-xs" lay-event="reset">重置密码</a>
</script> </script>
<script type="text/html" id="statusTpl"> <script type="text/html" id="statusTpl">
<input type="checkbox" lay-filter="status" value="{{d.orgId}}" lay-skin="switch" lay-text="正常|锁定" {{d.statusFlag=='1'?'checked':''}}/> <input type="checkbox" lay-filter="status" value="{{d.userId}}" lay-skin="switch" lay-text="正常|锁定" {{d.statusFlag=='1'?'checked':''}}/>
</script> </script>
@} @}

View File

@ -20,12 +20,13 @@
<div class="layui-card-body"> <div class="layui-card-body">
<div class="layui-form toolbar"> <div class="layui-form toolbar">
<input id="defaultPassword" class="layui-input" type="hidden" value="${constants.getDefaultPassWord()}"/>
<div class="layui-form-item"> <div class="layui-form-item">
<div class="layui-inline"> <div class="layui-inline">
<input id="name" class="layui-input" type="text" placeholder=""/> <input id="account" class="layui-input" type="text" placeholder="账号"/>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
<input id="timeLimit" class="layui-input" type="text" placeholder=""/> <input id="realName" class="layui-input" type="text" placeholder="姓名"/>
</div> </div>
<div class="layui-inline"> <div class="layui-inline">
<button id="btnSearch" class="layui-btn icon-btn"><i class="layui-icon">&#xe615;</i>搜索</button> <button id="btnSearch" class="layui-btn icon-btn"><i class="layui-icon">&#xe615;</i>搜索</button>
@ -51,6 +52,6 @@
</script> </script>
<script type="text/html" id="statusTpl"> <script type="text/html" id="statusTpl">
<input type="checkbox" lay-filter="status" value="{{d.userId}}" lay-skin="switch" lay-text="正常|锁定" {{d.statusFlag=='1'?'checked':''}} /> <input type="checkbox" lay-filter="status" value="{{d.userId}}" lay-skin="switch" lay-text="正常|锁定" {{d.statusFlag=='1'?'checked':''}}/>
</script> </script>
@} @}

View File

@ -8,23 +8,11 @@
<div class="layui-form-item layui-row"> <div class="layui-form-item layui-row">
<input name="userId" type="hidden"/> <input name="userId" type="hidden"/>
<div class="layui-inline layui-col-md12"> <div class="layui-inline layui-col-md12">
<label class="layui-form-label">基本信息<span style="color: red;">*</span></label> <label class="layui-form-label">账号<span style="color: red;">*</span></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input name="account" placeholder="请输入账号" type="text" class="layui-input" lay-verify="required" required/> <input name="account" placeholder="请输入账号" type="text" class="layui-input" lay-verify="required" required/>
</div> </div>
</div> </div>
<div class="layui-inline layui-col-md12">
<label class="layui-form-label">姓名<span style="color: red;">*</span></label>
<div class="layui-input-block">
<input name="name" placeholder="请输入姓名" type="text" class="layui-input" lay-verify="required" required/>
</div>
</div>
<div class="layui-inline layui-col-md12">
<label class="layui-form-label">生日</label>
<div class="layui-input-block">
<input id="birthday" name="birthday" placeholder="请输入生日" type="text" class="layui-input date-icon" autocomplete="off"/>
</div>
</div>
<div class="layui-inline layui-col-md6"> <div class="layui-inline layui-col-md6">
<label class="layui-form-label">密码<span style="color: red;">*</span></label> <label class="layui-form-label">密码<span style="color: red;">*</span></label>
<div class="layui-input-block"> <div class="layui-input-block">
@ -37,12 +25,6 @@
<input name="rePassword" placeholder="请输入重复密码" type="password" class="layui-input" autocomplete="new-password" lay-verify="required|repsw" required/> <input name="rePassword" placeholder="请输入重复密码" type="password" class="layui-input" autocomplete="new-password" lay-verify="required|repsw" required/>
</div> </div>
</div> </div>
<div class="layui-inline layui-col-md12">
<label class="layui-form-label">邮件<span style="color: red;">*</span></label>
<div class="layui-input-block">
<input name="email" placeholder="请输入邮箱" type="text" class="layui-input" lay-verify="required|email" autocomplete="off" required/>
</div>
</div>
<div class="layui-inline layui-col-md12"> <div class="layui-inline layui-col-md12">
<label class="layui-form-label">性别</label> <label class="layui-form-label">性别</label>
<div class="layui-input-block"> <div class="layui-input-block">
@ -50,10 +32,36 @@
<input type="radio" name="sex" value="F" title="女"/> <input type="radio" name="sex" value="F" title="女"/>
</div> </div>
</div> </div>
<div class="layui-inline layui-col-md12"> <div class="layui-inline layui-col-md6">
<label class="layui-form-label">电话</label> <label class="layui-form-label">名称<span style="color: red;">*</span></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input name="phone" placeholder="请输入电话" type="text" class="layui-input"/> <input name="realName" placeholder="请输入姓名" type="text" class="layui-input" lay-verify="required" required/>
</div>
</div>
<div class="layui-inline layui-col-md6">
<label class="layui-form-label">昵称</label>
<div class="layui-input-block">
<input name="nickName" placeholder="请输入昵称" type="text" class="layui-input" lay-verify="required" required/>
</div>
</div>
<div class="layui-inline layui-col-md12">
<label class="layui-form-label">生日<span style="color: red;">*</span></label>
<div class="layui-input-block">
<input id="birthday" name="birthday" placeholder="请输入生日" type="text" class="layui-input date-icon" autocomplete="off" lay-verify="required" required/>
</div>
</div>
<div class="layui-inline layui-col-md6">
<label class="layui-form-label">邮件<span style="color: red;">*</span></label>
<div class="layui-input-block">
<input name="email" placeholder="请输入邮箱" type="text" class="layui-input" lay-verify="required|email" autocomplete="off" required/>
</div>
</div>
<div class="layui-inline layui-col-md6">
<label class="layui-form-label">电话<span style="color: red;">*</span></label>
<div class="layui-input-block">
<input name="phone" placeholder="请输入电话" type="text" class="layui-input" lay-verify="required" required/>
</div> </div>
</div> </div>
</div> </div>
@ -63,19 +71,23 @@
<div class="layui-card-header">职务信息</div> <div class="layui-card-header">职务信息</div>
<div class="layui-card-body"> <div class="layui-card-body">
<div class="layui-form-item layui-row"> <div class="layui-form-item layui-row">
<div class="layui-inline layui-col-md12">
<label class="layui-form-label">部门<span style="color: red;">*</span></label>
<div class="layui-input-block">
<input id="deptId" name="deptId" type="hidden">
<input id="deptName" name="deptName" placeholder="请输入部门" type="text" class="layui-input" lay-verify="required" required autocomplete="off"/>
</div>
</div>
<div class="layui-inline layui-col-md12"> <div class="layui-inline layui-col-md12">
<label class="layui-form-label">机构<span style="color: red;">*</span></label> <label class="layui-form-label">机构<span style="color: red;">*</span></label>
<div class="layui-input-block"> <div class="layui-input-block">
<select name="position" xm-select="selPosition"> <div id="organization" class="ew-xmselect-tree"></div>
<option value="">请选择职位</option> </div>
</select> </div>
<!-- <div class="layui-inline layui-col-md12">-->
<!-- <label class="layui-form-label">机构<span style="color: red;">*</span></label>-->
<!-- <div class="layui-input-block">-->
<!-- <input id="deptId" name="deptId" type="hidden">-->
<!-- <input id="deptName" name="deptName" placeholder="请输入部门" type="text" class="layui-input" lay-verify="required" required autocomplete="off"/>-->
<!-- </div>-->
<!-- </div>-->
<div class="layui-inline layui-col-md12">
<label class="layui-form-label">职位<span style="color: red;">*</span></label>
<div class="layui-input-block">
<div id="position" class="xm-select-demo"></div>
</div> </div>
</div> </div>
</div> </div>

View File

@ -7,6 +7,15 @@
<div class="layui-card-body"> <div class="layui-card-body">
<div class="layui-form-item layui-row"> <div class="layui-form-item layui-row">
<input name="userId" id="userId" type="hidden"/> <input name="userId" id="userId" type="hidden"/>
<input name="account" id="account" type="hidden"/>
<div class="layui-inline layui-col-md12">
<label class="layui-form-label">性别</label>
<div class="layui-input-block">
<input type="radio" name="sex" value="M" title="男" checked/>
<input type="radio" name="sex" value="F" title="女"/>
</div>
</div>
<div class="layui-inline layui-col-md6"> <div class="layui-inline layui-col-md6">
<label class="layui-form-label">名称<span style="color: red;">*</span></label> <label class="layui-form-label">名称<span style="color: red;">*</span></label>
<div class="layui-input-block"> <div class="layui-input-block">
@ -20,28 +29,22 @@
</div> </div>
</div> </div>
<div class="layui-inline layui-col-md12"> <div class="layui-inline layui-col-md12">
<label class="layui-form-label">出生日期</label> <label class="layui-form-label">生日<span style="color: red;">*</span></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input id="birthday" name="birthday" placeholder="请输入生日" type="text" class="layui-input date-icon" autocomplete="off"/> <input id="birthday" name="birthday" placeholder="请输入生日" type="text" class="layui-input date-icon" autocomplete="off" lay-verify="required" required/>
</div> </div>
</div> </div>
<div class="layui-inline layui-col-md12">
<label class="layui-form-label">邮箱<span style="color: red;">*</span></label> <div class="layui-inline layui-col-md6">
<label class="layui-form-label">邮件<span style="color: red;">*</span></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input name="email" placeholder="请输入邮箱" type="text" class="layui-input" lay-verify="required|email" required /> <input name="email" placeholder="请输入邮箱" type="text" class="layui-input" lay-verify="required|email" autocomplete="off" required/>
</div> </div>
</div> </div>
<div class="layui-inline layui-col-md12"> <div class="layui-inline layui-col-md6">
<label class="layui-form-label">性别</label> <label class="layui-form-label">电话<span style="color: red;">*</span></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input type="radio" name="sex" value="M" title="男" checked/> <input name="phone" placeholder="请输入电话" type="text" class="layui-input" lay-verify="required" required/>
<input type="radio" name="sex" value="F" title="女"/>
</div>
</div>
<div class="layui-inline layui-col-md12">
<label class="layui-form-label">电话</label>
<div class="layui-input-block">
<input name="phone" placeholder="请输入电话" type="text" class="layui-input"/>
</div> </div>
</div> </div>
</div> </div>
@ -52,17 +55,23 @@
<div class="layui-card-body"> <div class="layui-card-body">
<div class="layui-form-item layui-row"> <div class="layui-form-item layui-row">
<div class="layui-inline layui-col-md12"> <div class="layui-inline layui-col-md12">
<label class="layui-form-label">部门<span style="color: red;">*</span></label> <label class="layui-form-label">机构<span style="color: red;">*</span></label>
<div class="layui-input-block"> <div class="layui-input-block">
<input id="deptId" name="deptId" type="hidden"> <div id="organization" class="ew-xmselect-tree"></div>
<input id="deptName" name="deptName" placeholder="请输入部门" type="text" class="layui-input" lay-verify="required" required autocomplete="off"/>
</div> </div>
</div> </div>
<!-- <div class="layui-inline layui-col-md12">-->
<!-- <label class="layui-form-label">机构<span style="color: red;">*</span></label>-->
<!-- <div class="layui-input-block">-->
<!-- <input id="deptId" name="deptId" type="hidden">-->
<!-- <input id="deptName" name="deptName" placeholder="请输入部门" type="text" class="layui-input" lay-verify="required" required autocomplete="off"/>-->
<!-- </div>-->
<!-- </div>-->
<div class="layui-inline layui-col-md12"> <div class="layui-inline layui-col-md12">
<label class="layui-form-label">职位<span style="color: red;">*</span></label> <label class="layui-form-label">职位<span style="color: red;">*</span></label>
<div id="demo1" class="xm-select-demo"></div>
<div class="layui-input-block"> <div class="layui-input-block">
<select name="position" id="position" xm-select="selPosition" lay-verify="required" required> <div id="position" class="xm-select-demo"></div>
</select>
</div> </div>
</div> </div>
</div> </div>

View File

@ -0,0 +1,26 @@
@layout("/layout/_form.html",{js:["/assets/modular/system/user/user_role.js"]}){
<form class="layui-form" id="userForm" lay-filter="userForm">
<div class="layui-fluid" style="padding-bottom: 75px;">
<div class="layui-card">
<div class="layui-card-body">
<div class="layui-form-item layui-row">
<div class="layui-inline layui-col-md12">
<label class="layui-form-label">选择角色<span style="color: red;">*</span></label>
<div id="demo1" class="xm-select-demo"></div>
<div class="layui-input-block">
<div id="role" class="xm-select-demo"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="form-group-bottom text-center">
<button class="layui-btn" lay-filter="btnSubmit" lay-submit>&emsp;提交&emsp;</button>
<button type="reset" class="layui-btn layui-btn-primary" ew-event="closeDialog">&emsp;取消&emsp;</button>
</div>
</form>
@}