rpt_tpl_main.js 6.6 KB

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