role.html 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8"/>
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  6. <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
  7. <title>角色管理</title>
  8. <link rel="stylesheet" href="../../assets/libs/layui/css/layui.css"/>
  9. <link rel="stylesheet" href="../../assets/module/admin.css?v=315"/>
  10. <!--[if lt IE 9]>
  11. <script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
  12. <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
  13. <![endif]-->
  14. </head>
  15. <body>
  16. <!-- 页面加载loading -->
  17. <div class="page-loading">
  18. <div class="ball-loader">
  19. <span></span><span></span><span></span><span></span>
  20. </div>
  21. </div>
  22. <!-- 正文开始 -->
  23. <div class="layui-fluid">
  24. <div class="layui-card">
  25. <div class="layui-card-body">
  26. <div class="layui-form toolbar">
  27. <div class="layui-form-item">
  28. <div class="layui-inline">
  29. <label class="layui-form-label w-auto">搜索:</label>
  30. <div class="layui-input-inline mr0">
  31. <input name="keyword" class="layui-input" type="text" placeholder="输入关键字"/>
  32. </div>
  33. </div>
  34. <div class="layui-inline">
  35. <button class="layui-btn icon-btn" lay-filter="formSubSearchRole" lay-submit>
  36. <i class="layui-icon">&#xe615;</i>搜索
  37. </button>
  38. <button id="btnAddRole" class="layui-btn icon-btn"><i class="layui-icon">&#xe654;</i>添加</button>
  39. </div>
  40. </div>
  41. </div>
  42. <table class="layui-table" id="tableRole" lay-filter="tableRole"></table>
  43. </div>
  44. </div>
  45. </div>
  46. <!-- 表格操作列 -->
  47. <script type="text/html" id="tableBarRole">
  48. <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="edit">修改</a>
  49. <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
  50. <a class="layui-btn layui-btn-xs" lay-event="auth">权限分配</a>
  51. </script>
  52. <!-- 表单弹窗 -->
  53. <script type="text/html" id="modelRole">
  54. <form id="modelRoleForm" lay-filter="modelRoleForm" class="layui-form model-form">
  55. <input name="roleId" type="hidden"/>
  56. <div class="layui-form-item">
  57. <label class="layui-form-label">角色名</label>
  58. <div class="layui-input-block">
  59. <input name="roleName" placeholder="请输入角色名" type="text" class="layui-input" maxlength="20"
  60. lay-verType="tips" lay-verify="required" required/>
  61. </div>
  62. </div>
  63. <div class="layui-form-item">
  64. <label class="layui-form-label">备注</label>
  65. <div class="layui-input-block">
  66. <textarea name="comments" placeholder="请输入内容" class="layui-textarea" maxlength="200"></textarea>
  67. </div>
  68. </div>
  69. <div class="layui-form-item text-right">
  70. <button class="layui-btn layui-btn-primary" type="button" ew-event="closePageDialog">取消</button>
  71. <button class="layui-btn" lay-filter="modelSubmitRole" lay-submit>保存</button>
  72. </div>
  73. </form>
  74. </script>
  75. <!-- js部分 -->
  76. <script type="text/javascript" src="../../assets/libs/layui/layui.js"></script>
  77. <script type="text/javascript" src="../../assets/js/common.js?v=315"></script>
  78. <script>
  79. layui.use(['layer', 'form', 'table', 'util', 'admin', 'zTree'], function () {
  80. var $ = layui.jquery;
  81. var layer = layui.layer;
  82. var form = layui.form;
  83. var table = layui.table;
  84. var util = layui.util;
  85. var admin = layui.admin;
  86. // 渲染表格
  87. var insTb = table.render({
  88. elem: '#tableRole',
  89. url: '../../json/role.json',
  90. page: true,
  91. cellMinWidth: 100,
  92. cols: [[
  93. {type: 'numbers', title: '#'},
  94. {field: 'roleName', sort: true, title: '角色名'},
  95. {field: 'comments', sort: true, title: '备注'},
  96. {
  97. sort: true, templet: function (d) {
  98. return util.toDateString(d.createTime);
  99. }, title: '创建时间'
  100. },
  101. {align: 'center', toolbar: '#tableBarRole', title: '操作', minWidth: 200}
  102. ]]
  103. });
  104. // 添加
  105. $('#btnAddRole').click(function () {
  106. showEditModel();
  107. });
  108. // 搜索
  109. form.on('submit(formSubSearchRole)', function (data) {
  110. insTb.reload({where: data.field}, 'data');
  111. });
  112. // 工具条点击事件
  113. table.on('tool(tableRole)', function (obj) {
  114. var data = obj.data;
  115. var layEvent = obj.event;
  116. if (layEvent === 'edit') { // 修改
  117. showEditModel(data);
  118. } else if (layEvent === 'del') { // 删除
  119. doDel(obj);
  120. } else if (layEvent === 'auth') { // 权限管理
  121. showPermModel(data.roleId);
  122. }
  123. });
  124. // 删除
  125. function doDel(obj) {
  126. layer.confirm('确定要删除“' + obj.data.roleName + '”角色吗?', {
  127. skin: 'layui-layer-admin',
  128. shade: .1
  129. }, function (i) {
  130. layer.close(i);
  131. layer.load(2);
  132. $.get('../../json/ok.json', {
  133. roleId: obj.data.roleId
  134. }, function (res) {
  135. layer.closeAll('loading');
  136. if (res.code == 200) {
  137. layer.msg(res.msg, {icon: 1});
  138. obj.del();
  139. } else {
  140. layer.msg(res.msg, {icon: 2});
  141. }
  142. }, 'json');
  143. });
  144. }
  145. // 显示编辑弹窗
  146. function showEditModel(mRole) {
  147. admin.open({
  148. type: 1,
  149. title: (mRole ? '修改' : '添加') + '角色',
  150. content: $('#modelRole').html(),
  151. success: function (layero, dIndex) {
  152. var url = mRole ? '../../json/ok.json' : '../../json/ok.json';
  153. form.val('modelRoleForm', mRole); // 回显数据
  154. // 表单提交事件
  155. form.on('submit(modelSubmitRole)', function (data) {
  156. layer.load(2);
  157. $.get(url, data.field, function (res) {
  158. layer.closeAll('loading');
  159. if (res.code == 200) {
  160. layer.close(dIndex);
  161. layer.msg(res.msg, {icon: 1});
  162. insTb.reload({}, 'data');
  163. } else {
  164. layer.msg(res.msg, {icon: 2});
  165. }
  166. }, 'json');
  167. return false;
  168. });
  169. }
  170. });
  171. }
  172. // 权限管理
  173. function showPermModel(roleId) {
  174. admin.open({
  175. title: '角色权限分配',
  176. btn: ['保存', '取消'],
  177. content: '<ul id="treeAuth" class="ztree"></ul>',
  178. success: function (layero, index) {
  179. $(layero).children('.layui-layer-content').css({'max-height': '300px', 'overflow': 'auto'});
  180. layer.load(2);
  181. var setting = {check: {enable: true}, data: {simpleData: {enable: true}}};
  182. $.get('../../json/authTree.json', {
  183. roleId: roleId
  184. }, function (res) {
  185. $.fn.zTree.init($('#treeAuth'), setting, res);
  186. layer.closeAll('loading');
  187. }, 'json');
  188. },
  189. yes: function (index) {
  190. layer.load(2);
  191. var treeObj = $.fn.zTree.getZTreeObj('treeAuth');
  192. var nodes = treeObj.getCheckedNodes(true);
  193. var ids = new Array();
  194. for (var i = 0; i < nodes.length; i++) {
  195. ids[i] = nodes[i].id;
  196. }
  197. $.get('../../json/ok.json', {
  198. roleId: roleId,
  199. authIds: JSON.stringify(ids)
  200. }, function (res) {
  201. layer.closeAll('loading');
  202. if (200 == res.code) {
  203. layer.msg(res.msg, {icon: 1});
  204. layer.close(index);
  205. } else {
  206. layer.msg(res.msg, {icon: 2});
  207. }
  208. }, 'json');
  209. }
  210. });
  211. }
  212. });
  213. </script>
  214. </body>
  215. </html>