var from, tree, layer, util;
layui.use(['element', 'layer', 'table', 'form', 'tree'], function () {
form = layui.form
, layer = layui.layer
, util = layui.util
, tree = layui.tree;
var element = layui.element
, table = layui.table;
table.render({
elem: '#grouplist'
, id: 'uReload'
, height: 'full-220'
, method: 'post'
, url: '/authorize/getGroup' //数据接口
, page: true //开启分页
, limits: [15, 50, 100]
, limit: 15
, cols: [[ //表头
{ field: 'ids', title: '#', width: 50, type: 'numbers', fixed: 'left' }
, { field: 'id', title: 'ID', width: 60 }
, { field: 'title', edit: 'text', title: '角色名', width: 200 }
, { field: 'status', title: '状态', width: 110, templet: "
{{ status(d.status,d.id)}}
" }
, { field: 'operation', title: '操作', width: 323, templet: "{{ operation(d.id,d.title)}}
" }
]]
});
var $ = layui.$, active = {
reload: function () {
var title = $('#title');
//执行重载
table.reload('uReload', {
page: {
curr: 1 //重新从第 1 页开始
}
, where: {
title: title.val(),
}
});
},
addGroup: function () {
var title = $('#title').val();
if (title == '') {
layer.msg('请输入角色名称', { time: 2000 });
} else {
var e = layer.load(2, { shade: [0.2, '#2F4056'] });
$.post("/authorize/saveGroup/", { title: title }, function (msg) {
layer.close(e);
layer.msg(msg.msg, { time: 1000 });
if (msg.code == 0) {
//执行重载
table.reload('uReload', {
page: {
curr: 1 //重新从第 1 页开始
}
});
}
});
}
}
};
$('.groupTable .layui-btn').on('click', function () {
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
//监听单元格编辑
table.on('edit(group)', function (obj) {
var e = layer.load(2, { shade: [0.2, '#2F4056'] });
var value = obj.value //得到修改后的值
, data = obj.data //得到所在行所有键值
, field = obj.field; //得到字段
$.post("/authorize/updateGroup", { id: data.id, field: field, value: value }, function (msg) {
layer.close(e);
layer.msg(msg, { time: 1000 });
});
});
//监听账户状态操作
form.on('checkbox(lockstatus)', function (obj) {
var e = layer.load(2, { shade: [0.2, '#2F4056'] });
if (obj.elem.checked == false) {
value = 0;
} else {
value = 1;
}
$.post("/authorize/updateGroup", { id: this.value, field: 'status', value: value }, function (msg) {
layer.close(e);
layer.msg(msg, { time: 1000 });
});
});
table.on('tool(group)', function (obj) { //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
if (layEvent === 'del') { //删除
layer.confirm('确认删除该角色【' + obj.data.title + '】?', function (index) {
//向服务端发送删除指令
$.post("/authorize/delGroup/", { id: obj.data.id }, function (data) {
layer.close(index);
if (data.code === 0) {
obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
}
layer.msg(data.msg, { time: 2000 });
});
});
}
});
});
//传入URL前缀及字段值
function status(vals, id) {
if (id === 1) {
result = '';
} else {
if (vals === 0) {
result = '';
} else if (vals === 1) {
result = '';
} else {
result = vals;
}
}
return result;
}
//传入URL前缀及字段值
function operation(id, title) {
var result_mod = ' 角色成员 角色权限';
var result_del = ' 删除角色';
if (id == 1) {
return result_mod;
} else {
return result_mod + result_del;
}
}
function userMenu(id, title) {
$('#userMenu').html("");
var index = layer.open({
type: 1
, title: '编辑权限-' + title
, area: ['360px', '600px']
, content: '
' //这里content是一个普通的String
, btn: ['提交', '关闭']
, yes: function () {
layer.close(index);
var e = layer.load(2, { shade: [0.2, '#2F4056'] });
var ruless = '';
var checkedData = tree.getChecked('userMenu'); //获取选中节点的数据
if (checkedData != '') {
ruless = checkedData[0]['id'] + ','; //获取根节点id
checkedData = checkedData[0]["children"];
//获取第一节节点ID
var dataLength = checkedData.length;
for (let index = 0; index < dataLength; index++) {
ruless += checkedData[index]['id'] + ',';
var temp = checkedData[index]['children'].length
//判断是否有第二节节点
if (temp > 0) {
//获取第二节节点ID
for (let i = 0; i < temp; i++) {
ruless += checkedData[index]['children'][i]['id'] + ',';
}
}
}
ruless = ruless.substr(0, ruless.length - 1);
}
$.post("/authorize/updateGroup", { id: id, field: 'rules', value: ruless }, function (msg) {
layer.close(e);
layer.msg(msg, { time: 1000 });
});
}
, btn2: function () {
layer.close(index);
}
});
var e = layer.load(2, { shade: [0.2, '#2F4056'] });
//data数据中仅需要末节点设置选中状态,其它节点无需设置,否则出错
$.post('/authorize/getUserRules', { id, id }, function (data) {
layer.close(e);
tree.render({
elem: '#userMenu'
, data: data
, showCheckbox: true //是否显示复选框
, id: 'userMenu'
});
});
}
function groupUser(id, title) {
$('#groupUser').html("");
var index = layer.open({
type: 1
, title: '编辑成员-' + title
, area: ['360px', '600px']
, content: '
' //这里content是一个普通的String
, btn: ['提交', '关闭']
, yes: function () {
layer.close(index);
var e = layer.load(2, { shade: [0.2, '#2F4056'] });
var users = '';
var checkedData = tree.getChecked('groupUser'); //获取选中节点的数据
if (checkedData != '') {
checkedData = checkedData[0]["children"]; //取出子节点
var dataLength = checkedData.length;
for (let index = 0; index < dataLength; index++) {
users += checkedData[index]['id'] + ',';
}
users = users.substr(0, users.length - 1);
}
$.post("/authorize/updateGroupUser/", { id: id, users: users }, function (msg) {
layer.close(e);
layer.msg(msg.msg, { time: 1000 });
});
}
, btn2: function () {
layer.close(index);
}
});
//读取接口数据并渲染tree
var e = layer.load(2, { shade: [0.2, '#2F4056'] });
//data数据中仅需要末节点设置选中状态,其它节点无需设置,否则出错
$.post('/authorize/getUserGroup', { id: id }, function (data) {
layer.close(e);
tree.render({
elem: '#groupUser'
, data: data
, showCheckbox: true //是否显示复选框
, id: 'groupUser'
});
});
}