menu.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201
  1. layui.use(['layer', 'form', 'ztree', 'laydate', 'admin', 'ax', 'table', 'treetable'], function () {
  2. var layer = layui.layer;
  3. var form = layui.form;
  4. var $ZTree = layui.ztree;
  5. var $ax = layui.ax;
  6. var laydate = layui.laydate;
  7. var admin = layui.admin;
  8. var table = layui.table;
  9. var treetable = layui.treetable;
  10. /**
  11. * 系统管理--菜单管理
  12. */
  13. var Menu = {
  14. tableId: "menuTable", //表格id
  15. condition: {
  16. menuId: "",
  17. menuName: "",
  18. level: ""
  19. }
  20. };
  21. /**
  22. * 初始化表格的列
  23. */
  24. Menu.initColumn = function () {
  25. return [[
  26. {type: 'numbers'},
  27. {field: 'menuId', hide: true, sort: true, title: 'id'},
  28. {field: 'name', sort: true, title: '菜单名称'},
  29. {field: 'code', sort: true, title: '菜单编号'},
  30. {field: 'pcode', sort: true, title: '菜单父编号'},
  31. {field: 'url', sort: true, title: '请求地址'},
  32. {field: 'sort', sort: true, title: '排序'},
  33. {field: 'levels', sort: true, title: '层级'},
  34. {field: 'isMenuName', sort: true, title: '是否是菜单'},
  35. {field: 'statusName', sort: true, title: '状态'},
  36. {align: 'center', toolbar: '#tableBar', title: '操作', minWidth: 200}
  37. ]];
  38. };
  39. /**
  40. * 点击菜单树时
  41. */
  42. Menu.onClickMenu = function (e, treeId, treeNode) {
  43. Menu.condition.menuId = treeNode.id;
  44. Menu.search();
  45. };
  46. /**
  47. * 点击查询按钮
  48. */
  49. Menu.search = function () {
  50. var queryData = {};
  51. queryData['menuName'] = $("#menuName").val();
  52. queryData['level'] = $("#level").val();
  53. Menu.initTable(Menu.tableId, queryData);
  54. };
  55. /**
  56. * 弹出添加菜单对话框
  57. */
  58. Menu.openAddMenu = function () {
  59. admin.putTempData('formOk', false);
  60. top.layui.admin.open({
  61. type: 2,
  62. title: '添加菜单',
  63. content: Feng.ctxPath + '/menu/menu_add',
  64. end: function () {
  65. admin.getTempData('formOk') && Menu.initTable(Menu.tableId);
  66. }
  67. });
  68. };
  69. /**
  70. * 导出excel按钮
  71. */
  72. Menu.exportExcel = function () {
  73. var checkRows = table.checkStatus(Menu.tableId);
  74. if (checkRows.data.length === 0) {
  75. Feng.error("请选择要导出的数据");
  76. } else {
  77. table.exportFile(tableResult.config.id, checkRows.data, 'xls');
  78. }
  79. };
  80. /**
  81. * 点击编辑菜单按钮时
  82. *
  83. * @param data 点击按钮时候的行数据
  84. */
  85. Menu.onEditMenu = function (data) {
  86. admin.putTempData('formOk', false);
  87. top.layui.admin.open({
  88. type: 2,
  89. title: '编辑菜单',
  90. content: Feng.ctxPath + '/menu/menu_edit?menuId=' + data.menuId,
  91. end: function () {
  92. admin.getTempData('formOk') && Menu.initTable(Menu.tableId);
  93. }
  94. });
  95. };
  96. /**
  97. * 点击删除菜单按钮
  98. *
  99. * @param data 点击按钮时候的行数据
  100. */
  101. Menu.onDeleteMenu = function (data) {
  102. var operation = function () {
  103. var ajax = new $ax(Feng.ctxPath + "/menu/remove", function () {
  104. Feng.success("删除成功!");
  105. Menu.condition.menuId = "";
  106. Menu.initTable(Menu.tableId);
  107. }, function (data) {
  108. Feng.error("删除失败!" + data.responseJSON.message + "!");
  109. });
  110. ajax.set("menuId", data.menuId);
  111. ajax.start();
  112. };
  113. Feng.confirm("是否删除菜单" + data.name + "?", operation);
  114. };
  115. /**
  116. * 初始化表格
  117. */
  118. Menu.initTable = function (menuId, data) {
  119. return treetable.render({
  120. elem: '#' + menuId,
  121. url: Feng.ctxPath + '/menu/listTree',
  122. where: data,
  123. page: false,
  124. height: "full-158",
  125. cellMinWidth: 100,
  126. cols: Menu.initColumn(),
  127. treeColIndex: 2,
  128. treeSpid: "0",
  129. treeIdName: 'code',
  130. treePidName: 'pcode',
  131. treeDefaultClose: false,
  132. treeLinkage: true
  133. });
  134. };
  135. // 渲染表格
  136. var tableResult = Menu.initTable(Menu.tableId);
  137. $('#expandAll').click(function () {
  138. treetable.expandAll('#' + Menu.tableId);
  139. });
  140. $('#foldAll').click(function () {
  141. treetable.foldAll('#' + Menu.tableId);
  142. });
  143. //渲染时间选择框
  144. laydate.render({
  145. elem: '#timeLimit',
  146. range: true,
  147. max: Feng.currentDate()
  148. });
  149. //初始化左侧部门树
  150. var ztree = new $ZTree("menuTree", "/menu/selectMenuTreeList");
  151. ztree.bindOnClick(Menu.onClickMenu);
  152. ztree.init();
  153. // 搜索按钮点击事件
  154. $('#btnSearch').click(function () {
  155. Menu.search();
  156. });
  157. // 添加按钮点击事件
  158. $('#btnAdd').click(function () {
  159. Menu.openAddMenu();
  160. });
  161. // 工具条点击事件
  162. table.on('tool(' + Menu.tableId + ')', function (obj) {
  163. var data = obj.data;
  164. var layEvent = obj.event;
  165. if (layEvent === 'edit') {
  166. Menu.onEditMenu(data);
  167. } else if (layEvent === 'delete') {
  168. Menu.onDeleteMenu(data);
  169. } else if (layEvent === 'roleAssign') {
  170. Menu.roleAssign(data);
  171. } else if (layEvent === 'reset') {
  172. Menu.resetPassword(data);
  173. }
  174. });
  175. // 修改user状态
  176. form.on('switch(status)', function (obj) {
  177. var userId = obj.elem.value;
  178. var checked = obj.elem.checked ? true : false;
  179. Menu.changeUserStatus(userId, checked);
  180. });
  181. });