rpt_tpl_main.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153
  1. /**
  2. * Created by Tony on 2017/6/1.
  3. */
  4. var rptTplObj = {
  5. iniPage: function() {
  6. var me = this
  7. zTreeOprObj.getReportTemplateTree(RT.GrpType.CONSTRUCT);
  8. }
  9. }
  10. var zTreeOprObj = {
  11. treeObj: null,
  12. getReportTemplateTree: function(grpType) {
  13. var me = this, params = {};
  14. params.grpType = grpType;
  15. CommonAjax.postEx("api/getRptTplTree", params, 20000, function(result){
  16. zTreeHelper.createTree(result.data, setting, "rationChapterTree", me);
  17. }, null, null
  18. );
  19. },
  20. addRootNode: function() {
  21. var me = this, rawNode = me.createIniRootNode(), lastNodeId = -1;
  22. if (me.treeObj) {
  23. var rootNodes = me.treeObj.getNodes();
  24. if (rootNodes.length > 0) {
  25. lastNodeId = rootNodes[rootNodes.length - 1].ID;
  26. }
  27. me.addNewNode(rawNode, lastNodeId, function(rst){
  28. var newNodes = [], isSilent = false;
  29. rawNode.ID = rst.data.ID;
  30. rawNode.isParent = false;
  31. rawNode.items = [];
  32. newNodes.push(rawNode);
  33. if (me.treeObj) {
  34. me.treeObj.addNodes(null, -1, newNodes, isSilent);
  35. } else {
  36. me.treeObj = $.fn.zTree.init($("#rationChapterTree"), setting, newNodes);
  37. }
  38. }, null);
  39. }
  40. },
  41. addSubNode: function() {
  42. //
  43. },
  44. addTplNode: function (){
  45. //
  46. },
  47. addNewNode: function(rawNode, lastNodeId, callback, failcallback) {
  48. var params = {};
  49. params.lastNodeId = lastNodeId;
  50. params.rawNodeData = rawNode;
  51. CommonAjax.postEx("api/createTplTreeNode", params, 5000, callback, failcallback, null);
  52. },
  53. createIniRootNode: function() {
  54. var rst = {
  55. ID: -1,
  56. ParentID: -1,
  57. NextSiblingID: -1,
  58. grpType: RT.GrpType.CONSTRUCT,
  59. nodeType: RT.NodeType.NODE,
  60. tplType: RT.TplType.ALL,
  61. userId: userID,
  62. refId: -1,
  63. name: '新增节点'
  64. };
  65. return rst;
  66. },
  67. addHoverDom: function(treeId, treeNode) {
  68. var me = zTreeOprObj, sObj = $("#" + treeNode.tId + "_span");
  69. if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length>0) return;
  70. var addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增子节点' onfocus='this.blur();'></span>";
  71. sObj.after(addStr);
  72. var btn = $("#addBtn_"+treeNode.tId);
  73. if (btn) btn.bind("click", function(){
  74. var rawNode = {ParentID: treeNode.ID, NextSiblingID: -1, name: "新增子节点"}, lastNodeId = -1;
  75. if (treeNode.items.length > 0) {
  76. lastNodeId = treeNode.items[treeNode.items.length - 1].ID;
  77. }
  78. //zTreeOprObj.addNewNode(rawNode, lastNodeId, function(err, rst){
  79. // if (!(err)) {
  80. // var newNodes = [], isSilent = false;
  81. // newNodes.push({ rationRepId: rst.data.rationRepId, ID: rst.data.ID, ParentID: rst.data.ParentID, NextSiblingID:-1, name:"新增子节点",isParent:false, items:[]});
  82. // treeNode.isParent = true;
  83. // if (me.treeObj) {
  84. // me.treeObj.addNodes(treeNode, -1, newNodes, isSilent);
  85. // } else {
  86. // me.treeObj = $.fn.zTree.init($("#rationChapterTree"), setting, newNodes);
  87. // }
  88. // }
  89. //});
  90. });
  91. },
  92. removeHoverDom: function(treeId, treeNode) {
  93. $("#addBtn_"+treeNode.tId).unbind().remove();
  94. },
  95. onBeforeRemove: function(treeId, treeNode){
  96. var nodeIds = [], preNode = treeNode.getPreNode(), preNodeId = -1;
  97. if (preNode) {
  98. preNodeId = preNode.ID;
  99. }
  100. private_fetchAllSubItems = function(pItem){
  101. nodeIds.push(pItem.ID);
  102. if (pItem.items && pItem.items.length > 0) {
  103. for (var i = 0; i < pItem.items.length; i++) {
  104. private_fetchAllSubItems(pItem.items[i]);
  105. }
  106. }
  107. };
  108. nodeIds.push(treeNode.ID);
  109. for (var i = 0; i < treeNode.items.length; i++) {
  110. private_fetchAllSubItems(treeNode.items[i]);
  111. }
  112. //$.ajax({
  113. // type:"POST",
  114. // url:"api/deleteNodes",
  115. // data:{"nodes": JSON.stringify(nodeIds), "preNodeId": preNodeId, "preNodeNextId": treeNode.NextSiblingID},
  116. // dataType:"json",
  117. // cache:false,
  118. // timeout:5000,
  119. // success:function(result,textStatus,status){
  120. // var pNode = treeNode.getParentNode();
  121. // if (pNode && pNode.items && pNode.items.length == 1) {
  122. // pNode.isParent = false;
  123. // }
  124. // },
  125. // error:function(){
  126. // }
  127. //});
  128. return true;
  129. },
  130. onRemove: function(e, treeId, treeNode){
  131. var me = zTreeOprObj, pNode = me.treeObj.getNodeByTId(treeNode.parentTId);
  132. if (pNode && pNode.items && pNode.items.length == 0) {
  133. pNode.isParent = false;
  134. me.treeObj.refresh();
  135. //me.treeObj.updateNode(pNode, false); //这方法有后遗症,多次操作后会造成节点新增子节点时,父节点icon显示不正确
  136. }
  137. },
  138. beforeRename: function(treeId, treeNode, newName, isCancel) {
  139. if (newName.length == 0) {
  140. return false;
  141. }
  142. return true;
  143. },
  144. onRename : function(e, treeId, treeNode, isCancel) {
  145. var nodes = [];
  146. nodes.push(treeNode);
  147. //zTreeOprObj.updateNodes(nodes);
  148. },
  149. onClick: function(event,treeId,treeNode) {
  150. var sectionID = treeNode.ID;
  151. }
  152. }