index.html 8.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>TODO supply a title</title>
  5. {include file="../application/manage/view/commons/headers.html" }
  6. <link href="/static/js/ztree/css/zTreeStyle/zTreeStyle.css" rel="stylesheet" type="text/css" />
  7. <script src="/static/js/ztree/js/jquery.ztree.all.min.js" type="text/javascript" ></script>
  8. <style type="text/css">
  9. .ztree li span.button.add {margin-left:2px; margin-right: -1px; background-position:-144px 0; vertical-align:top; *vertical-align:middle}
  10. </style>
  11. <script type="text/javascript">
  12. var curMenu = null, zTree_Menu = null;
  13. var setting = {
  14. view: {
  15. addHoverDom: addHoverDom,removeHoverDom: removeHoverDom,
  16. showLine: true, selectedMulti: false, dblClickExpand: false
  17. },
  18. data: { simpleData: { enable: true } },
  19. callback: {
  20. onNodeCreated: onNodeCreated,
  21. beforeClick: beforeClick,
  22. beforeEditName: beforeEditName,
  23. beforeRemove:beforeRemove
  24. },
  25. edit: {
  26. enable: true,
  27. editNameSelectAll: true,
  28. showRemoveBtn: true,
  29. showRenameBtn: true
  30. },
  31. async: {
  32. enable: true,
  33. url:"/manage/frontmenu/menudata",
  34. autoParam:["id", "pId=pid", "name=n", "level=lv"],
  35. otherParam:{"otherParam":"zTreeAsyncTest"},
  36. dataFilter: filter
  37. }
  38. };
  39. function filter(treeId, parentNode, childNodes) {
  40. if (!childNodes) return null;
  41. for (var i=0, l=childNodes.length; i<l; i++) {
  42. childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.');
  43. }
  44. return childNodes;
  45. };
  46. function beforeRemove(treeId, treeNode){
  47. if(confirm("确定删除节点("+treeNode.name+")?")){
  48. $.ajax({
  49. url:"/manage/frontmenu/delete",
  50. data:"id="+treeNode.id+"&t="+new Date(),
  51. success:function(rs){
  52. if(rs=="delete_ok"){
  53. document.location.reload();
  54. }else{
  55. alert("操作失败!");
  56. }
  57. }
  58. });
  59. }
  60. return false;
  61. }
  62. function onNodeCreated(){
  63. zTree_Menu = $.fn.zTree.getZTreeObj("menutree");
  64. curMenu = zTree_Menu.getNodes()[0].children[0].children[0];
  65. zTree_Menu.selectNode(curMenu);
  66. var a = $("#" + zTree_Menu.getNodes()[0].tId + "_a");
  67. a.addClass("cur");
  68. }
  69. function beforeEditName(treeId, treeNode) {
  70. var zTree = $.fn.zTree.getZTreeObj("menutree");
  71. zTree.selectNode(treeNode);
  72. $("#myform").find("input[name='id']").val(treeNode.id);
  73. $("#myform").find("input[name='pid']").val(treeNode.pId);
  74. $("#myform").find("input[name='name']").val(treeNode.name);
  75. $("#myform").find("input[name='url']").val(treeNode.url);
  76. $("#myform").find("input[name='ordernum']").val(treeNode.ordernum);
  77. $("#myform").find("input[name='icon_name']").val(treeNode.icon_name);
  78. editWin.window("open");
  79. return false;
  80. }
  81. var newCount = 1;
  82. function addHoverDom(treeId, treeNode) {
  83. var sObj = $("#" + treeNode.tId + "_span");
  84. if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return;
  85. var addStr = "<span class='button add' id='addBtn_" + treeNode.tId
  86. + "' title='add node' onfocus='this.blur();'></span>";
  87. sObj.after(addStr);
  88. var btn = $("#addBtn_"+treeNode.tId);
  89. if (btn) btn.bind("click", function(){
  90. //var zTree = $.fn.zTree.getZTreeObj("menutree");
  91. //zTree.addNodes(treeNode, {id:(100 + newCount), pId:treeNode.id, name:"new node" + (newCount++)});
  92. showAddChildMenuView(treeNode.id);
  93. return false;
  94. });
  95. };
  96. // 显示添加窗口
  97. function showAddChildMenuView(pid){
  98. editWin.window("open");
  99. $("#myform").find("input[name='pid']").val(pid);
  100. $("#myform").find("input[name='id']").val("");
  101. $("#myform").find("input[name='name']").val("");
  102. $("#myform").find("input[name='url']").val("");
  103. $("#myform").find("input[name='ordernum']").val("");
  104. $("#myform").find("input[name='icon_name']").val("");
  105. }
  106. // 保存菜单
  107. function save(){
  108. var data=$("#myform").serialize();
  109. $.ajax({
  110. url:"/manage/frontmenu/update",
  111. contentType: "application/x-www-form-urlencoded; charset=utf-8",
  112. data:data+"&t="+new Date(),
  113. success:function(rs){
  114. if(rs=="insert_ok"){
  115. document.location.reload();
  116. }else if(rs=="update_ok"){
  117. document.location.reload();
  118. }else{
  119. alert("操作失败!");
  120. }
  121. },error:function(e,e1,e2){
  122. alert(e2);
  123. }
  124. });
  125. }
  126. function removeHoverDom(treeId, treeNode) {
  127. $("#addBtn_"+treeNode.tId).unbind().remove();
  128. };
  129. function beforeClick(treeId, node) {
  130. if (node.isParent) {
  131. if (node.level === 0) {
  132. var pNode = curMenu;
  133. while (pNode && pNode.level !==0) {
  134. pNode = pNode.getParentNode();
  135. }
  136. if (pNode !== node) {
  137. var a = $("#" + pNode.tId + "_a");
  138. a.removeClass("cur");
  139. zTree_Menu.expandNode(pNode, false);
  140. }
  141. a = $("#" + node.tId + "_a");
  142. a.addClass("cur");
  143. var isOpen = false;
  144. for (var i=0,l=node.children.length; i<l; i++) {
  145. if(node.children[i].open) {
  146. isOpen = true;
  147. break;
  148. }
  149. }
  150. if (isOpen) {
  151. zTree_Menu.expandNode(node, true);
  152. curMenu = node;
  153. } else {
  154. zTree_Menu.expandNode(node.children[0].isParent?node.children[0]:node, true);
  155. curMenu = node.children[0];
  156. }
  157. } else {
  158. zTree_Menu.expandNode(node);
  159. }
  160. }
  161. return !node.isParent;
  162. }
  163. // 菜单编辑框
  164. var editWin;
  165. function initEditWin(){
  166. editWin=$("#editWin").dialog({
  167. modal: true,
  168. title: "菜单信息编辑",
  169. closed: true,
  170. iconCls: 'icon-edit',
  171. width:500, height:350,
  172. left:"25%",top:50,
  173. modal: true, cache: false,resizable:true,draggable:true,
  174. collapsible:false
  175. });
  176. editWin.window("close");
  177. }
  178. $(document).ready(function(){
  179. $.fn.zTree.init($("#menutree"), setting);
  180. initEditWin();
  181. });
  182. function showWin(){
  183. editWin.window("open");
  184. }
  185. </script>
  186. </head>
  187. <body>
  188. <div id="menu" data-options="region:'west',iconCls:'icon-forward',split:true,border:false" title="功能导航" style="height:100%;width: 100%; overflow: auto;" >
  189. <ul id="menutree" class="ztree" style="height:100%;width: 100%;padding: 0px; margin: 0px;"></ul>
  190. </div>
  191. <div id="editWin" buttons="#dlg-buttons" auth_id="AUTH_001" auth_name="编码框" >
  192. <form id="myform" action="" method="post" >
  193. <input name="id" type="hidden" />
  194. <table id="editGrid" fitColumns="false" style="fitColumns:false" >
  195. <thead>
  196. <tr>
  197. <th height="32" width="22%" data-options="field:'code'">名称</th>
  198. <th width="80%" data-options="field:'name'">值</th>
  199. </tr>
  200. </thead>
  201. <tbody>
  202. <tr>
  203. <td height="32" align="right" >上级菜单:</td>
  204. <td><input name="pid" type="text" size="35" /></td>
  205. </tr>
  206. <tr>
  207. <td height="32" align="right" >菜单名称:</td>
  208. <td><input name="name" type="text" size="35" /></td>
  209. </tr>
  210. <tr>
  211. <td height="32" align="right" >打开网址:</td>
  212. <td><input name="url" type="text" size="35" /></td>
  213. </tr>
  214. <tr>
  215. <td height="32" align="right" >ICON图标:</td>
  216. <td><input name="icon_name" type="text" size="35" /></td>
  217. </tr>
  218. <tr>
  219. <td height="32" align="right" >排序号码:</td>
  220. <td><input name="ordernum" type="text" size="15" /></td>
  221. </tr>
  222. </tbody>
  223. </table>
  224. </form>
  225. <div id="dlg-buttons">
  226. <table cellpadding="0" cellspacing="0" style="width:100%">
  227. <tr>
  228. <td>
  229. <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-save',plain:true" onclick="save()" >保存</a>
  230. <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-cancel',plain:true" onclick="editWin.window('close')" >关闭</a>
  231. </td>
  232. </tr>
  233. </table>
  234. </div>
  235. </div>
  236. </body>
  237. </html>