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> |