272 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			HTML
		
	
	
		
		
			
		
	
	
			272 lines
		
	
	
		
			11 KiB
		
	
	
	
		
			HTML
		
	
	
| 
								 | 
							
								{layout name="layout1" /}
							 | 
						|||
| 
								 | 
							
								<style>
							 | 
						|||
| 
								 | 
							
								    .layui-table-cell {
							 | 
						|||
| 
								 | 
							
								        height: auto;
							 | 
						|||
| 
								 | 
							
								    }
							 | 
						|||
| 
								 | 
							
								</style>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<div class="wrapper">
							 | 
						|||
| 
								 | 
							
								    <div class="layui-card">
							 | 
						|||
| 
								 | 
							
								        <div class="layui-card-body">
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            <div class="layui-form layui-card-header layuiadmin-card-header-auto">
							 | 
						|||
| 
								 | 
							
								                <div class="layui-form-item">
							 | 
						|||
| 
								 | 
							
								                    <div class="layui-btn-container" style="display: inline-block;">
							 | 
						|||
| 
								 | 
							
								                        <div class="layui-btn-group">
							 | 
						|||
| 
								 | 
							
								                            <button class="layui-btn  {$view_theme_color}" id="add">
							 | 
						|||
| 
								 | 
							
								                                添加
							 | 
						|||
| 
								 | 
							
								                            </button>
							 | 
						|||
| 
								 | 
							
								                            <button class="layui-btn  {$view_theme_color}" id="expand-all">全部展开
							 | 
						|||
| 
								 | 
							
								                            </button>
							 | 
						|||
| 
								 | 
							
								                            <button class="layui-btn   {$view_theme_color}" id="fold-all">全部折叠
							 | 
						|||
| 
								 | 
							
								                            </button>
							 | 
						|||
| 
								 | 
							
								                        </div>
							 | 
						|||
| 
								 | 
							
								                    </div>
							 | 
						|||
| 
								 | 
							
								                </div>
							 | 
						|||
| 
								 | 
							
								            </div>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            <table id="menu-lists" class="layui-table" lay-filter="menu-lists"></table>
							 | 
						|||
| 
								 | 
							
								            <script type="text/html" id="icon">
							 | 
						|||
| 
								 | 
							
								                <i class="layui-icon {{d.icon}}"></i>
							 | 
						|||
| 
								 | 
							
								            </script>
							 | 
						|||
| 
								 | 
							
								            <script type="text/html" id="operation">
							 | 
						|||
