319 lines
9.1 KiB
HTML
319 lines
9.1 KiB
HTML
|
|
{extend name="public:base" /}
|
|
{block name="css"}<link rel="stylesheet" href="/static/admin/tree/css/treeTable.css">{/block}
|
|
{block name="body"}
|
|
|
|
|
|
<body class="layui-hide">
|
|
|
|
<div class="page-wrapper">
|
|
|
|
<div class="demo-side">
|
|
<table id="LAY-user-auth-rule"></table>
|
|
</div>
|
|
</div>
|
|
|
|
<!-- 表格操作列 -->
|
|
<script type="text/html" id="tbBar">
|
|
<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="del">删除</a-->
|
|
{{# if(d.id == '1' | d.id == '2' | d.id == '9' | d.id == '10' ){ }}<a class="layui-btn layui-btn-disabled layui-btn-xs">删除</a>
|
|
{{# } else { }}
|
|
{if condition="checkRuleButton('admin/authrule/delete')"}<a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
|
|
{else /}<a class="layui-btn layui-btn-danger layui-btn-xs layui-btn-disabled">删除</a>{/if}
|
|
{{# } }}
|
|
</script>
|
|
|
|
{/block}
|
|
|
|
{block name="js"}
|
|
<script>
|
|
layui.config({
|
|
base: '/static/admin/modules/'
|
|
}).use(['layer', 'util', 'treeTable'], function () {
|
|
var $ = layui.jquery;
|
|
var layer = layui.layer;
|
|
var util = layui.util;
|
|
var treeTable = layui.treeTable;
|
|
$('body').removeClass('layui-hide');
|
|
|
|
// 渲染表格
|
|
var insTb = treeTable.render({
|
|
elem: '#LAY-user-auth-rule',
|
|
url: "{:url('AuthRule/index')}",
|
|
toolbar: 'default',
|
|
//height: 'full-200',
|
|
tree: {
|
|
iconIndex: 2,
|
|
isPidData: true,
|
|
idName: 'id',
|
|
pidName: 'pid'
|
|
},
|
|
defaultToolbar: ['filter', 'print', 'exports'],
|
|
cols: [
|
|
[
|
|
{type: 'numbers'},
|
|
{type: 'checkbox'},
|
|
{field: 'title', title: '菜单名称', minWidth: 165},
|
|
{field: 'url', title: '菜单地址', rowspan: 2},
|
|
{
|
|
title: '菜单图标', align: 'center',
|
|
templet: '<p><i class="layui-icon {{d.icon}}"></i></p>'
|
|
},
|
|
{field: 'authority', title: '权限标识'},
|
|
{field: 'isMenu', title: '类型', templet: type, align: 'center', width: 60},
|
|
//{title: '类型', templet: '<p>{{d.isMenu ? "菜单" : "按钮"}}</p>', align: 'center', width: 60},
|
|
{field: 'sort', title: '排序', align: 'center', width: 60},
|
|
{field: 'ctime',title: '创建时间'},
|
|
{align: 'center', toolbar: '#tbBar', title: '操作', width: 120}
|
|
]
|
|
],
|
|
style: 'margin-top:0;'
|
|
});
|
|
|
|
//自定义“状态”列
|
|
function type(data) {
|
|
var isMenu = data.isMenu;
|
|
var btns = "";
|
|
if (isMenu == -1) {
|
|
return "目录";
|
|
}
|
|
if (isMenu == 1) {
|
|
btns += '<span class="layui-btn layui-btn-sm">菜单</span>';
|
|
//return "菜单";
|
|
}
|
|
if (isMenu == 0) {
|
|
btns += '<span class="layui-btn layui-btn-normal layui-btn-sm">按钮</span>';
|
|
//return "按钮";
|
|
}
|
|
return btns;
|
|
}
|
|
|
|
|
|
// 工具列点击事件
|
|
treeTable.on('tool(LAY-user-auth-rule)', function (obj) {
|
|
var event = obj.event;
|
|
var data = obj.data;
|
|
if (event === 'del') {
|
|
|
|
layer.prompt({
|
|
formType: 1
|
|
,title: '敏感操作,请验证口令'
|
|
}, function(value, index){
|
|
layer.close(index);
|
|
layer.confirm('确定删除此权限?', function(index){
|
|
$.ajax({
|
|
type:'post',
|
|
url:"{:url('AuthRule/delete')}",
|
|
data:{id:data.id},
|
|
dataType:'json',
|
|
success:function(data){
|
|
if(data.code == 0){
|
|
layer.msg(data.msg,{
|
|
icon:6,
|
|
time:2000
|
|
},function(){
|
|
location.reload();
|
|
});
|
|
} else {
|
|
layer.open({
|
|
title:'删除失败',
|
|
content:data.msg,
|
|
icon:5,
|
|
adim:6
|
|
})
|
|
}
|
|
}
|
|
});
|
|
layer.close(index);
|
|
});
|
|
});
|
|
|
|
} else if (event === 'edit') {
|
|
|
|
layer.open({
|
|
type: 2
|
|
,title: '编辑权限'
|
|
,content: "{:url('AuthRule/edit')}" +'?id='+ data.id
|
|
,area: ['420px', '550px']
|
|
,btn: ['确定', '取消']
|
|
,yes: function(index, layero){
|
|
var iframeWindow = window['layui-layer-iframe'+ index]
|
|
,submitID = 'LAY-user-rule-submit'
|
|
,submit = layero.find('iframe').contents().find('#'+ submitID);
|
|
|
|
//监听提交
|
|
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
|
|
var field = data.field; //获取提交的字段
|
|
|
|
//提交 Ajax 成功后,静态更新表格中的数据
|
|
$.ajax({
|
|
type:"post",
|
|
url:"{:url('AuthRule/edit')}",
|
|
data:{"id":field.id,"pid":field.pid,"title":field.title,"name":field.name,"icon":field.icon,"sort":field.sort,"ishidden":field.ishidden},
|
|
daType:"json",
|
|
success:function (res){
|
|
if (res.code == 0) {
|
|
layer.msg(res.msg,{
|
|
icon:6,
|
|
time:2000
|
|
}, function(){
|
|
location.reload();
|
|
});
|
|
} else {
|
|
layer.open({
|
|
tiele:'修改失败',
|
|
content:res.msg,
|
|
icon:5,
|
|
anim:6
|
|
});
|
|
}
|
|
}
|
|
});
|
|
|
|
//treeTable.reload('LAY-user-auth-rule'); //数据刷新
|
|
layer.close(index); //关闭弹层
|
|
});
|
|
|
|
submit.trigger('click');
|
|
}
|
|
,success: function(layero, index){
|
|
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
// 头部工具栏点击事件
|
|
treeTable.on('toolbar(LAY-user-auth-rule)', function (obj) {
|
|
switch (obj.event) {
|
|
case 'add':
|
|
layer.msg('添加');
|
|
layer.open({
|
|
type: 2
|
|
,title: '添加权限'
|
|
,content: 'add.html'
|
|
,area: ['420px', '550px']
|
|
,btn: ['确定', '取消']
|
|
,yes: function(index, layero){
|
|
var iframeWindow = window['layui-layer-iframe'+ index]
|
|
,submitID = 'LAY-user-rule-submit'
|
|
,submit = layero.find('iframe').contents().find('#'+ submitID);
|
|
|
|
//监听提交
|
|
iframeWindow.layui.form.on('submit('+ submitID +')', function(data){
|
|
var field = data.field; //获取提交的字段
|
|
|
|
//提交 Ajax 成功后,静态更新表格中的数据
|
|
$.ajax({
|
|
type:"post",
|
|
url:"{:url('AuthRule/add')}",
|
|
data:{"pid":field.pid,"title":field.title,"name":field.name,"icon":field.icon,"sort":field.sort,"ishidden":field.ishidden},
|
|
daType:"json",
|
|
success:function (data){
|
|
if (data.code == 0) {
|
|
layer.msg(data.msg,{
|
|
icon:6,
|
|
time:2000
|
|
}, function(){
|
|
location.reload();
|
|
});
|
|
} else {
|
|
layer.open({
|
|
title:'添加失败',
|
|
content:data.msg,
|
|
icon:5,
|
|
anim:6
|
|
});
|
|
}
|
|
}
|
|
});
|
|
treeTable.reload('LAY-user-auth-rule'); //数据刷新
|
|
layer.close(index); //关闭弹层
|
|
});
|
|
|
|
submit.trigger('click');
|
|
}
|
|
});
|
|
|
|
break;
|
|
case 'delete':
|
|
layer.msg('删除');
|
|
break;
|
|
case 'update':
|
|
layer.msg('编辑');
|
|
break;
|
|
case 'LAYTABLE_TIPS':
|
|
layer.msg('提示');
|
|
break;
|
|
}
|
|
});
|
|
|
|
// 全部展开
|
|
$('#btnExpandAll').click(function () {
|
|
insTb.expandAll();
|
|
});
|
|
|
|
// 全部折叠
|
|
$('#btnFoldAll').click(function () {
|
|
insTb.foldAll();
|
|
});
|
|
|
|
// 展开指定
|
|
$('#btnExpand').click(function () {
|
|
insTb.expand(2);
|
|
});
|
|
|
|
// 折叠指定
|
|
$('#btnFold').click(function () {
|
|
insTb.fold(2);
|
|
});
|
|
|
|
// 设置选中
|
|
$('#btnChecked').click(function () {
|
|
insTb.expand(4);
|
|
insTb.setChecked([4]);
|
|
});
|
|
|
|
// 搜索
|
|
$('#btnSearch').click(function () {
|
|
var keywords = $('#edtSearch').val();
|
|
if (keywords) {
|
|
insTb.filterData(keywords);
|
|
} else {
|
|
insTb.clearFilter();
|
|
}
|
|
});
|
|
|
|
// 清除搜索
|
|
$('#btnClearSearch').click(function () {
|
|
insTb.clearFilter();
|
|
});
|
|
|
|
// 重载
|
|
$('#btnReload').click(function () {
|
|
insTb.reload();
|
|
});
|
|
$('#btnRefresh').click(function () {
|
|
insTb.refresh();
|
|
});
|
|
|
|
// 获取选中
|
|
$('#btnGetChecked').click(function () {
|
|
layer.alert('<pre>' + JSON.stringify(insTb.checkStatus().map(function (d) {
|
|
return {
|
|
authorityName: d.authorityName,
|
|
authorityId: d.authorityId,
|
|
LAY_INDETERMINATE: d.LAY_INDETERMINATE
|
|
};
|
|
}), null, 3) + '</pre>');
|
|
});
|
|
|
|
// 演示侧边栏
|
|
$('#btnToggleSide').click(function () {
|
|
$('.demo-side').toggleClass('show');
|
|
});
|
|
|
|
});
|
|
</script>
|
|
{/block} |