<!DOCTYPE html>
|
<html xmlns="http://www.w3.org/1999/xhtml">
|
<head>
|
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
<title>权限查询</title>
|
<meta name="renderer" content="webkit">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
|
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
|
<link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
|
<link rel="stylesheet" href="../../../layuiadmin/style/admin.css" media="all">
|
<script src="../../../layuiadmin/layui/layui.js"></script>
|
<script src="../../../layuiadmin/treeTable.js"></script>
|
<script src="../../../layuiadmin/Scripts/json2.js"></script>
|
<script src="../../../layuiadmin/Scripts/jquery-1.4.1.js"></script>
|
<script src="../../../layuiadmin/Scripts/webConfig.js"></script>
|
<script src="../../../layuiadmin/layui/lay/modules/util.js"></script>
|
<style media="screen">
|
.custom-tree-item-clicked {
|
color: #FC9003
|
}
|
.layui-form-item .layui-inline {
|
margin-bottom: 5px;
|
margin-right: 0px;
|
}
|
</style>
|
</head>
|
<body>
|
<div class="layui-fluid">
|
<div class="layui-col-md12">
|
<div class="layui-card" style="padding: 1px">
|
<div class="layui-card-body" style="padding: 1px;">
|
<form class="layui-form" action="" lay-filter="component-form-group">
|
<div class="layui-card-header">
|
<div class="layui-btn-group">
|
|
<button type="button" id="add-btn" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Saver">授权</button>
|
<button type="button" class="layui-btn layui-btn-normal layui-btn-radius" lay-submit="" lay-filter="Exit">退出</button>
|
|
</div>
|
|
</div>
|
<div class="layui-collapse">
|
<div class="layui-colla-item">
|
<div class="layui-form-item" style="border-top: solid 1px #F6F6F6;">
|
|
<div class="layui-row" style="padding:10px 0">
|
<div class="layui-col-xs3 layui-inline">
|
<div id="treeUser" lay-filter="treeUser" class="demo-tree demo-tree-box" style=""></div>
|
</div>
|
|
<div class="layui-col-xs3 layui-inline">
|
<div class="layui-tab layui-tab-card" lay-filter="table">
|
<ul class="layui-tab-title">
|
<li class="layui-this">用户</li>
|
<li>角色</li>
|
</ul>
|
<div class="layui-tab-content" style="height: 700px;">
|
<div class="layui-tab-item layui-show">
|
<script type="text/html" id="toolbarDemoUser">
|
<div class="layui-btn-container">
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="get_Refresh"><i class="layui-icon layui-icon-refresh-3"></i>刷新</button>
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Search"><i class="layui-icon layui-icon-search"></i>查看权限</button>
|
</div>
|
</script>
|
<table class="" id="mainTableUser" lay-filter="mainTableUser"></table>
|
</div>
|
<div class="layui-tab-item layui-show">
|
<script type="text/html" id="toolbarDemoUserGroup">
|
<div class="layui-btn-container">
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="get_Refresh"><i class="layui-icon layui-icon-refresh-3"></i>刷新</button>
|
<button type="button" class="layui-btn layui-btn-sm" lay-event="btn-Search"><i class="layui-icon layui-icon-search"></i>查看详情</button>
|
</div>
|
</script>
|
<table class="" id="mainTableUserGroup" lay-filter="mainTableUserGroup"></table>
|
</div>
|
</div>
|
</div>
|
</div>
|
|
<div class="layui-col-xs6 layui-inline" >
|
<div >
|
<table class="" id="mainTable" lay-filter="mainTable" > </table>
|
</div>
|
</div>
|
|
|
</div>
|
</div>
|
</div>
|
</div>
|
</form>
|
</div>
|
</div>
|
</div>
|
</div>
|
|
<script src="../../../layuiadmin/layui/zgqlayui.js"></script>
|
<script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
|
<script src="../../../layuiadmin/PubCustom.js"></script>
|
<script>
|
//获取参数
|
var params = get_UrlVars();
|
if (typeof (params[params[0]]) == "undefined") {
|
var OperationType = 1;//操作类型
|
var TreeFlag = true;//操作类型
|
} else {
|
var OperationType = params[params[0]];//操作类型
|
var linterid = params[params[1]];//源单id
|
var HSouceBillType = params[params[2]];//源单类型
|
}
|
|
var treeCkData = { id: 0 };
|
var TagId = "";
|
var TagParentId = "";
|
|
layui.config({
|
base: '../../../layuiadmin/' //静态资源所在路径
|
}).extend({
|
index: 'lib/index', //主入口模块
|
}).use(['tree', 'index', 'form', 'table', 'element', 'laypage', 'laydate'], function () {
|
var $ = layui.$
|
, admin = layui.admin
|
, layer = layui.layer
|
, table = layui.table
|
, form = layui.form
|
, element = layui.element
|
, laypage = layui.laypage
|
, laydate = layui.laydate
|
, util = layui.util
|
, tree = layui.tree
|
var sGnbm = "";
|
var optionUser = [];
|
var optionUserGroup = [];
|
var tabIndex = 1; //判断页签
|
var HSouceBillType = "yh";//源单类型
|
if (TreeFlag == "false") {
|
//$(".layui-col-xs3").css("display", "none"); //隐藏树型
|
//$(".layui-col-xs9").css("width", "100%"); //设置宽度
|
}
|
else {
|
tree.render({
|
elem: '#treeUser',
|
data: getData(),
|
showCheckbox: false, //是否显示复选框
|
id: 'demoId',
|
isJump: false, //是否允许点击节点时弹出新窗口跳转
|
showLine: true,//是否开启连接线
|
onlyIconControl: true, //点击后不收缩
|
isopen: false, //加载完毕后的展开状态,默认值:true
|
accordion: false,
|
click: function (obj) {
|
//点击高光
|
if (obj.data.id !== treeCkData.id) {
|
$('div[data-id="' + obj.data.id + '"] span').eq(1).last().addClass("custom-tree-item-clicked");
|
$('div[data-id="' + treeCkData.id + '"] span').eq(1).last().removeClass('custom-tree-item-clicked');
|
treeCkData = obj.data;
|
TagId = obj.data.id;
|
TagParentId = obj.data.ParentID;
|
}
|
//else {
|
// $('div[data-id="' + treeCkData.id + '"] span').eq(1).last().removeClass('custom-tree-item-clicked');
|
// treeCkData = { id: 0 };
|
// TagId = "";
|
// TagParentId = "";
|
//}
|
|
sgnbm = obj.data.id;
|
get_Display(sgnbm);
|
}
|
});
|
}
|
|
set_InitGrid();
|
var option = {
|
id: 'mainTable'
|
,elem: '#mainTable'
|
//, toolbar: '#toolbarDemo'
|
, height: 'full-50'
|
, limit: Number.MAX_VALUE // 数据表格默认全部显示
|
, page: false
|
, cellMinWidth: 90
|
, cols: [[
|
{ type: 'checkbox', fixed: 'left', width: 60 }
|
, { field: 'hid', title: 'hid', sort: true, hide: true }
|
, { field: 'gnbm', title: 'gnbm', sort: true, hide: true }
|
, { field: 'AuthorityHID', title: 'AuthorityHID', edit: 'text', sort: true, hide: true }
|
, {
|
field: 'AuthorityID', title: '是否权限', templet: function (row) {
|
if (row.AuthorityID == 1) {
|
return "<span style='color:green;'>是</span>";
|
}
|
else {
|
return "否";
|
}
|
}
|
}
|
//, {
|
// field: 'AuthorityHID', title: '是否权限', templet: function (row) {
|
// var html = "<input type='checkbox' lay-skin='primary' lay-filter='checkboxIsSelected' table-index='" + row.LAY_TABLE_INDEX + "' class='checkboxIsSelected' value='" + row.AuthorityHID + "' ";
|
// if (row.AuthorityID == 1) {
|
// html += " checked ";
|
// }
|
// html += ">";
|
// return html;
|
// }}
|
, { field: 'gnms', title: '功能说明' }
|
]], done: function (res, page, count) {
|
|
//可以自行添加判断的条件是否选中
|
//这句才是真正选中,通过设置关键字LAY_CHECKED为true选中,这里只对第一行选中
|
for (var i = 0; i < res.data.length; i++) {
|
if (res.data[i].AuthorityID == 1) {
|
res.data[i]["LAY_CHECKED"] = 'true';
|
//下面三句是通过更改css来实现选中的效果
|
var index = res.data[i]['LAY_TABLE_INDEX'];
|
$(".layui-col-xs6").find('tr[data-index=' + index + '] input[type="checkbox"]').prop('checked', true);
|
$(".layui-col-xs6").find('tr[data-index=' + index + '] input[type="checkbox"]').next().addClass('layui-form-checked');
|
}
|
}
|
|
}
|
};
|
|
var index = layer.load(0, { shade: false });
|
//进入页面显示的缓存列表
|
|
get_DisplayUser();
|
|
/*get_Display(sGnbm);*/
|
|
//#region 头工具栏事件
|
table.on('toolbar(mainTableUser)', function (obj) {
|
switch (obj.event) {
|
//刷新
|
case 'get_Refresh': get_DisplayUser();
|
break;
|
//查找
|
case 'btn-Search': get_Display(TagId);
|
break;
|
};
|
});
|
table.on('toolbar(mainTableUserGroup)', function (obj) {
|
switch (obj.event) {
|
//刷新
|
case 'get_Refresh': get_DisplayUserGroup();
|
break;
|
//查询
|
case 'btn-Search': get_Display(TagId);
|
break;
|
};
|
});
|
//#endregion
|
|
//#region 用户与角色表
|
//初始化表格
|
function set_InitGrid() {
|
optionUser = {
|
elem: '#mainTableUser'
|
, toolbar: '#toolbarDemoUser'
|
, height: 'full-50'
|
, page: true
|
, cellMinWidth: 90
|
, limit: 50
|
, limits: [50, 500, 5000, 20000]
|
, cols: [[
|
{ type: 'checkbox', fixed: 'left' }
|
, { field: 'hmainid', title: '单据ID', hide: true }
|
, { field: '用户编码', title: '用户编码' }
|
, { field: '用户名称', title: '用户名称' }
|
, { field: '对应职员', title: '对应职员' }
|
, { field: '对应保管', title: '对应保管' }
|
, { field: '对应验收', title: '对应验收' }
|
, { field: '对应业务员', title: '对应业务员' }
|
, { field: '对应部门', title: '对应部门' }
|
, { field: '对应仓库', title: '对应仓库' }
|
, { field: '对应调入仓库', title: '对应调入仓库' }
|
, { field: '对应供应商', title: '对应供应商' }
|
, { field: '对应CLOUD账号', title: '对应CLOUD账号' }
|
, { field: '对应CLOUD组织', title: '对应CLOUD组织' }
|
|
]]
|
}
|
optionUserGroup = {
|
elem: '#mainTableUserGroup'
|
, toolbar: '#toolbarDemoUserGroup'
|
, height: 'full-50'
|
, page: true
|
, cellMinWidth: 90
|
, limit: 50
|
, limits: [50, 500, 5000, 20000]
|
, cols: [[
|
{ type: 'checkbox', fixed: 'left' }
|
, { field: 'HGroupID', title: 'HGroupID', sort: true, hide: true }
|
, { field: '角色', title: '角色' }
|
, { field: '级别', title: '级别' }
|
, { field: '说明', title: '说明' }
|
]]
|
};
|
}
|
|
//加载数据到网格
|
function get_DisplayUser() {
|
var sWhere = "";
|
var wait = layer.load();//遮罩
|
$.ajax({
|
url: GetWEBURL() + '/Xt_User/list',
|
type: "GET",
|
data: { "sWhere": sWhere, "user": sessionStorage["HUserName"] },
|
success: function (data1) {
|
if (data1.count == 1) {
|
optionUser.data = data1.data;
|
ins = table.render(optionUser);
|
layer.close(wait);
|
if ($("#Comparator").val() == 0 && $("#ColContent").val() == "") {
|
ColFilter();
|
}
|
} else {
|
layer.close(wait);
|
layer.alert(data1.code + data1.Message, { icon: 5 });
|
}
|
}, error: function () {
|
layer.close(wait);
|
layer.alert("接口请求失败!", { icon: 5 });
|
}
|
});
|
}
|
|
function get_DisplayUserGroup() {
|
var index = layer.load(0, { shade: false });
|
var sWhere = "";
|
//进入页面显示的缓存列表
|
$.ajax({
|
url: GetWEBURL() + '/Xt_UserGroup/list',
|
type: "GET",
|
data: { "sWhere": sWhere },
|
success: function (data1) {
|
if (data1.count == 1) {
|
optionUserGroup.data = data1.data;
|
ins = table.render(optionUserGroup);
|
layer.close(index);
|
if ($("#Comparator").val() == 0 && $("#ColContent").val() == "") {
|
ColFilter();
|
}
|
} else {
|
layer.close(index);
|
layer.alert(data1.code + data1.Message, { icon: 5 });
|
}
|
}, error: function () {
|
layer.close(index);
|
layer.alert("接口请求失败!", { icon: 5 });
|
}
|
});
|
}
|
//#endregion
|
|
//#region 监听Tab切换,切换时触发
|
element.on('tab(table)', function (data) {
|
// 获取被切换到的面板的索引
|
var index = data.index;
|
// 执行一些操作,例如改变页面内容
|
tabIndex = index + 1;
|
if (tabIndex === 1) {
|
HSouceBillType = "yh";
|
get_DisplayUser();
|
} else {
|
HSouceBillType = "js";
|
get_DisplayUserGroup();
|
}
|
|
});
|
//#endregion
|
|
//#region 点击行选中高亮
|
table.on('row(mainTableUser)', function (obj) {
|
//选中行改变颜色
|
var flag = !obj.tr.find(':checkbox:first').prop('checked');
|
obj.tr.find(':checkbox').prop('checked', flag);
|
if (flag) {
|
obj.tr.find('.layui-form-checkbox').addClass('layui-form-checked'); //设置复选框选中样式
|
$(".layui-tab").find(obj.tr.selector).attr({ "style": "background:#ceedfa;color:black" });//改变当前tr背景颜色和字体颜色
|
} else {
|
obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//取消复选框选中样式
|
$(".layui-tab").find(obj.tr.selector).attr({ "style": "background:" });//取消当前tr颜色
|
}
|
/*mainTable 为表格ID 注意此处如果ID不正确将导致你在监听复选框时获取不到你选择的数据,前面的只是添加或删除选中未选中样式以及设置背景色,字体颜色*/
|
layui.each(table.cache.mainTableUser, function (i, l) {
|
if (obj.tr.index() == l.LAY_TABLE_INDEX) {
|
l.LAY_CHECKED = flag;
|
}
|
});
|
})
|
table.on('row(mainTableUserGroup)', function (obj) {
|
//选中行改变颜色
|
var flag = !obj.tr.find(':checkbox:first').prop('checked');
|
obj.tr.find(':checkbox').prop('checked', flag);
|
if (flag) {
|
obj.tr.find('.layui-form-checkbox').addClass('layui-form-checked'); //设置复选框选中样式
|
$(".layui-tab").find(obj.tr.selector).attr({ "style": "background:#ceedfa;color:black" });//改变当前tr背景颜色和字体颜色
|
} else {
|
obj.tr.find('.layui-form-checkbox').removeClass('layui-form-checked');//取消复选框选中样式
|
$(".layui-tab").find(obj.tr.selector).attr({ "style": "background:" });//取消当前tr颜色
|
}
|
/*mainTable 为表格ID 注意此处如果ID不正确将导致你在监听复选框时获取不到你选择的数据,前面的只是添加或删除选中未选中样式以及设置背景色,字体颜色*/
|
layui.each(table.cache.mainTableUserGroup, function (i, l) {
|
if (obj.tr.index() == l.LAY_TABLE_INDEX) {
|
l.LAY_CHECKED = flag;
|
}
|
});
|
})
|
//#endregion
|
|
//退出
|
form.on('submit(Exit)', function (data) {
|
if (OperationType == 1) {
|
//关闭页签
|
Pub_Close(2);
|
}
|
else {
|
//关闭页签
|
Pub_Close(1);
|
}
|
});
|
|
//监听选中数据
|
table.on('checkbox(mainTable)', function (obj) {
|
//console.log(obj.checked); //当前是否选中状态
|
//console.log(obj.data); //选中行的相关数据
|
//console.log(obj.type); //如果触发的是全选,则为:all,如果触发的是单选,则为:one
|
if (obj.type == 'one') {
|
if (obj.checked) {
|
//同步更新表格和缓存对应的值
|
obj.update({
|
AuthorityHID: 1,
|
});
|
}
|
else {
|
//同步更新表格和缓存对应的值
|
obj.update({
|
AuthorityHID: 0,
|
});
|
}
|
}
|
else {
|
if (obj.checked) {
|
//同步更新表格和缓存对应的值
|
var tableBak = table.cache["mainTable"]; //获取表格数据
|
buttonArr = [];//清空数组
|
for (var i = 0; i < tableBak.length; i++) {
|
tableBak[i].AuthorityHID = 1;
|
buttonArr.push(tableBak[i]); //将之前的数据存储
|
}
|
//table.reload("mainTable", {
|
// data: buttonArr //将数据重新载入表格
|
//})
|
}
|
else {
|
//同步更新表格和缓存对应的值
|
var tableBak = table.cache["mainTable"]; //获取表格数据
|
buttonArr = [];//清空数组
|
for (var i = 0; i < tableBak.length; i++) {
|
tableBak[i].AuthorityHID = 0;
|
buttonArr.push(tableBak[i]); //将之前的数据存储
|
}
|
//table.reload("mainTable", {
|
// data: buttonArr //将数据重新载入表格
|
//})
|
|
|
}
|
}
|
|
});
|
|
//保存
|
form.on('submit(Saver)', function (data) {
|
if (TagId == "" || TagId == null) {
|
layer.alert("左侧点击树型数据已失效!", { icon: 5 });
|
return false;
|
}
|
if (tabIndex === 1) {
|
var checkStatus = table.checkStatus('mainTableUser')
|
, data = checkStatus.data;
|
if (checkStatus.data.length === 1) {
|
var linterid = data[0].用户编码.toString();
|
|
} else {
|
layer.msg('请选择一位用户!');
|
return false;
|
}
|
} else {
|
var checkStatus = table.checkStatus('mainTableUserGroup')
|
, data = checkStatus.data;
|
if (checkStatus.data.length === 1) {
|
var linterid = data[0].HGroupID;
|
|
} else {
|
layer.msg('请选择一位角色!');
|
return false;
|
}
|
}
|
var sSubStr = JSON.stringify(table.cache['mainTable']);
|
var sMainSub = TagId + ';' + sSubStr + ';' + linterid + ";" + HSouceBillType;
|
//console.log(sMainSub);
|
//return false;
|
$.ajax(
|
{
|
type: "POST",
|
url: GetWEBURL() + "/Gy_MaintenanceMode/SaverPower", //方法所在页面和方法名
|
async: true,
|
data: { "msg": sMainSub },
|
dataType: "json",
|
success: function (data) {
|
if (data.count == 1) { // 说明验证成功了,
|
layer.msg(data.Message, { time: 1 * 1000, icon: 1 }, function () {
|
//$('#add-btn').addClass("layui-btn-disabled").attr("disabled", true);
|
get_Display(sGnbm);
|
});
|
}
|
else {
|
layer.alert(data.Message);
|
}
|
layer.closeAll("loading");
|
},
|
error: function (err) {
|
layer.alert("错误:" + err);
|
}
|
});
|
|
|
|
});
|
|
//加载数据表格
|
function get_Display(sGnbm) {
|
if (tabIndex === 1) {
|
var checkStatus = table.checkStatus('mainTableUser')
|
, data = checkStatus.data;
|
if (checkStatus.data.length === 1) {
|
var linterid = data[0].用户编码.toString();
|
$.ajax({
|
url: GetWEBURL() + '/PublicPageMethod/PowerList',
|
type: "GET",
|
data: { "czybm": linterid, "sGnbm": sGnbm, "HSouceBillType": HSouceBillType },
|
success: function (data1) {
|
if (data1.count == 1) {
|
option.data = data1.data;
|
table.render(option);
|
layer.close(index);
|
}
|
}, error: function () {
|
layer.close(index);
|
layer.alert("接口请求失败!", { icon: 5 });
|
}
|
});
|
} else {
|
layer.msg('请选择一位用户!');
|
}
|
} else if (tabIndex == 2) {
|
var checkStatus = table.checkStatus('mainTableUserGroup')
|
, data = checkStatus.data;
|
if (checkStatus.data.length === 1) {
|
var linterid = data[0].HGroupID;
|
$.ajax({
|
url: GetWEBURL() + '/PublicPageMethod/PowerList',
|
type: "GET",
|
data: { "czybm": linterid, "sGnbm": sGnbm, "HSouceBillType": HSouceBillType },
|
success: function (data1) {
|
if (data1.count == 1) {
|
option.data = data1.data;
|
table.render(option);
|
layer.close(index);
|
}
|
}, error: function () {
|
layer.close(index);
|
layer.alert("接口请求失败!", { icon: 5 });
|
}
|
});
|
} else {
|
layer.msg('请选择一位角色!');
|
}
|
}
|
}
|
//以上是layui模块
|
});
|
|
//查询树状数据
|
function getData() {
|
var treeData;
|
|
$.ajax({
|
url: GetWEBURL() + '/Gy_MaintenanceMode/PowerLoadTree',
|
type: "GET",
|
//data: { "sWhere": sWhere },
|
async: false,
|
success: function (result) {
|
var data = result.data;
|
//生成数据对象集合
|
treeData = LoadTree(data);
|
|
}
|
});
|
return treeData;
|
}
|
/**处理树形展示数据,要求有ID和ParentID、title字段**/
|
function LoadTree(data) {
|
let map = {};
|
let treeData = [];
|
data.forEach(it => {
|
map[it.id.toUpperCase()] = it; //ID为每个节点的id
|
})
|
//生成结果集
|
data.forEach(it => {
|
const parent = map[it.ParentID.toUpperCase()]; //ParentID为父节点的id
|
if (parent) {
|
if (!Array.isArray(parent.children)) parent.children = [];
|
parent.children.push(it);
|
} else {
|
treeData.push(it)
|
}
|
})
|
return treeData;
|
}
|
|
</script>
|
|
</body>
|
</html>
|