power.html 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>权限管理</title>
  6. <link rel="stylesheet" href="../../component/pear/css/pear.css" />
  7. </head>
  8. <body class="pear-container">
  9. <div class="layui-card">
  10. <div class="layui-card-body">
  11. <form class="layui-form" action="">
  12. <div class="layui-form-item">
  13. <div class="layui-form-item layui-inline">
  14. <label class="layui-form-label">用户名</label>
  15. <div class="layui-input-inline">
  16. <input type="text" name="realName" placeholder="" class="layui-input">
  17. </div>
  18. </div>
  19. <div class="layui-form-item layui-inline">
  20. <label class="layui-form-label">性别</label>
  21. <div class="layui-input-inline">
  22. <input type="text" name="realName" placeholder="" class="layui-input">
  23. </div>
  24. </div>
  25. <div class="layui-form-item layui-inline">
  26. <label class="layui-form-label">邮箱</label>
  27. <div class="layui-input-inline">
  28. <input type="text" name="realName" placeholder="" class="layui-input">
  29. </div>
  30. </div>
  31. <div class="layui-form-item layui-inline">
  32. <button class="pear-btn pear-btn-md pear-btn-primary" lay-submit lay-filter="user-query">
  33. <i class="layui-icon layui-icon-search"></i>
  34. 查询
  35. </button>
  36. <button type="reset" class="pear-btn pear-btn-md">
  37. <i class="layui-icon layui-icon-refresh"></i>
  38. 重置
  39. </button>
  40. </div>
  41. </div>
  42. </form>
  43. </div>
  44. </div>
  45. <div class="layui-card">
  46. <div class="layui-card-body">
  47. <table id="power-table" lay-filter="power-table"></table>
  48. </div>
  49. </div>
  50. <script type="text/html" id="power-toolbar">
  51. <button class="pear-btn pear-btn-primary pear-btn-md" lay-event="add">
  52. <i class="layui-icon layui-icon-add-1"></i>
  53. 新增
  54. </button>
  55. <button class="pear-btn pear-btn-danger pear-btn-md" lay-event="batchRemove">
  56. <i class="layui-icon layui-icon-delete"></i>
  57. 删除
  58. </button>
  59. <button class="pear-btn pear-btn-success pear-btn-md" lay-event="expandAll">
  60. <i class="layui-icon layui-icon-spread-left"></i>
  61. 展开
  62. </button>
  63. <button class="pear-btn pear-btn-success pear-btn-md" lay-event="foldAll">
  64. <i class="layui-icon layui-icon-shrink-right"></i>
  65. 折叠
  66. </button>
  67. </script>
  68. <script type="text/html" id="power-bar">
  69. <button class="pear-btn pear-btn-primary pear-btn-sm" lay-event="edit"><i class="layui-icon layui-icon-edit"></i></button>
  70. <button class="pear-btn pear-btn-danger pear-btn-sm" lay-event="remove"><i class="layui-icon layui-icon-delete"></i></button>
  71. </script>
  72. <script type="text/html" id="power-type">
  73. {{#if (d.powerType == '0') { }}
  74. <span>目录</span>
  75. {{# }else if(d.powerType == '1'){ }}
  76. <span>菜单</span>
  77. {{# }else if(d.powerType == '2'){ }}
  78. <span>按钮</span>
  79. {{# } }}
  80. </script>
  81. <script type="text/html" id="power-enable">
  82. <input type="checkbox" name="enable" value="{{d.id}}" lay-skin="switch" lay-text="启用|禁用" lay-filter="user-enable" {{ d.enable== true ? 'checked' : '' }} />
  83. </script>
  84. <script type="text/html" id="icon">
  85. <i class="layui-icon {{d.icon}}"></i>
  86. </script>
  87. <script src="../../component/layui/layui.js"></script>
  88. <script src="../../component/pear/pear.js"></script>
  89. <script>
  90. layui.use(['table','form','jquery','treetable'],function () {
  91. let table = layui.table;
  92. let form = layui.form;
  93. let $ = layui.jquery;
  94. let treetable = layui.treetable;
  95. let MODULE_PATH = "operate/";
  96. window.render = function(){
  97. treetable.render({
  98. treeColIndex: 1,
  99. treeIdName: 'powerId',
  100. treePidName: 'parentId',
  101. skin:'line',
  102. treeDefaultClose: true,
  103. toolbar:'#power-toolbar',
  104. elem: '#power-table',
  105. url: '../../demos/data/power.json',
  106. page: false,
  107. cols: [
  108. [
  109. {type: 'checkbox'},
  110. {field: 'powerName', minWidth: 200, title: '权限名称'},
  111. {field: 'icon', title: '图标',templet:'#icon'},
  112. {field: 'powerType', title: '权限类型',templet:'#power-type'},
  113. {field: 'enable', title: '是否可用',templet:'#power-enable'},
  114. {field: 'sort', title: '排序'},
  115. {title: '操作',templet: '#power-bar', width: 150, align: 'center'}
  116. ]
  117. ]
  118. });
  119. }
  120. render();
  121. table.on('tool(power-table)',function(obj){
  122. if (obj.event === 'remove') {
  123. window.remove(obj);
  124. } else if (obj.event === 'edit') {
  125. window.edit(obj);
  126. }
  127. })
  128. table.on('toolbar(power-table)', function(obj){
  129. if(obj.event === 'add'){
  130. window.add();
  131. } else if(obj.event === 'refresh'){
  132. window.refresh();
  133. } else if(obj.event === 'batchRemove'){
  134. window.batchRemove(obj);
  135. } else if(obj.event === 'expandAll'){
  136. treetable.expandAll("#power-table");
  137. } else if(obj.event === 'foldAll'){
  138. treetable.foldAll("#power-table");
  139. }
  140. });
  141. window.add = function(){
  142. layer.open({
  143. type: 2,
  144. title: '新增',
  145. shade: 0.1,
  146. area: ['450px', '500px'],
  147. content: MODULE_PATH + 'add.html'
  148. });
  149. }
  150. window.edit = function(obj){
  151. layer.open({
  152. type: 2,
  153. title: '修改',
  154. shade: 0.1,
  155. area: ['450px', '500px'],
  156. content: MODULE_PATH + 'edit.html'
  157. });
  158. }
  159. window.remove = function(obj){
  160. layer.confirm('确定要删除该权限', {icon: 3, title:'提示'}, function(index){
  161. layer.close(index);
  162. let loading = layer.load();
  163. $.ajax({
  164. url: MODULE_PATH+"remove/"+obj.data['powerId'],
  165. dataType:'json',
  166. type:'delete',
  167. success:function(result){
  168. layer.close(loading);
  169. if(result.success){
  170. layer.msg(result.msg,{icon:1,time:1000},function(){
  171. obj.del();
  172. });
  173. }else{
  174. layer.msg(result.msg,{icon:2,time:1000});
  175. }
  176. }
  177. })
  178. });
  179. }
  180. window.batchRemove = function(obj) {
  181. let data = table.checkStatus(obj.config.id).data;
  182. if (data.length === 0) {
  183. layer.msg("未选中数据", {
  184. icon: 3,
  185. time: 1000
  186. });
  187. return false;
  188. }
  189. let ids = "";
  190. for (let i = 0; i < data.length; i++) {
  191. ids += data[i].powerId + ",";
  192. }
  193. ids = ids.substr(0, ids.length - 1);
  194. layer.confirm('确定要删除这些权限', {
  195. icon: 3,
  196. title: '提示'
  197. }, function(index) {
  198. layer.close(index);
  199. let loading = layer.load();
  200. $.ajax({
  201. url: MODULE_PATH + "batchRemove/" + ids,
  202. dataType: 'json',
  203. type: 'delete',
  204. success: function(result) {
  205. layer.close(loading);
  206. if (result.success) {
  207. layer.msg(result.msg, {
  208. icon: 1,
  209. time: 1000
  210. }, function() {
  211. table.reload('user-table');
  212. });
  213. } else {
  214. layer.msg(result.msg, {
  215. icon: 2,
  216. time: 1000
  217. });
  218. }
  219. }
  220. })
  221. });
  222. }
  223. })
  224. </script>
  225. </body>
  226. </html>