menumain.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351
  1. /**
  2. *字典管理
  3. *
  4. */
  5. $.namespace("menu.main");
  6. menu.main.treeObj=null;
  7. //初始化树、树对象、列表数据
  8. menu.main.init=function(set){
  9. menu.main.showmenuaddbtn();
  10. $.fn.zTree.init($("#tree"), set);
  11. menu.main.treeObj = $.fn.zTree.getZTreeObj("tree");
  12. menu.main.initmenutable();
  13. }
  14. //单击树节点时,给表单赋值pid,和查询节点下的数据
  15. menu.main.onClick=function(event, treeId, treeNode, clickFlag){
  16. //如果是父节点,pid赋值,并且查询菜单数据,如果不是,mid赋值,查询按钮数据
  17. if(treeNode.isParent){
  18. menu.main.showmenuaddbtn();
  19. $('#menueditpid').val(treeNode.id);
  20. menu.main.initmenutable(treeNode.id);
  21. }else{
  22. menu.main.showfuncaddbtn();
  23. $('#editmid').val(treeNode.id);
  24. menu.main.initfunctable(treeNode.id);
  25. }
  26. }
  27. //构建菜单列表
  28. menu.main.initmenutable=function(data){
  29. var thead = "";
  30. thead+="<th width='20%'>菜单名称</th>";
  31. thead+="<th width='20%'>菜单编码</th>";
  32. thead+="<th width='20%'>链接URL</th>";
  33. thead+="<th width='10%'>样式</th>";
  34. thead+="<th width='10%'>排序号</th>";
  35. thead+="<th width='1%' class='operatetd'>操作</th>";
  36. $("#lietou").empty();
  37. $("#lietou").append(thead);
  38. $.post($.app + "/menu/getMenuDataByPid", {
  39. pid : data
  40. }, function(data) {
  41. if(data){
  42. var str="";
  43. for(var i=0;i<data.length;i++){
  44. var menu = data[i];
  45. var url=menu.url||"";
  46. var iconcls=menu.iconcls||"";
  47. str+=" <tr class='tr_bg'>";
  48. str+="<td >"+menu.name+"</td>";
  49. str+="<td >"+menu.code+"</td>";
  50. str+="<td >"+url+"</td>";
  51. str+="<td >"+iconcls+"</td>";
  52. str+="<td >"+menu.sortno+"</td>";
  53. str+="<td class='operatetd'> " +
  54. "<a class='btn btn-default btn-xs' href='#' title='编辑' onclick=\"menu.main.menuedit('"+menu.id+"')\">"+
  55. "<i class='glyphicon glyphicon-pencil'></i></a> "+
  56. "<a class='btn btn-default btn-xs' href='#' title='删除' onclick=\"menu.main.menudel('"+menu.id+"','"+menu.pid+"')\">"+
  57. "<i class='glyphicon glyphicon-trash'></i></a> "+
  58. "</td>";
  59. str+=" </tr >";
  60. }
  61. $("#liebiao").empty();
  62. $("#liebiao").append(str);
  63. }
  64. }, "json");
  65. }
  66. //删除菜单某个节点时,列表刷新同时树节点也刷新
  67. menu.main.menudel=function(id,pdata){
  68. $.confirm({
  69. title: '确认框',
  70. content: '确认删除吗',
  71. confirm: function(){
  72. $.post($.app + "/menu/menudelete", {
  73. id : id
  74. }, function(data) {
  75. if (data.success) {
  76. $.alert({
  77. title: '提示',
  78. content: '操作成功',
  79. confirm: function(){
  80. menu.main.initmenutable(pdata);
  81. var selNode = menu.main.treeObj.getNodesByParam("id",id,null);
  82. if(selNode){
  83. menu.main.treeObj.removeNode(selNode[0]);
  84. }
  85. }
  86. });
  87. } else {
  88. $.alert({
  89. title: '提示',
  90. content: data.message,
  91. confirm: function(){
  92. }
  93. });
  94. }
  95. }, "json");
  96. },
  97. cancel: function(){
  98. }
  99. });
  100. }
  101. //菜单编辑
  102. menu.main.menuedit=function(id){
  103. $.post($.app + "/menu/menuedit", {
  104. id : id
  105. }, function(data) {
  106. menu.main.showmenudiv();
  107. if (data) {
  108. $('#menueditid').val(data.id);
  109. $('#menueditpid').val(data.pid);
  110. $('#menueditname').val(data.name);
  111. $('#menueditcode').val(data.code);
  112. $('#menuediturl').val(data.url);
  113. $('#menuediticoncls').val(data.iconcls);
  114. $('#menueditsortno').val(data.sortno);
  115. menu.main.show();
  116. }
  117. }, "json");
  118. }
  119. menu.main.menuadd=function(){
  120. menu.main.menuclearForm();
  121. menu.main.showmenudiv();
  122. menu.main.show();
  123. }
  124. menu.main.menuclearForm=function(){
  125. $('#menueditid').val("");
  126. $('#menueditname').val("");
  127. $('#menueditcode').val("");
  128. $('#menuediturl').val("");
  129. $('#menueditsortno').val("");
  130. }
  131. menu.main.close=function(){
  132. $('.theme-popover-mask').fadeOut(100);
  133. $('.theme-popover').slideUp(0);
  134. }
  135. menu.main.show=function(){
  136. $('.theme-popover-mask').fadeIn(100);
  137. $('.theme-popover').slideDown(0);
  138. }
  139. //保存后刷新数据和树节点,关闭弹出框
  140. menu.main.menusave=function(){
  141. $.ajax({
  142. url:$.app+"/menu/menusave",
  143. data:$("#menuaddform").serialize(),
  144. type:"post",
  145. dataType:"json",
  146. success:function(data){//ajax返回的数据
  147. if (data.success) {
  148. $.alert({
  149. title: '提示',
  150. content: '操作成功',
  151. confirm: function(){
  152. menu.main.initmenutable($('#menueditpid').val());
  153. var selNode = menu.main.treeObj.getNodesByParam("id",$('#menueditpid').val(),null);
  154. if(selNode){
  155. menu.main.treeObj.reAsyncChildNodes(selNode[0], "refresh",false);
  156. }
  157. menu.main.close();
  158. }
  159. });
  160. }else {
  161. $.alert({
  162. title: '提示',
  163. content: data.message,
  164. confirm: function(){
  165. }
  166. });
  167. }
  168. }
  169. });
  170. }
  171. menu.main.showmenuaddbtn=function(){
  172. $('#menuadd').show();
  173. $('#funcadd').hide();
  174. }
  175. menu.main.showfuncaddbtn=function(){
  176. $('#funcadd').show();
  177. $('#menuadd').hide();
  178. }
  179. menu.main.showmenudiv=function(){
  180. $('#menuadddiv').show();
  181. $('#funcadddiv').hide();
  182. }
  183. menu.main.showfuncdiv=function(){
  184. $('#funcadddiv').show();
  185. $('#menuadddiv').hide();
  186. }
  187. //构建菜单列表
  188. menu.main.initfunctable=function(data){
  189. var thead = "";
  190. thead+="<th width='20%'>按钮名称</th>";
  191. thead+="<th width='20%'>按钮编码</th>";
  192. thead+="<th width='20%'>所属菜单</th>";
  193. thead+="<th width='20%'>排序号</th>";
  194. thead+="<th width='20%'>操作</th>";
  195. $("#lietou").empty();
  196. $("#lietou").append(thead);
  197. $.post($.app + "/menu/getFuncDataByMid", {
  198. mid : data
  199. }, function(data) {
  200. if(data){
  201. var str="";
  202. for(var i=0;i<data.length;i++){
  203. var func = data[i];
  204. str+=" <tr class='tr_bg'>";
  205. str+="<td >"+func.name+"</td>";
  206. str+="<td >"+func.code+"</td>";
  207. str+="<td >"+func.mid+"</td>";
  208. str+="<td >"+func.sortno+"</td>";
  209. str+="<td > " +
  210. "<a class='btn btn-default btn-xs' href='#' onclick=\"menu.main.funcedit('"+func.id+"')\">"+
  211. "<i class='glyphicon glyphicon-pencil'></i>编辑</a> "+
  212. "<a class='btn btn-default btn-xs' href='#' onclick=\"menu.main.funcdel('"+func.id+"','"+func.mid+"')\">"+
  213. "<i class='glyphicon glyphicon-trash'></i>删除</a> "+
  214. "</td>";
  215. str+=" </tr >";
  216. }
  217. $("#liebiao").empty();
  218. $("#liebiao").append(str);
  219. }
  220. }, "json");
  221. }
  222. //删除菜单某个节点时,列表刷新同时树节点也刷新
  223. menu.main.funcdel=function(id,pdata){
  224. $.confirm({
  225. title: '确认框',
  226. content: '确认删除吗',
  227. confirm: function(){
  228. $.post($.app + "/menu/funcdelete", {
  229. id : id
  230. }, function(data) {
  231. if (data.success) {
  232. $.alert({
  233. title: '提示',
  234. content: '操作成功',
  235. confirm: function(){
  236. menu.main.initfunctable(pdata);
  237. // var selNode = menu.main.treeObj.getNodesByParam("id",id,null);
  238. // if(selNode){
  239. // menu.main.treeObj.removeNode(selNode[0]);
  240. // }
  241. }
  242. });
  243. } else {
  244. $.alert({
  245. title: '提示',
  246. content: data.message,
  247. confirm: function(){
  248. }
  249. });
  250. }
  251. }, "json");
  252. },
  253. cancel: function(){
  254. }
  255. });
  256. }
  257. //菜单编辑
  258. menu.main.funcedit=function(id){
  259. $.post($.app + "/menu/funcedit", {
  260. id : id
  261. }, function(data) {
  262. menu.main.showfuncdiv();
  263. if (data) {
  264. $('#editid').val(data.id);
  265. $('#editmid').val(data.mid);
  266. $('#editname').val(data.name);
  267. $('#editcode').val(data.code);
  268. $('#editsortno').val(data.sortno);
  269. menu.main.show();
  270. }
  271. }, "json");
  272. }
  273. menu.main.funcadd=function(){
  274. menu.main.funcclearForm();
  275. menu.main.showfuncdiv();
  276. menu.main.show();
  277. }
  278. menu.main.funcclearForm=function(){
  279. $('#editid').val("");
  280. $('#editname').val("");
  281. $('#editcode').val("");
  282. $('#editsortno').val("");
  283. }
  284. //保存后刷新数据和树节点,关闭弹出框
  285. menu.main.funcsave=function(){
  286. $.ajax({
  287. url:$.app+"/menu/funcsave",
  288. data:$("#funcaddform").serialize(),
  289. type:"post",
  290. dataType:"json",
  291. success:function(data){//ajax返回的数据
  292. if (data.success) {
  293. $.alert({
  294. title: '提示',
  295. content: '操作成功',
  296. confirm: function(){
  297. menu.main.initfunctable($('#editmid').val());
  298. // var selNode = menu.main.treeObj.getNodesByParam("id",$('#menueditpid').val(),null);
  299. // if(selNode){
  300. // menu.main.treeObj.reAsyncChildNodes(selNode[0], "refresh",false);
  301. // }
  302. menu.main.close();
  303. }
  304. });
  305. }else {
  306. $.alert({
  307. title: '提示',
  308. content: data.message,
  309. confirm: function(){
  310. }
  311. });
  312. }
  313. }
  314. });
  315. }