menu_list.html 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>菜单管理</title>
  7. <link rel="stylesheet" href="../../lib/layui/css/layui.css">
  8. <style>
  9. body { padding: 15px; }
  10. .search-form { margin-bottom: 15px; padding: 15px; background: #fff; border-radius: 4px; }
  11. .status-green { color: #5fb878; }
  12. .status-red { color: #ff5722; }
  13. .menu-type { padding: 2px 8px; border-radius: 3px; font-size: 12px; }
  14. .menu-type-M { background: #009688; color: #fff; }
  15. .menu-type-C { background: #1E9FFF; color: #fff; }
  16. .menu-type-F { background: #FFB800; color: #fff; }
  17. </style>
  18. </head>
  19. <body>
  20. <div class="search-form">
  21. <form class="layui-form layui-form-pane" lay-filter="searchForm">
  22. <div class="layui-form-item">
  23. <div class="layui-inline">
  24. <label class="layui-form-label">菜单名称</label>
  25. <div class="layui-input-inline">
  26. <input type="text" name="menuName" placeholder="请输入菜单名称" class="layui-input" autocomplete="off">
  27. </div>
  28. </div>
  29. <div class="layui-inline">
  30. <label class="layui-form-label">状态</label>
  31. <div class="layui-input-inline">
  32. <select name="status" class="layui-select">
  33. <option value="">全部</option>
  34. <option value="1">正常</option>
  35. <option value="0">停用</option>
  36. </select>
  37. </div>
  38. </div>
  39. <div class="layui-inline">
  40. <button type="button" class="layui-btn" id="btnSearch"><i class="layui-icon layui-icon-search"></i> 搜索</button>
  41. <button type="reset" class="layui-btn layui-btn-primary">重置</button>
  42. </div>
  43. </div>
  44. </form>
  45. </div>
  46. <div class="table-toolbar">
  47. <button class="layui-btn layui-btn-sm" id="btnAdd"><i class="layui-icon layui-icon-add-1"></i> 添加</button>
  48. </div>
  49. <table id="tableList" lay-filter="tableList"></table>
  50. <script type="text/html" id="toolbar">
  51. <a class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i> 编辑</a>
  52. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i> 删除</a>
  53. </script>
  54. <script type="text/html" id="menuTypeTpl">
  55. {{# if(d.menuType === 'M') { }}
  56. <span class="menu-type menu-type-M">目录</span>
  57. {{# } else if(d.menuType === 'C') { }}
  58. <span class="menu-type menu-type-C">菜单</span>
  59. {{# } else if(d.menuType === 'F') { }}
  60. <span class="menu-type menu-type-F">按钮</span>
  61. {{# } }}
  62. </script>
  63. <script type="text/html" id="statusTpl">
  64. {{# if(d.status === '1') { }}
  65. <span class="status-green"><i class="layui-icon layui-icon-ok-circle"></i> 正常</span>
  66. {{# } else { }}
  67. <span class="status-red"><i class="layui-icon layui-icon-close-fill"></i> 停用</span>
  68. {{# } }}
  69. </script>
  70. <script src="../../lib/layui/layui.js"></script>
  71. <script src="../../js/config.js"></script>
  72. <script src="../../js/common.js"></script>
  73. <script>
  74. layui.use(['table', 'layer', 'form'], function() {
  75. var table = layui.table;
  76. var layer = layui.layer;
  77. var form = layui.form;
  78. var tableIns = TableRender.init({
  79. elem: '#tableList',
  80. url: Config.api.menu.page,
  81. cols: [[
  82. { field: 'menuName', title: '菜单名称', width: 180 },
  83. { field: 'icon', title: '图标', width: 100, templet: function(d) { return d.icon ? '<i class="layui-icon ' + d.icon + '"></i>' : '-'; } },
  84. { field: 'menuType', title: '类型', width: 80, templet: '#menuTypeTpl' },
  85. { field: 'path', title: '路由地址', width: 180 },
  86. { field: 'component', title: '组件路径', width: 200 },
  87. { field: 'perms', title: '权限标识', width: 180 },
  88. { field: 'sort', title: '排序', width: 60 },
  89. { field: 'status', title: '状态', width: 100, templet: '#statusTpl' },
  90. { fixed: 'right', title: '操作', width: 150, align: 'center', toolbar: '#toolbar' }
  91. ]]
  92. });
  93. $('#btnSearch').click(function() {
  94. var data = form.val('searchForm');
  95. table.reload('tableList', {
  96. where: data,
  97. page: { curr: 1 }
  98. });
  99. });
  100. $('#btnAdd').click(function() {
  101. Common.open({
  102. title: '添加菜单',
  103. area: ['600px', '500px'],
  104. content: 'menu_form.html?id='
  105. });
  106. });
  107. table.on('tool(tableList)', function(obj) {
  108. var data = obj.data;
  109. var event = obj.event;
  110. if (event === 'edit') {
  111. Common.open({
  112. title: '编辑菜单',
  113. area: ['600px', '500px'],
  114. content: 'menu_form.html?id=' + data.id
  115. });
  116. } else if (event === 'del') {
  117. Common.confirm('确定要删除菜单 【' + data.menuName + '】 吗?', function() {
  118. Common.del(Config.api.menu.remove + '/' + data.id, function(res) {
  119. Common.success('删除成功', function() {
  120. obj.del();
  121. });
  122. });
  123. });
  124. }
  125. });
  126. });
  127. </script>
  128. </body>
  129. </html>