menu.js 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. function initMenu() {
  2. // $("#main_content_title").html("菜单管理")
  3. $('#dashboard').dashboard({ draggable: true });
  4. var zTreeObj;
  5. var zNodes = [];
  6. menu_tree = $.fn.zTree.init($("#menu_tree"), {}, zNodes);
  7. getMenu();
  8. $("#dept_add").on("click", function() {
  9. var nodedata = menu_tree.getSelectedNodes();
  10. edittype = "add"
  11. loadData(nodedata)
  12. $('#addModal').modal('show')
  13. })
  14. $("#dept_edit").on("click", function() {
  15. //获取选中的节点
  16. var nodedata = menu_tree.getSelectedNodes();
  17. if (nodedata.length < 1) {
  18. layer.msg('请先选择部门!', {
  19. time: 2000, //20s后自动关闭
  20. });
  21. return;
  22. }
  23. edittype = "edit"
  24. loadData(nodedata)
  25. $('#addModal').modal('show');
  26. });
  27. $("#dept_delete").on("click", function() {
  28. //获取选中的节点
  29. var nodedata = menu_tree.getSelectedNodes();
  30. if (nodedata.length < 1) {
  31. layer.msg('请先选择部门!', {
  32. time: 2000, //20s后自动关闭
  33. });
  34. return;
  35. }
  36. layer.confirm('您确定要删除该部门?', {
  37. offset: "auto",
  38. shade: 0,
  39. btn: ['确定'] //按钮
  40. }, function() {
  41. deleteItem4CallBack(function() {
  42. DeptDelete(nodedata[0].id, function(data) {
  43. layer.msg('删除成功!', {
  44. time: 2000, //20s后自动关闭
  45. });
  46. menu_tree.removeNode(nodedata[0]);
  47. }, function(error) {
  48. });
  49. });
  50. });
  51. });
  52. }
  53. function getMenu() {
  54. function zTreeOnRename(event, treeId, treeNode, isCancel) {
  55. alert(treeNode.tId + ", " + treeNode.name);
  56. }
  57. function zTreeOnRemove(event, treeId, treeNode) {
  58. alert(treeNode.tId + ", " + treeNode.name);
  59. }
  60. var setting = {
  61. data: {
  62. simpleData: {
  63. enable: true,
  64. idKey: "id",
  65. pIdKey: "pId",
  66. rootPId: null
  67. }
  68. },
  69. view: { //表示tree的显示状态
  70. selectMulti: false //表示禁止多选
  71. },
  72. check: { //表示tree的节点在点击时的相关设置
  73. enable: false, //是否显示radio/checkbox
  74. chkStyle: "checkbox", //值为checkbox或者radio表示
  75. checkboxType: { p: "", s: "" }, //表示父子节点的联动效果
  76. radioType: "level" //设置tree的分组
  77. },
  78. callback: {
  79. onClick: zTreeOnClick
  80. },
  81. edit: {
  82. enable: true,
  83. drag: {
  84. autoExpandTrigger: true,
  85. isMove: true,
  86. prev: false,
  87. next: true,
  88. inner: true,
  89. autoOpenTime: 0
  90. },
  91. showRenameBtn: false,
  92. showRemoveBtn: false
  93. }
  94. };
  95. post_common_service('menu/get/all?judge=10', {}, function(data) {
  96. zdata = [];
  97. for (var i = 0; i < data.length; i++) {
  98. var m = data[i];
  99. var zdataItem = {};
  100. zdataItem["id"] = m.id;
  101. zdataItem["value"] = m.id;
  102. zdataItem["pId"] = null;
  103. zdataItem["name"] = m.menuname;
  104. zdataItem["children"] = addobj(m);
  105. zdata.push(zdataItem);
  106. }
  107. menu_tree = $.fn.zTree.init($("#menu_tree"), setting, zdata)
  108. }, function(error) {
  109. });
  110. }
  111. function addobj(data) {
  112. var zdata = [];
  113. if (typeof(data.childs) != "undefinde" && data.childs != null &&
  114. data.childs.length > 0) {
  115. for (var i = 0; i < data.childs.length; i++) {
  116. var m = data.childs[i];
  117. var zdataItem = {};
  118. zdataItem["id"] = m.id;
  119. zdataItem["value"] = m.id;
  120. zdataItem["pId"] = data.id;
  121. zdataItem["icon"] = "";
  122. zdataItem["name"] = m.menuname;
  123. zdataItem["children"] = addobj(m);
  124. zdata.push(zdataItem);
  125. }
  126. return zdata;
  127. } else {
  128. return [];
  129. }
  130. }
  131. var curTreeNode;
  132. function zTreeOnClick(event, treeId, treeNode) {
  133. // alert(treeNode.id);
  134. curTreeNode = treeNode;
  135. queryMenu(treeNode.id);
  136. }
  137. function refresh() {
  138. // alert(treeNode.id);
  139. getMenu();
  140. $('.datatable').mytable('empty');
  141. //queryMenu(curTreeNode.id);
  142. }
  143. function queryMenu(id) {
  144. var data = {
  145. "pid": id
  146. }
  147. var cols = [
  148. { width: 80, text: '菜单名称', type: 'number', flex: false, field: 'menuname' },
  149. { width: 160, text: '地址', type: 'string', flex: false, field: 'url' },
  150. // {width: 80, text: '字典名称', type: 'string', flex: true, field: 'parentId'},
  151. { width: 60, text: '图标', type: 'string', flex: false, field: 'iconClass' },
  152. { width: 50, text: '类型', type: 'string', flex: false, field: 'type' },
  153. { width: 50, text: '排序号', type: 'number', flex: false, field: 'sortNo' },
  154. {
  155. width: 60,
  156. text: '操作',
  157. type: 'string',
  158. flex: false,
  159. field: 'id',
  160. oper: [
  161. { func: 'showEditMenu', text: '修改', icon_class: 'icon-edit' },
  162. { func: 'deleteMenu', text: '删除', icon_class: 'icon-remove-circle' }
  163. ]
  164. }
  165. ];
  166. $('.datatable').mytable({
  167. 'cols': cols,
  168. 'url': "/menu/getMenuByParent/" + id + "/",
  169. 'param': data
  170. });
  171. }
  172. function showAddMenu() {
  173. $('#menuname').val('');
  174. $('#url').val('');
  175. if (curTreeNode)
  176. $('#parentId').val(curTreeNode.id)
  177. else
  178. $('#parentId').val('');
  179. $('#iconClass').val('');
  180. $('#type').val('');
  181. $('#sortNo').val('');
  182. showPopup4Common('添加菜单', function() {
  183. addOrUpdateConstant("/menu/addMenu/");
  184. }, '400px');
  185. }
  186. // var cur_id;
  187. function addOrUpdateConstant(url) {
  188. var valid = 1;
  189. if (!$("#valid").is(':checked')) valid = 0;
  190. var param = {
  191. // 'id':cur_id,
  192. 'menuname': $('#menuname').val(),
  193. 'url': $('#url').val(),
  194. 'parentId': $('#parentId').val(),
  195. 'iconClass': $('#iconClass').val(),
  196. 'type': $('#type').val(),
  197. 'sortNo': $('#sortNo').val()
  198. };
  199. addOrUpdateItem4Common(param, url, refresh);
  200. }
  201. function showEditMenu(id) {
  202. // cur_id='';
  203. var rowData = getItemByIdFromArr(id, $('.datatable').mytable('getTableData'));
  204. if (rowData) {
  205. // cur_id = rowData.id;
  206. $('#menuname').val(rowData.menuname);
  207. $('#url').val(rowData.url);
  208. $('#parentId').val(rowData.parentId);
  209. $('#iconClass').val(rowData.iconClass);
  210. $('#type').val(rowData.type);
  211. $('#sortNo').val(rowData.sortNo);
  212. // if(rowData.valid==1){
  213. // $("#valid").attr('checked','true');
  214. // }else{
  215. // $("#valid").attr('checked','false');
  216. // }
  217. showPopup4Common('修改菜单', function() {
  218. addOrUpdateConstant("/menu/updateMenu/" + id);
  219. }, '400px');
  220. }
  221. }
  222. function deleteMenu(id) {
  223. deleteItem4Common(id, "/menu/deleteMenu/" + id + "", refresh);
  224. }