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' }); }); }