role_list.html 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  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. </style>
  14. </head>
  15. <body>
  16. <div class="search-form">
  17. <form class="layui-form layui-form-pane" lay-filter="searchForm">
  18. <div class="layui-form-item">
  19. <div class="layui-inline">
  20. <label class="layui-form-label">角色名称</label>
  21. <div class="layui-input-inline">
  22. <input type="text" name="roleName" placeholder="请输入角色名称" class="layui-input" autocomplete="off">
  23. </div>
  24. </div>
  25. <div class="layui-inline">
  26. <label class="layui-form-label">状态</label>
  27. <div class="layui-input-inline">
  28. <select name="status" class="layui-select">
  29. <option value="">全部</option>
  30. <option value="1">正常</option>
  31. <option value="0">停用</option>
  32. </select>
  33. </div>
  34. </div>
  35. <div class="layui-inline">
  36. <button type="button" class="layui-btn" id="btnSearch"><i class="layui-icon layui-icon-search"></i> 搜索</button>
  37. <button type="reset" class="layui-btn layui-btn-primary">重置</button>
  38. </div>
  39. </div>
  40. </form>
  41. </div>
  42. <div class="table-toolbar">
  43. <button class="layui-btn layui-btn-sm" id="btnAdd"><i class="layui-icon layui-icon-add-1"></i> 添加</button>
  44. <button class="layui-btn layui-btn-sm layui-btn-danger" id="btnBatchDelete"><i class="layui-icon layui-icon-delete"></i> 批量删除</button>
  45. </div>
  46. <table id="tableList" lay-filter="tableList"></table>
  47. <script type="text/html" id="toolbar">
  48. <a class="layui-btn layui-btn-xs" lay-event="edit"><i class="layui-icon layui-icon-edit"></i> 编辑</a>
  49. <a class="layui-btn layui-btn-xs layui-btn-normal" lay-event="assignMenu"><i class="layui-icon layui-icon-set-fill"></i> 分配菜单</a>
  50. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del"><i class="layui-icon layui-icon-delete"></i> 删除</a>
  51. </script>
  52. <script type="text/html" id="statusTpl">
  53. {{# if(d.status === '1') { }}
  54. <span class="status-green"><i class="layui-icon layui-icon-ok-circle"></i> 正常</span>
  55. {{# } else { }}
  56. <span class="status-red"><i class="layui-icon layui-icon-close-fill"></i> 停用</span>
  57. {{# } }}
  58. </script>
  59. <script src="../../lib/layui/layui.js"></script>
  60. <script src="../../js/config.js"></script>
  61. <script src="../../js/common.js"></script>
  62. <script>
  63. layui.use(['table', 'layer', 'form'], function() {
  64. var table = layui.table;
  65. var layer = layui.layer;
  66. var form = layui.form;
  67. var tableIns = TableRender.init({
  68. elem: '#tableList',
  69. url: Config.api.role.page,
  70. cols: [[
  71. { type: 'checkbox', fixed: 'left' },
  72. { field: 'roleName', title: '角色名称', width: 150 },
  73. { field: 'roleKey', title: '权限标识', width: 200 },
  74. { field: 'sort', title: '排序', width: 80 },
  75. { field: 'status', title: '状态', width: 100, templet: '#statusTpl' },
  76. { field: 'createTime', title: '创建时间', width: 170, templet: function(d) { return Common.formatDate(d.createTime); } },
  77. { field: 'remark', title: '备注' },
  78. { fixed: 'right', title: '操作', width: 220, align: 'center', toolbar: '#toolbar' }
  79. ]]
  80. });
  81. $('#btnSearch').click(function() {
  82. var data = form.val('searchForm');
  83. table.reload('tableList', {
  84. where: data,
  85. page: { curr: 1 }
  86. });
  87. });
  88. $('#btnAdd').click(function() {
  89. Common.open({
  90. title: '添加角色',
  91. area: ['600px', '450px'],
  92. content: 'role_form.html?id='
  93. });
  94. });
  95. $('#btnBatchDelete').click(function() {
  96. var checkStatus = table.checkStatus('tableList');
  97. var data = checkStatus.data;
  98. if (data.length === 0) {
  99. layer.msg('请选择要删除的数据', { icon: 2 });
  100. return;
  101. }
  102. var ids = data.map(function(item) { return item.id; });
  103. Common.confirm('确定要删除选中的 ' + data.length + ' 条数据吗?', function() {
  104. Common.del(Config.api.role.remove + '/' + ids.join(','), function(res) {
  105. Common.success('删除成功', function() {
  106. table.reload('tableList');
  107. });
  108. });
  109. });
  110. });
  111. table.on('tool(tableList)', function(obj) {
  112. var data = obj.data;
  113. var event = obj.event;
  114. if (event === 'edit') {
  115. Common.open({
  116. title: '编辑角色',
  117. area: ['600px', '450px'],
  118. content: 'role_form.html?id=' + data.id
  119. });
  120. } else if (event === 'assignMenu') {
  121. Common.open({
  122. title: '分配菜单 - ' + data.roleName,
  123. area: ['400px', '500px'],
  124. content: 'role_menu.html?roleId=' + data.id
  125. });
  126. } else if (event === 'del') {
  127. Common.confirm('确定要删除角色 【' + data.roleName + '】 吗?', function() {
  128. Common.del(Config.api.role.remove + '/' + data.id, function(res) {
  129. Common.success('删除成功', function() {
  130. obj.del();
  131. });
  132. });
  133. });
  134. }
  135. });
  136. });
  137. </script>
  138. </body>
  139. </html>