| 
								 | 
							
								                {{#  if(d.system == 0){ }}
							 | 
						|||
| 
								 | 
							
								                <a class="edit layui-btn layui-btn-normal layui-btn-xs" lay-event="edit"><i
							 | 
						|||
| 
								 | 
							
								                        class="layui-icon layui-icon-edit"></i>修改
							 | 
						|||
| 
								 | 
							
								                </a>
							 | 
						|||
| 
								 | 
							
								                <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i
							 | 
						|||
| 
								 | 
							
								                        class="layui-icon layui-icon-delete"></i>删除
							 | 
						|||
| 
								 | 
							
								                </a>
							 | 
						|||
| 
								 | 
							
								                {{#  } }}
							 | 
						|||
| 
								 | 
							
								                {{#  if(d.system == 1){ }}
							 | 
						|||
| 
								 | 
							
								                <a class="edit layui-btn layui-btn-disabled layui-btn-xs" lay-event=""><i
							 | 
						|||
| 
								 | 
							
								                        class="layui-icon layui-icon-edit"></i>修改
							 | 
						|||
| 
								 | 
							
								                </a>
							 | 
						|||
| 
								 | 
							
								                <a class="layui-btn layui-btn-disabled layui-btn-xs" lay-event=""><i
							 | 
						|||
| 
								 | 
							
								                        class="layui-icon layui-icon-delete"></i>删除
							 | 
						|||
| 
								 | 
							
								                </a>
							 | 
						|||
| 
								 | 
							
								                {{#  } }}
							 | 
						|||
| 
								 | 
							
								            </script>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            <!-- 表格状态列 -->
							 | 
						|||
| 
								 | 
							
								            <script type="text/html" id="disable">
							 | 
						|||
| 
								 | 
							
								                {{#  if(d.system == 0 && d.type == 1){ }}
							 | 
						|||
| 
								 | 
							
								                <input type="checkbox" lay-filter="switch-disable" data-id={{d.id}} lay-skin="switch"
							 | 
						|||
| 
								 | 
							
								                       lay-text="菜单显示|菜单隐藏" {{# if(d.disable==0){ }} checked {{# } }}/>
							 | 
						|||
| 
								 | 
							
								                {{#  } }}
							 | 
						|||
| 
								 | 
							
								                {{#  if(d.system == 1 && d.type == 1){ }}
							 | 
						|||
| 
								 | 
							
								                <input type="checkbox" lay-filter="switch-disable" data-id={{d.id}} lay-skin="switch"
							 | 
						|||
| 
								 | 
							
								                       lay-text="权限显示|权限隐藏" disabled checked />
							 | 
						|||
| 
								 | 
							
								                {{#  } }}
							 | 
						|||
| 
								 | 
							
								                {{#  if(d.system == 0 && d.type == 2){ }}
							 | 
						|||
| 
								 | 
							
								                <input type="checkbox" lay-filter="switch-disable" data-id={{d.id}} lay-skin="switch"
							 | 
						|||
| 
								 | 
							
								                       lay-text="权限启用|权限禁用" {{# if(d.disable==0){ }} checked {{# } }}/>
							 | 
						|||
| 
								 | 
							
								                {{#  } }}
							 | 
						|||
| 
								 | 
							
								                {{#  if(d.system == 1 && d.type == 2){ }}
							 | 
						|||
| 
								 | 
							
								                <input type="checkbox" lay-filter="switch-disable" data-id={{d.id}} lay-skin="switch"
							 | 
						|||
| 
								 | 
							
								                       lay-text="权限启用|权限禁用" disabled checked />
							 | 
						|||
| 
								 | 
							
								                {{#  } }}
							 | 
						|||
| 
								 | 
							
								            </script>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            <div class="page-loading">
							 | 
						|||
| 
								 | 
							
								                <div class="ball-loader sm">
							 | 
						|||
| 
								 | 
							
								                    <span></span>
							 | 
						|||
| 
								 | 
							
								                    <span></span>
							 | 
						|||
| 
								 | 
							
								                    <span></span>
							 | 
						|||
| 
								 | 
							
								                    <span></span>
							 | 
						|||
| 
								 | 
							
								                </div>
							 | 
						|||
| 
								 | 
							
								            </div>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        </div>
							 | 
						|||
| 
								 | 
							
								    </div>
							 | 
						|||
| 
								 | 
							
								</div>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								<script>
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								    layui.config({
							 | 
						|||
| 
								 | 
							
								        version:"{$front_version}",
							 | 
						|||
| 
								 | 
							
								        base: '/static/lib/'
							 | 
						|||
| 
								 | 
							
								    }).extend({
							 | 
						|||
| 
								 | 
							
								        treeTable: 'treetable/treeTable'
							 | 
						|||
| 
								 | 
							
								    }).use(['form', 'table', 'treeTable'], function () {
							 | 
						|||
| 
								 | 
							
								        var form = layui.form
							 | 
						|||
| 
								 | 
							
								        ,treeTable = layui.treeTable;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        // 渲染表格
							 | 
						|||
| 
								 | 
							
								        var insTb = treeTable.render({
							 | 
						|||
| 
								 | 
							
								            elem: '#menu-lists',
							 | 
						|||
| 
								 | 
							
								            tree: {
							 | 
						|||
| 
								 | 
							
								                iconIndex:0,
							 | 
						|||
| 
								 | 
							
								                childName:'sub',
							 | 
						|||
| 
								 | 
							
								                treeColIndex:3,
							 | 
						|||
| 
								 | 
							
								                getIcon: function (d) {
							 | 
						|||
| 
								 | 
							
								                    return '<i class="ew-tree-icon layui-icon layui-icon-spread-left "></i>';
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            },
							 | 
						|||
| 
								 | 
							
								            cols: [
							 | 
						|||
| 
								 | 
							
								                {field: 'name', title: '名称',width: 280},
							 | 
						|||
| 
								 | 
							
								                {field: 'type_str', title: '类型',width: 70},
							 | 
						|||
| 
								 | 
							
								                {field: '#icon', title: '图标', width: 80,toolbar: '#icon'},
							 | 
						|||
| 
								 | 
							
								                {field: 'uri', title: '规则',width: 200},
							 | 
						|||
| 
								 | 
							
								                {field: 'sort', title: '排序', width: 80,event: 'tips',edit:'number'},
							 | 
						|||
| 
								 | 
							
								                {templet: '#disable', title: '控制', width: 120},
							 | 
						|||
| 
								 | 
							
								                {align: 'center', toolbar: '#operation', title: '操作', width: 200},
							 | 
						|||
| 
								 | 
							
								                {field: '', title: '',width: ''},
							 | 
						|||
| 
								 | 
							
								            ],
							 | 
						|||
| 
								 | 
							
								            reqData: function(data, callback) {
							 | 
						|||
| 
								 | 
							
								                // 在这里写ajax请求,通过callback方法回调数据
							 | 
						|||
| 
								 | 
							
								                like.ajax({
							 | 
						|||
| 
								 | 
							
								                    url:'{:url("auth/lists")}',
							 | 
						|||
| 
								 | 
							
								                    type:'get',
							 | 
						|||
| 
								 | 
							
								                    success:function (res) {
							 | 
						|||
| 
								 | 
							
								                        jsonObj = JSON.parse(res.data);
							 | 
						|||
| 
								 | 
							
								                        if(res.code==0) {
							 | 
						|||
| 
								 | 
							
								                            callback(jsonObj);
							 | 
						|||
| 
								 | 
							
								                        } else {
							 | 
						|||
| 
								 | 
							
								                            callback(res.msg);
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                })
							 | 
						|||
| 
								 | 
							
								            },
							 | 
						|||
| 
								 | 
							
								            style: 'margin-top:0;'
							 | 
						|||
| 
								 | 
							
								        });
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        treeTable.on('tool(menu-lists)', function(obj) {
							 | 
						|||
| 
								 | 
							
								            var menu_id = obj.data.id;
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if(obj.event === 'del'){
							 | 
						|||
| 
								 | 
							
								                layer.confirm('确定删除此菜单及其子菜单?', function(index){
							 | 
						|||
| 
								 | 
							
								                    like.ajax({
							 | 
						|||
| 
								 | 
							
								                        url:'{:url("auth/del")}',
							 | 
						|||
| 
								 | 
							
								                        data: {ids:[menu_id]},
							 | 
						|||
| 
								 | 
							
								                        type:"post",
							 | 
						|||
| 
								 | 
							
								                        success:function(res)
							 | 
						|||
| 
								 | 
							
								                        {
							 | 
						|||
| 
								 | 
							
								                            if(res.code == 1) {
							 | 
						|||
| 
								 | 
							
								                                layer.close(index);
							 | 
						|||
| 
								 | 
							
								                                layui.layer.msg(res.msg, {
							 | 
						|||
| 
								 | 
							
								                                    offset: '15px'
							 | 
						|||
| 
								 | 
							
								                                    , icon: 1
							 | 
						|||
| 
								 | 
							
								                                    , time: 1000
							 | 
						|||
| 
								 | 
							
								                                },function(){
							 | 
						|||
| 
								 | 
							
								                                    location.reload();
							 | 
						|||
| 
								 | 
							
								                                });
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        }
							 | 
						|||
| 
								 | 
							
								                    });
							 | 
						|||
| 
								 | 
							
								                });
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								            if(obj.event === 'edit'){
							 | 
						|||
| 
								 | 
							
								                layer.open({
							 | 
						|||
| 
								 | 
							
								                    type: 2
							 | 
						|||
| 
								 | 
							
								                    ,title: '编辑菜单'
							 | 
						|||
| 
								 | 
							
								                    ,content: '{:url("auth/edit")}?id='+menu_id
							 | 
						|||
| 
								 | 
							
								                    ,area: ['90%', '90%']
							 | 
						|||
| 
								 | 
							
								                    ,btn: ['确定', '取消']
							 | 
						|||
| 
								 | 
							
								                    ,yes: function(index, layero){
							 | 
						|||
| 
								 | 
							
								                        var iframeWindow = window['layui-layer-iframe'+ index]
							 | 
						|||
| 
								 | 
							
								                            ,submit = layero.find('iframe').contents().find('#menu-submit');
							 | 
						|||
| 
								 | 
							
								                        iframeWindow.layui.form.on('submit(menu-submit)', function(data){
							 | 
						|||
| 
								 | 
							
								                            var field = data.field;
							 | 
						|||
| 
								 | 
							
								                            like.ajax({
							 | 
						|||
| 
								 | 
							
								                                url:'{:url("auth/edit")}',
							 | 
						|||
| 
								 | 
							
								                                data:field,
							 | 
						|||
| 
								 | 
							
								                                type:"post",
							 | 
						|||
| 
								 | 
							
								                                success:function(res)
							 | 
						|||
| 
								 | 
							
								                                {
							 | 
						|||
| 
								 | 
							
								                                    if(res.code == 1) {
							 | 
						|||
| 
								 | 
							
								                                        layer.close(index);
							 | 
						|||
| 
								 | 
							
								                                        layui.layer.msg(res.msg, {
							 | 
						|||
| 
								 | 
							
								                                            offset: '15px'
							 | 
						|||
| 
								 | 
							
								                                            , icon: 1
							 | 
						|||
| 
								 | 
							
								                                            , time: 1000
							 | 
						|||
| 
								 | 
							
								                                        },function(){
							 | 
						|||
| 
								 | 
							
								                                            location.reload();
							 | 
						|||
| 
								 | 
							
								                                        });
							 | 
						|||
| 
								 | 
							
								                                    }
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            });
							 | 
						|||
| 
								 | 
							
								                        });
							 | 
						|||
| 
								 | 
							
								                        submit.trigger('click');
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                });
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								        });
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        form.on('switch(switch-disable)',function (obj) {
							 | 
						|||
| 
								 | 
							
								            var menu_id = obj.elem.attributes['data-id'].nodeValue;
							 | 
						|||
| 
								 | 
							
								            var disable = 1;
							 | 
						|||
| 
								 | 
							
								            if(obj.elem.checked){
							 | 
						|||
| 
								 | 
							
								                disable = 0;
							 | 
						|||
| 
								 | 
							
								            }
							 | 
						|||
| 
								 | 
							
								            var data ={disable:disable,id:menu_id};
							 | 
						|||
| 
								 | 
							
								            like.ajax({
							 | 
						|||
| 
								 | 
							
								                url:'{:url("auth/status")}',
							 | 
						|||
| 
								 | 
							
								                data:data,
							 | 
						|||
| 
								 | 
							
								                type:"post",
							 | 
						|||
| 
								 | 
							
								                success:function (res) {
							 | 
						|||
| 
								 | 
							
								                    if(res.code == 1) {
							 | 
						|||
| 
								 | 
							
								                        layui.layer.msg(res.msg, {
							 | 
						|||
| 
								 | 
							
								                            offset: '15px'
							 | 
						|||
| 
								 | 
							
								                            , icon: 1
							 | 
						|||
| 
								 | 
							
								                            , time: 1000
							 | 
						|||
| 
								 | 
							
								                        },function(){
							 | 
						|||
| 
								 | 
							
								                            location.reload();
							 | 
						|||
| 
								 | 
							
								                        });
							 | 
						|||
| 
								 | 
							
								                    }
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        });
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        $('#add').click(function(){
							 | 
						|||
| 
								 | 
							
								            layer.open({
							 | 
						|||
| 
								 | 
							
								                type: 2
							 | 
						|||
| 
								 | 
							
								                ,title: '添加菜单'
							 | 
						|||
| 
								 | 
							
								                ,content: '{:url("auth/add")}'
							 | 
						|||
| 
								 | 
							
								                ,area: ['90%', '90%']
							 | 
						|||
| 
								 | 
							
								                ,btn: ['确定', '取消']
							 | 
						|||
| 
								 | 
							
								                ,yes: function(index, layero) {
							 | 
						|||
| 
								 | 
							
								                    var iframeWindow = window['layui-layer-iframe'+ index]
							 | 
						|||
| 
								 | 
							
								                        ,submit = layero.find('iframe').contents().find('#menu-submit');
							 | 
						|||
| 
								 | 
							
								                    iframeWindow.layui.form.on('submit(menu-submit)', function(data) {
							 | 
						|||
| 
								 | 
							
								                        var field = data.field;
							 | 
						|||
| 
								 | 
							
								                        like.ajax({
							 | 
						|||
| 
								 | 
							
								                            url:'{:url("auth/add")}',
							 | 
						|||
| 
								 | 
							
								                            data:field,
							 | 
						|||
| 
								 | 
							
								                            type:"post",
							 | 
						|||
| 
								 | 
							
								                            success:function(res)
							 | 
						|||
| 
								 | 
							
								                            {
							 | 
						|||
| 
								 | 
							
								                                if(res.code == 1) {
							 | 
						|||
| 
								 | 
							
								                                    layer.close(index);
							 | 
						|||
| 
								 | 
							
								                                    layui.layer.msg(res.msg, {
							 | 
						|||
| 
								 | 
							
								                                        offset: '15px'
							 | 
						|||
| 
								 | 
							
								                                        , icon: 1
							 | 
						|||
| 
								 | 
							
								                                        , time: 1000
							 | 
						|||
| 
								 | 
							
								                                    },function(){
							 | 
						|||
| 
								 | 
							
								                                        location.reload();
							 | 
						|||
| 
								 | 
							
								                                    });
							 | 
						|||
| 
								 | 
							
								                                }
							 | 
						|||
| 
								 | 
							
								                            }
							 | 
						|||
| 
								 | 
							
								                        });
							 | 
						|||
| 
								 | 
							
								                    });
							 | 
						|||
| 
								 | 
							
								                    submit.trigger('click');
							 | 
						|||
| 
								 | 
							
								                }
							 | 
						|||
| 
								 | 
							
								            });
							 | 
						|||
| 
								 | 
							
								        });
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        // 全部展开
							 | 
						|||
| 
								 | 
							
								        $('#expand-all').click(function () {
							 | 
						|||
| 
								 | 
							
								            insTb.expandAll();
							 | 
						|||
| 
								 | 
							
								        });
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								        // 全部折叠
							 | 
						|||
| 
								 | 
							
								        $('#fold-all').click(function () {
							 | 
						|||
| 
								 | 
							
								            insTb.foldAll();
							 | 
						|||
| 
								 | 
							
								        });
							 | 
						|||
| 
								 | 
							
								    });
							 | 
						|||
| 
								 | 
							
								</script>
							 |