wxtree.js 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713
  1. var setting = {
  2. view : {
  3. addHoverDom : addHoverDom,
  4. removeHoverDom : removeHoverDom,
  5. selectedMulti : false
  6. },
  7. edit : {
  8. enable : true,//显示编辑图标
  9. editNameSelectAll : false,//取消节点文本被选中
  10. showRemoveBtn : showRemoveBtn,
  11. showRenameBtn : showRenameBtn,
  12. renameTitle : "编辑",
  13. removeTitle : "删除"
  14. },
  15. data : {
  16. simpleData : {
  17. enable : true,
  18. idKey : "id",
  19. pIdKey : "pid",
  20. rootPId : 0
  21. }
  22. },
  23. callback : {
  24. beforeDrag : beforeDrag,
  25. beforeEditName : beforeEditName,
  26. beforeRemove : beforeRemove,
  27. beforeRename : beforeRename,
  28. onRemove : onRemove,
  29. onRename : onRename,
  30. onClick : onClick
  31. }
  32. };
  33. var log, className = "dark";
  34. var newCount = 1;
  35. //节点显示图标
  36. function addHoverDom(treeId, treeNode) {
  37. //alert("pId="+treeNode.pId+",tId="+treeNode.tId+",treeId="+treeId);
  38. if (treeNode.editNameFlag || $("#addBtn_" + treeNode.tId).length > 0)
  39. return;
  40. if (treeNode.pid == 0) {
  41. var sObj = $("#" + treeNode.tId + "_span");
  42. var addStr = "<span class='button add' id='addBtn_" + treeNode.tId
  43. + "' title='添加' onfocus='this.blur();'></span>";
  44. sObj.after(addStr);
  45. }
  46. var btn = $("#addBtn_" + treeNode.tId);
  47. var zTree = $.fn.zTree.getZTreeObj("treeDemo");
  48. if (btn)
  49. btn.bind("click", function() {
  50. //数据库中存在自定义菜单
  51. if (array.length > 1) {
  52. //查找最大节点的id
  53. for (var i = 0; i < array.length; i++) {
  54. if (array[i] != null) {
  55. var max = array[i].id;
  56. for (var x = 1; x < array.length; x++) {
  57. if (array[x] != null && array[x].id > max) {
  58. max = array[x].id;
  59. }
  60. }
  61. }
  62. }
  63. newCount = max - 99;
  64. }
  65. var sNodes = zTree.getNodesByParam("pid", treeNode.id, null);
  66. var dbcount = $('#dbc').val(); //数据库中存在的菜单节点数
  67. var curcount = $('#cur').val();//当前菜单节点数
  68. if (dbcount == curcount) {
  69. //添加一级节点
  70. if (treeNode.pid == 0 && treeNode.id == 0) {
  71. if (sNodes.length <= 3) {
  72. var cur = $('#cur').val();
  73. $('#cur').val(parseInt(cur) + 1);
  74. zTree.addNodes(treeNode, {
  75. id : 100 + newCount,
  76. pid : treeNode.id,
  77. name : "node" + (newCount++),
  78. content : "",
  79. url : "",
  80. type : 1
  81. //"click": clkNode(treeNode.tId)
  82. });
  83. //----------------显示编辑区----------------begin
  84. var v = 99 + newCount;
  85. var nd = zTree.getNodeByParam("id", v, null);
  86. showInfo(nd);
  87. //----------------显示编辑区----------------end
  88. return;
  89. } else {
  90. alert("最多只能添加3个一级菜单!");
  91. return;
  92. }
  93. }
  94. //添加二级节点
  95. if (treeNode.pid == 0 && treeNode.id != 0) {
  96. if (sNodes.length < 5) {
  97. var cur = $('#cur').val();
  98. $('#cur').val(parseInt(cur) + 1);
  99. zTree.addNodes(treeNode, {
  100. id : 100 + newCount,
  101. pid : treeNode.id,
  102. name : "node" + (newCount++),
  103. content : "",
  104. url : "",
  105. type : 1
  106. //"click": clkNode(treeNode.tId)
  107. });
  108. //----------------显示编辑区----------------begin
  109. var v = 99 + newCount;
  110. var nd = zTree.getNodeByParam("id", v, null);
  111. showInfo(nd);
  112. //----------------显示编辑区----------------end
  113. return;
  114. } else {
  115. alert("最多只能添加5个二级菜单!");
  116. return;
  117. }
  118. }
  119. } else {
  120. alert('请保存当前节点');
  121. return false;
  122. }
  123. return false;
  124. });
  125. }
  126. function beforeDrag(treeId, treeNodes) {
  127. return false;
  128. }
  129. //删除节点事件
  130. function beforeRemove(treeId, treeNode) {
  131. //删除一级节点只在其没有二级节点时
  132. var zTree = $.fn.zTree.getZTreeObj("treeDemo");
  133. if (treeNode.pid == 0) {
  134. var sNodes = zTree.getNodesByParam("pid", treeNode.id, null);
  135. if (sNodes.length > 0) {
  136. alert("请确认该节点没有二级节点!");
  137. return false;
  138. }
  139. }
  140. className = (className === "dark" ? "" : "dark");
  141. showLog("[ " + getTime() + " beforeRemove ]&nbsp;&nbsp;&nbsp;&nbsp; "
  142. + treeNode.name);
  143. zTree.selectNode(treeNode);
  144. return confirm("确认删除 节点 -- " + treeNode.name + " 吗?");
  145. }
  146. //删除节点
  147. function onRemove(e, treeId, treeNode) {
  148. $('#rndiv').hide();
  149. var treedata = $('#treedata').val();
  150. var cur = $('#cur').val();
  151. $('#cur').val(parseInt(cur) - 1);
  152. //treedata有保存节点才删除
  153. if (treedata.indexOf(treeNode.id) > -1) {
  154. var dbc = $('#dbc').val();
  155. $('#dbc').val(parseInt(dbc) - 1);
  156. }
  157. if(array.length == 2){
  158. //删除全部节点,只剩下根节点
  159. //$.post(basePath + 'defindmenu/deleteAllNodes', null, null);
  160. }
  161. //重新组装treedata字串
  162. var nodeJson = "";
  163. for (var i = 0; i < array.length; i++) {
  164. if (array[i] != null) {
  165. if (array[i].id == treeNode.id) {
  166. if (array[i + 1] != null) {
  167. nodeJson += '{' + 'id:' + array[i + 1].id + ',pid:'
  168. + array[i + 1].pid + ',name:"' + array[i + 1].name
  169. + '",url:"' + array[i + 1].url + '",content:"'
  170. + array[i + 1].content + '",type:'
  171. + array[i + 1].type + '},';
  172. }
  173. array.remove(i);
  174. } else {
  175. nodeJson += '{' + 'id:' + array[i].id + ',pid:' + array[i].pid
  176. + ',name:"' + array[i].name + '",url:"' + array[i].url
  177. + '",content:"' + array[i].content + '",type:'
  178. + array[i].type + '},';
  179. }
  180. }
  181. }
  182. $('#treedata').val(nodeJson);
  183. //alert($('#treedata').val());
  184. showLog("[ " + getTime() + " onRemove ]&nbsp;&nbsp;&nbsp;&nbsp; "
  185. + treeNode.name);
  186. }
  187. //点击编辑图标弹出编辑区
  188. function beforeEditName(treeId, treeNode) {
  189. showInfo(treeNode);
  190. }
  191. //
  192. function beforeRename(treeId, treeNode, newName, isCancel) {
  193. className = (className === "dark" ? "" : "dark");
  194. //菜单上编辑名称,同步右边菜单名称显示
  195. $('#mname').val(newName);
  196. showLog((isCancel ? "<span style='color:red'>" : "") + "[ " + getTime()
  197. + " beforeRename ]&nbsp;&nbsp;&nbsp;&nbsp; " + treeNode.name
  198. + (isCancel ? "</span>" : ""));
  199. if (newName.length == 0) {
  200. alert("菜单名称不能为空!");
  201. var zTree = $.fn.zTree.getZTreeObj("treeDemo");
  202. setTimeout(function() {
  203. zTree.editName(treeNode)
  204. }, 10);
  205. return false;
  206. }
  207. return true;
  208. }
  209. //暂不使用
  210. function onRename(e, treeId, treeNode, isCancel) {
  211. //菜单上编辑名称,同步右边菜单名称显示
  212. //$('#mname').val(treeNode.name);
  213. //showLog((isCancel ? "<span style='color:red'>":"") + "[ "+getTime()+" onRename ]&nbsp;&nbsp;&nbsp;&nbsp; " + treeNode.name + (isCancel ? "</span>":""));
  214. }
  215. //显示删除图标
  216. function showRemoveBtn(treeId, treeNode) {
  217. if (treeNode.id == 0) {
  218. return !treeNode.isFirstNode;//第一个节点不显示删除图标
  219. }
  220. if (treeNode.id > 0) {
  221. return treeNode;
  222. }
  223. }
  224. //显示编辑图标
  225. function showRenameBtn(treeId, treeNode) {
  226. if (treeNode.id == 0) {
  227. return !treeNode.isFirstNode;
  228. }
  229. if (treeNode.id > 0) {
  230. return treeNode;
  231. }
  232. }
  233. //显示图标
  234. function showUrlBtn(treeId, treeNode) {
  235. var addStr1 = "<span class='button ico_docu' style='background:url(../../css/zTreeStyle/img/diy/9.png) 0 0 no-repeat;' id='1' title='删除' onfocus='this.blur();'></span>";
  236. sObj.after(addStr1);
  237. return treeNode;
  238. }
  239. function showLog(str) {
  240. if (!log)
  241. log = $("#log");
  242. log.append("<li class='" + className + "'>" + str + "</li>");
  243. if (log.children("li").length > 8) {
  244. log.get(0).removeChild(log.children("li")[0]);
  245. }
  246. }
  247. function getTime() {
  248. var now = new Date(), h = now.getHours(), m = now.getMinutes(), s = now
  249. .getSeconds(), ms = now.getMilliseconds();
  250. return (h + ":" + m + ":" + s + " " + ms);
  251. }
  252. function removeHoverDom(treeId, treeNode) {
  253. $("#addBtn_" + treeNode.tId).unbind().remove();
  254. };
  255. function selectAll() {
  256. var zTree = $.fn.zTree.getZTreeObj("treeDemo");
  257. zTree.setting.edit.editNameSelectAll = $("#selectAll").attr("checked");
  258. }
  259. //保存整个树菜单
  260. function saveMenu() {
  261. var trdata = $("#treedata").val();
  262. //alert(trdata);
  263. if (trdata != null && trdata.length > 54) {
  264. document.menuform.action = basePath + "/admin/menu/savemenu";
  265. document.menuform.submit();
  266. alert('保存成功!');
  267. } else {
  268. alert('请点击【自定义菜单列表】的【+】按钮进行编辑及保存!');
  269. }
  270. }
  271. function sltImg() {
  272. var url = basePath + '/admin/wx/sltlist';
  273. /*var attr = 'dialogWidth=1000px;dialogHeight=500px;status=no;scroll=yes;dialogTop=150px;dialogLeft=200px;';
  274. var rs = window.showModalDialog(url, "", attr);
  275. //alert('rs = '+rs[1]);
  276. if (rs != null && rs != '') {
  277. $("#prvimg").html(rs[0]);
  278. $("#rid").val(rs[1]);
  279. }*/
  280. var attr = 'width=1000px,height=500px,status=no,scroll=yes,top=150px,left=200px';
  281. //弹窗改为window.open()解决谷歌浏览器不支持弹窗的特性
  282. window.open(url, window, attr);
  283. $("#preViewDiv").show();
  284. }
  285. //创建菜单
  286. function createMenu() {
  287. //创建菜单前组装菜单数据
  288. getMenuJson();//此方法赋值jsondata
  289. var jsondata = $("#jsondata").val();
  290. if (jsondata != null && jsondata.length > 13) {
  291. document.menuform.action = basePath + "/admin/menu/createmenu";
  292. document.menuform.submit();
  293. } else {
  294. alert('请点击【自定义菜单列表】的【+】按钮进行编辑及保存!');
  295. }
  296. }
  297. //菜单发布提示
  298. function showmsg() {
  299. var rs = $('#rs').val();
  300. if (rs != null && rs != "") {
  301. if (rs == "yes") {
  302. rs = "菜单发布成功!";
  303. } else if (rs == "no") {
  304. rs = "菜单发布失败,可能编辑菜单后没有点击【保存】或最后没有点击【确定】保存整个树菜单!";
  305. } else {
  306. rs = "未经授权!";
  307. }
  308. alert(rs);
  309. }
  310. }
  311. //点击节点
  312. function onClick() {
  313. var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
  314. var sltNode = treeObj.getSelectedNodes();
  315. if (sltNode != null && sltNode.length > 0) {
  316. var treeNode = sltNode[0];
  317. //显示编辑区
  318. if (treeNode != null && treeNode.id != 0)
  319. showInfo(treeNode);
  320. }
  321. }
  322. //显示编辑区
  323. function showInfo(treeNode) {
  324. $('#rndiv').show();
  325. //编辑区赋值
  326. $('#mname').val(treeNode.name);
  327. $('#mname').focus();
  328. $('#tid').val(treeNode.id);//保存id到隐藏域
  329. $('#trid').val(treeNode.tId);//保存tId到隐藏域
  330. var nodeType = treeNode.type;
  331. var slt = $("#type").get(0);
  332. var val = slt.options[nodeType - 1].value;
  333. if (val != null) {
  334. slt[val - 1].selected = true;
  335. }
  336. if (nodeType == 1) { //文本
  337. $('#url').val("");
  338. if (treeNode.content == "") {
  339. $('#content').val("");
  340. } else {
  341. $('#content').val(treeNode.content);
  342. }
  343. $('#cont').show();
  344. $('#pic').hide();
  345. $('#lnk').hide();
  346. } else if (nodeType == 2) {//图文
  347. $('#pic').show();
  348. showImgTxtHtml(treeNode.id);
  349. $('#preViewDiv').show();
  350. $('#preViewDiv').addClass("divimg");
  351. $('#cont').hide();
  352. $('#lnk').hide();
  353. } else if (nodeType == 3) {//链接
  354. if (treeNode.url == "") {
  355. $('#url').val("");
  356. } else {
  357. $('#url').val(treeNode.url);
  358. }
  359. $('#lnk').show();
  360. $('#cont').hide();
  361. $('#pic').hide();
  362. }
  363. }
  364. //显示菜单类型
  365. function showdiv(obj) {
  366. var tid = $('#trid').val();
  367. var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
  368. var treeNode = treeObj.getNodeByTId(tid);
  369. var val = obj.value;
  370. if (val == 1) { //文本
  371. if (treeNode.type == 1) {
  372. $('#content').val(treeNode.content);
  373. } else {
  374. $('#content').val('');
  375. }
  376. $('#cont').show();
  377. $('#pic').hide();
  378. $('#lnk').hide();
  379. } else if (val == 2) {//图文
  380. var treedata = $('#treedata').val();
  381. $('#pic').show();
  382. if (treedata.indexOf(treeNode.id) > -1 && treeNode.type == 2) {
  383. showImgTxtHtml(treeNode.id);//查询图片html
  384. } else {
  385. $('#url').val("");
  386. $('#preViewDiv').html('');
  387. $('#content').val("");
  388. }
  389. $('#preViewDiv').show();
  390. $('#preViewDiv').addClass("divimg");
  391. $('#cont').hide();
  392. $('#lnk').hide();
  393. } else if (val == 3) {//链接
  394. if (treeNode.type == 3) {
  395. $('#url').val(treeNode.url);
  396. } else {
  397. $('#content').val("");
  398. }
  399. $('#lnk').show();
  400. $('#cont').hide();
  401. $('#pic').hide();
  402. }
  403. }
  404. //保存节点
  405. function saveNode() {
  406. var rid = $('#picandtext').val();
  407. var imghtml = $('#preViewDiv').html();
  408. var tid = $('#tid').val();
  409. var url = $('#url').val();
  410. var type = $('#type').val();
  411. var name = $('#mname').val();
  412. var cont = $('#content').val();
  413. //节点对应图文显示html
  414. if (imghtml != null && imghtml != "") {
  415. $("#duiying").val($("#duiying").val() + tid + "$" + imghtml + "$");
  416. }
  417. $('#imghtml').val(imghtml);
  418. if (name == "") {
  419. alert('菜单名称不能为空!');
  420. return false;
  421. } else {
  422. if (name.indexOf("\"") > -1 || name.indexOf("\“") > -1
  423. || name.indexOf("\”") > -1) {
  424. alert('不能包含双引号');
  425. return false;
  426. }
  427. if (tid == 0 && name.length > 5) {
  428. alert('一级菜单名称不能超过5个汉字!');
  429. return false;
  430. } else if (tid != 0 && name.length > 8) {
  431. alert('二级菜单名称不能超过8个汉字!');
  432. return false;
  433. }
  434. }
  435. if (url != null && url != "" && url.indexOf('http://') < 0) {
  436. alert('链接必须以http://开头!');
  437. return false;
  438. }
  439. if (url.indexOf("\"") > -1 || url.indexOf("\“") > -1
  440. || url.indexOf("\”") > -1) {
  441. alert('不能包含双引号');
  442. return false;
  443. }
  444. if (cont.indexOf("\"") > -1 || cont.indexOf("\“") > -1
  445. || cont.indexOf("\”") > -1) {
  446. alert('不能包含双引号');
  447. return false;
  448. }
  449. var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
  450. var nd = treeObj.getNodeByParam("id", tid, null);//根据节点id查找
  451. //节点赋值
  452. nd.name = name;
  453. nd.type = type;
  454. if (type == 1) { //文本
  455. nd.content = cont;
  456. } else if (type == 2) {//图文
  457. nd.content = rid;
  458. } else if (type == 3) {//链接
  459. nd.url = url;
  460. }
  461. treeObj.updateNode(nd);//刷新节点
  462. //alert('name = '+nd.name);
  463. var newBean = new Bean();
  464. newBean.id = nd.id;
  465. newBean.pid = nd.pid;
  466. newBean.url = nd.url;
  467. newBean.name = nd.name;
  468. newBean.type = nd.type;
  469. newBean.content = nd.content;
  470. //所有节点的treedata
  471. var data = $('#treedata').val();
  472. var nodeJson = "";
  473. if (data.indexOf(tid) == -1) {
  474. //alert('是新节点');
  475. array.push(newBean);
  476. var cur = $('#dbc').val();
  477. $('#dbc').val(parseInt(cur) + 1);
  478. }
  479. for (var i = 0; i < array.length; i++) {
  480. if (array[i] != null) {
  481. if (array[i].id == newBean.id) {//已存在的节点则修改
  482. array[i] = newBean;
  483. nodeJson += '{' + 'id:' + newBean.id + ',pid:' + newBean.pid
  484. + ',name:"' + newBean.name + '",url:"' + newBean.url
  485. + '",content:"' + newBean.content + '",type:'
  486. + newBean.type + '},';
  487. //'",url:"' + newBean.url + '",content:"' + newBean.content + '",type:' + newBean.type + ',imghtml:"' + newBean.imghtml + '"},';
  488. //alert('修改当前节点信息--------'+ nodeJson);
  489. } else {
  490. nodeJson += '{' + 'id:' + array[i].id + ',pid:' + array[i].pid
  491. + ',name:"' + array[i].name +
  492. //'",url:"' + array[i].url + '",content:"' + array[i].content + '",type:' + array[i].type + ',imghtml:"' + array[i].imghtml +'"},';
  493. '",url:"' + array[i].url + '",content:"'
  494. + array[i].content + '",type:' + array[i].type + '},';
  495. //alert('拼接原来的节点信息------- '+ nodeJson);
  496. }
  497. }
  498. }
  499. nodeJson = nodeJson.substring(0, nodeJson.length - 1);
  500. $('#treedata').val(nodeJson);//保存用来显示菜单
  501. alert('保存菜单【' + newBean.name + '】成功!');
  502. //alert('treedata = '+$('#treedata').val());
  503. }
  504. //组装整个树菜单JSON数据
  505. function getMenuJson() {
  506. //基本菜单格式,也就是一个节点的信息 node = {"name":"短信笑话","type":"click","url":"","key":"13"}
  507. //只有一级没二级的菜单格式 {"name":"短信笑话","type":"click","url":"","key":"13"}
  508. //一级下有二级的菜单格式 {"name":"游戏娱乐","sub_button":[node1, node2,]}
  509. //最外层的格式 {"button":[ ]}
  510. var zTree = $.fn.zTree.getZTreeObj("treeDemo");
  511. //var alltreeObj = zTree.transformToArray(zTree.getNodes());
  512. var data = "", str = "";
  513. //查找一级节点
  514. var nodes = zTree.getNodesByParam("pid", "0", null);
  515. for (var j = 1; j < nodes.length; j++) {
  516. var name = nodes[j].name;
  517. var type = nodes[j].type;
  518. var url = nodes[j].url;
  519. var key = nodes[j].id;
  520. var id = nodes[j].id;
  521. //alert('id='+id);
  522. //查找二级节点集合
  523. var nds = zTree.getNodesByParam("pid", id, null);
  524. var nd2 = '';
  525. for (var k = 0; k < nds.length; k++) {
  526. if (nds[k] != null) {
  527. type = nds[k].type;
  528. if (type == 1 || type == 2) {//文本、图文
  529. type = 'click';
  530. } else if (type == 3) { //链接
  531. type = 'view';
  532. }
  533. nd2 += '{"name":"' + nds[k].name + '","type":"' + type
  534. + '","url":"' + nds[k].url + '","key":"' + nds[k].id
  535. + '"' + '},';
  536. }
  537. }
  538. //alert('nd2 ='+nd2);
  539. //一级下有二级
  540. if (nd2 != '') {
  541. str = '{"name":"' + name + '","sub_button":[' + nd2 + ']},';
  542. } else {//只有一级没有二级
  543. if (type == 1 || type == 2) { //文本、图文
  544. type = 'click';
  545. } else if (type == 3) { //链接
  546. type = 'view';
  547. }
  548. str = '{"name":"' + name + '","type":"' + type + '","url":"' + url
  549. + '","key":"' + key + '"' + '},';
  550. }
  551. data += str;
  552. }
  553. var json = '{"button":[' + data + ']}';
  554. //alert('json ='+json);
  555. $("#jsondata").val(json);//传到后台创建菜单
  556. }
  557. //删除数组
  558. Array.prototype.remove = function(dx) {
  559. if (isNaN(dx) || dx > this.length) {
  560. return false;
  561. }
  562. for (var i = 0, n = 0; i < this.length; i++) {
  563. if (this[i] != this[dx]) {
  564. this[n++] = this[i];
  565. }
  566. }
  567. this.length -= 1;
  568. };
  569. function clkNode(tid) {
  570. var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
  571. var treeNode = treeObj.getNodeByTId(tid);
  572. alert('treeNode.name = ' + treeNode.name);
  573. //showdiv(treeNode);
  574. }
  575. //节点Bean数组
  576. function Bean() {
  577. var id = {};
  578. var pid = {};
  579. var url = {};
  580. var name = {};
  581. var content = {};
  582. }
  583. //---------------菜单预览-------------------
  584. /* <ul id="preview_screen1" class="pre_nav_list">
  585. <li id="preview_0" class="previewlevel1 pre_nav ">
  586. <a href="javascript:;" class="pre_nav_btn">一见钟情</a>
  587. <ul class="pre_sub_nav_list" style=""><span class="pre_sub_nav_arrow"></span>
  588. <li class="previewlevel2 pre_sub_nav"><a href="javascript:;" class="pre_sub_nav_btn">一见如故</a></li>
  589. <li class="previewlevel2 pre_sub_nav"><a href="javascript:;" class="pre_sub_nav_btn">一吻定情</a></li>
  590. </ul>
  591. </li>
  592. <li id="preview_1" class="previewlevel1 pre_nav ">
  593. <a href="javascript:;" class="pre_nav_btn">a</a>
  594. </li>
  595. <li id="preview_2" class="previewlevel1 pre_nav ">
  596. <a href="javascript:;" class="pre_nav_btn">c</a>
  597. </li>
  598. </ul>*/
  599. function previewMenu() {
  600. var zTree = $.fn.zTree.getZTreeObj("treeDemo");
  601. //查找一级节点
  602. var nodes = zTree.getNodesByParam("pid", "0", null);
  603. var html = "", ndstr1 = "";
  604. for (var j = 1; j < nodes.length; j++) {
  605. if (nodes[j] != null) {
  606. var id = nodes[j].id;
  607. var name = nodes[j].name;//一级菜单名称
  608. ndstr1 = '<li id="preview_' + j
  609. + '" class="previewlevel1 pre_nav ">'
  610. + '<a href="javascript:;" class="pre_nav_btn" onclick="show('
  611. + j + ');">' + name + '</a></li>';
  612. //查找二级节点集合
  613. var nds = zTree.getNodesByParam("pid", id, null);
  614. var ndstr2 = "";
  615. var str2 = "";
  616. if (j == 2) {
  617. str2 = '<ul class="pre_sub_nav_list" id="show' + j
  618. + '" style="display:none;margin-left:90px;"><span class="pre_sub_nav_arrow"></span>';
  619. } else if (j == 3) {
  620. str2 = '<ul class="pre_sub_nav_list" id="show' + j
  621. + '" style="display:none;margin-left:150px;"><span class="pre_sub_nav_arrow"></span>';
  622. } else {
  623. str2 = '<ul class="pre_sub_nav_list" id="show' + j
  624. + '" style="display:none;"><span class="pre_sub_nav_arrow"></span>';
  625. }
  626. for (var k = 0; k < nds.length; k++) {
  627. if (nds[k] != null) {
  628. ndstr2 += '<li class="previewlevel2 pre_sub_nav" style="letter-spacing:0px;"><a href="javascript:;" class="pre_sub_nav_btn">'
  629. + nds[k].name + '</a></li>';
  630. }
  631. }
  632. }
  633. html += ndstr1 + str2 + ndstr2 + '</ul>';
  634. }
  635. html = '<ul id="preview_screen1" class="pre_nav_list">' + html + '</ul>';
  636. //alert(html);
  637. $('#pre_nav_wrapper').html(html);
  638. $('#preview_box').show();
  639. }
  640. //显示二级菜单
  641. function show(id) {
  642. for (var i = 1; i < 4; i++) {
  643. if (i == id) {
  644. $('#show' + id).show();
  645. } else {
  646. $('#show' + i).hide();
  647. }
  648. }
  649. }
  650. //关闭预览
  651. function clo() {
  652. $('#preview_box').hide();
  653. }
  654. //显示图文html
  655. function showImgTxtHtml(id) {
  656. $.post(basePath + "/admin/menu/html",{"menuId":id},function(data){
  657. if(data != null && data != ""){
  658. $('#preViewDiv').html(data);
  659. }
  660. });
  661. }