rpt_tpl_data_map.js 7.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205
  1. /**
  2. * Created by Tony on 2017/10/5.
  3. */
  4. 'use strict'
  5. let dataInfoMapTreeOprObj = {
  6. treeObj : null,
  7. currentNode: null,
  8. dataTypeDef: ['string', 'int32', 'int64', 'double', 'currency', 'date', 'image'],
  9. iniTree: function(rptTpl) {
  10. var me = this;
  11. let fieldMapList = me.buildTreeData(rptTpl);
  12. me.treeObj = $.fn.zTree.init($("#tpl_data_info_reversed"), rptDataInfoSetting, fieldMapList);
  13. me.treeObj.expandAll(true);
  14. },
  15. iniDataMap: function () {
  16. let me = this, bandList = bandTreeOprObj.copyBandList(true);
  17. if (bandList) {
  18. let bandTree = $.fn.zTree.init($("#band_tree2_reversed"), bandSetting2, bandList);
  19. bandTree.expandAll(true);
  20. }
  21. let selectedFieldList = fieldMapTreeOprObj.copySelectedFieldList();
  22. let selectedFieldTree = $.fn.zTree.init($("#tpl_data_selected_field_map_reversed"), selectedFieldMapSetting, selectedFieldList);
  23. selectedFieldTree.expandAll(true);
  24. },
  25. buildTreeData: function (rptTpl) {
  26. let me = this, rst = null;
  27. $("#dispRowHeight")[0].style.display = "";
  28. $("#dispColWidth")[0].style.display = "";
  29. if (rptTpl[JV.NODE_FLOW_INFO]) {
  30. //
  31. } else if (rptTpl[JV.NODE_CROSS_INFO]) {
  32. //
  33. } else if (rptTpl[JV.NODE_BILL_INFO]) {
  34. rst = me.buildBillData(rptTpl);
  35. $("#dispRowHeight")[0].style.display = "none";
  36. $("#dispColWidth")[0].style.display = "none";
  37. }
  38. return rst;
  39. },
  40. buildBillData: function(rptTpl) {
  41. let me = this, rst = [];
  42. let rootFieldNode = {Name: JV.NODE_BILL_CONTENT, type: "bill_data", isParent: true};
  43. let discreteNode = {Name: JV.NODE_DISCRETE_INFO};
  44. rst.push(rootFieldNode);
  45. rst.push(discreteNode);
  46. me.private_build_bill_data(rootFieldNode, rptTpl[JV.NODE_BILL_INFO][JV.NODE_BILL_CONTENT]);
  47. me.private_build_bill_discrete_data(discreteNode, rptTpl[JV.NODE_BILL_INFO][JV.NODE_DISCRETE_INFO]);
  48. return rst;
  49. },
  50. private_build_bill_data: function (rootFieldNode, billData) {
  51. let me = this, bandName = billData[JV.PROP_BAND_NAME];
  52. if (rootFieldNode) {
  53. rootFieldNode.items = [];
  54. for (let fieldItem of billData[JV.PROP_BILL_FIELDS]) {
  55. rootFieldNode.items.push(me.private_build_field_node(bandName, fieldItem));
  56. }
  57. }
  58. },
  59. private_build_bill_discrete_data: function (discreteNode, discreteData) {
  60. let me = this;
  61. if (discreteNode) {
  62. discreteNode.items = [];
  63. let fieldItem = {Name: "Fields", items:[], isParent: true};
  64. let paramItem = {Name: "Params", items:[], isParent: true};
  65. let textItem = {Name: "Texts", items:[], isParent: true};
  66. discreteNode.items.push(fieldItem);
  67. discreteNode.items.push(paramItem);
  68. discreteNode.items.push(textItem);
  69. for (let bandItem of discreteData) {
  70. let bandName = bandItem[JV.PROP_BAND_NAME];
  71. if (bandItem[JV.PROP_DISCRETE_FIELDS]) {
  72. for (let dtlItem of bandItem[JV.PROP_DISCRETE_FIELDS]) {
  73. fieldItem.items.push(me.private_build_field_node(bandName, dtlItem));
  74. }
  75. }
  76. if (bandItem[JV.PROP_PARAMS]) {
  77. for (let dtlItem of bandItem[JV.PROP_PARAMS]) {
  78. paramItem.items.push(me.private_build_param_node(bandName, dtlItem));
  79. }
  80. }
  81. if (bandItem[JV.PROP_TEXTS]) {
  82. for (let dtlItem of bandItem[JV.PROP_TEXTS]) {
  83. textItem.items.push(me.private_build_text_node(bandName, dtlItem));
  84. }
  85. }
  86. if (bandItem[JV.PROP_TEXT]) {
  87. textItem.items.push(me.private_build_text_node(bandName, bandItem[JV.PROP_TEXT]));
  88. }
  89. }
  90. }
  91. },
  92. private_build_field_node: function (bandName, fieldData) {
  93. let me = this, rst = null;
  94. if (fieldData) {
  95. rst = {};
  96. rst[JV.PROP_BAND_NAME] = bandName;
  97. rst[JV.PROP_FIELD_ID] = fieldData[JV.PROP_FIELD_ID];
  98. rst[JV.TAB_FIELD_PROP_SORT] = fieldData[JV.TAB_FIELD_PROP_SORT];
  99. rst[JV.PROP_FONT] = fieldData[JV.PROP_FONT];
  100. rst[JV.PROP_CONTROL] = fieldData[JV.PROP_CONTROL];
  101. rst[JV.PROP_STYLE] = fieldData[JV.PROP_STYLE];
  102. rst[JV.PROP_PREFIX] = fieldData[JV.PROP_PREFIX];
  103. rst[JV.PROP_SUFFIX] = fieldData[JV.PROP_SUFFIX];
  104. rst[JV.PROP_AREA] = {};
  105. me.private_copy_area(fieldData[JV.PROP_AREA], rst[JV.PROP_AREA]);
  106. }
  107. return rst;
  108. },
  109. private_copy_area: function (orgArea, destArea) {
  110. destArea[JV.PROP_LEFT] = orgArea[[JV.PROP_LEFT]];
  111. destArea[JV.PROP_RIGHT] = orgArea[[JV.PROP_RIGHT]];
  112. destArea[JV.PROP_TOP] = orgArea[[JV.PROP_TOP]];
  113. destArea[JV.PROP_BOTTOM] = orgArea[[JV.PROP_BOTTOM]];
  114. destArea[JV.PROP_H_CALCULATION] = orgArea[[JV.PROP_H_CALCULATION]];
  115. destArea[JV.PROP_V_CALCULATION] = orgArea[[JV.PROP_V_CALCULATION]];
  116. },
  117. private_build_param_node: function (bandName, param) {
  118. let me = this, rst = null;
  119. if (param) {
  120. rst = {};
  121. rst[JV.PROP_BAND_NAME] = bandName;
  122. rst[JV.PROP_PARAM_ID] = param[JV.PROP_PARAM_ID];
  123. rst[JV.PROP_FONT] = param[JV.PROP_FONT];
  124. rst[JV.PROP_CONTROL] = param[JV.PROP_CONTROL];
  125. rst[JV.PROP_STYLE] = param[JV.PROP_STYLE];
  126. rst[JV.PROP_PREFIX] = param[JV.PROP_PREFIX];
  127. rst[JV.PROP_SUFFIX] = param[JV.PROP_SUFFIX];
  128. rst[JV.PROP_AREA] = {};
  129. me.private_copy_area(param[JV.PROP_AREA], rst[JV.PROP_AREA]);
  130. }
  131. return rst;
  132. },
  133. private_build_text_node: function (bandName, text) {
  134. //
  135. },
  136. onClick: function (event,treeId,treeNode) {
  137. //
  138. },
  139. onBandClick: function (event,treeId,treeNode) {
  140. //
  141. },
  142. onBeforeRemove: function(treeId, treeNode){
  143. let rst = true;
  144. if (treeNode.isParent) {
  145. rst = false;
  146. } else {
  147. //
  148. }
  149. return rst;
  150. },
  151. beforeRename: function(treeId, treeNode, newName, isCancel) {
  152. //
  153. },
  154. onBeforeDrag: function (treeId, treeNodes) {
  155. let rst = true;
  156. for (let node of treeNodes) {
  157. if (node.level === 0) {
  158. rst = false;
  159. break;
  160. }
  161. }
  162. return rst;
  163. },
  164. onBeforeDrop: function(treeId, treeNodes, targetNode, moveType){
  165. let rst = false;
  166. if (targetNode.tId && targetNode.tId.indexOf("tpl_data_info_reversed") >= 0 && (!(targetNode.isParent && moveType !== 'inner')) ) {
  167. if (targetNode.level === 0) {
  168. if (targetNode.Name !== "离散信息" && moveType === 'inner') {
  169. rst = true;
  170. }
  171. } else {
  172. let parentNode = targetNode.getParentNode();
  173. if (parentNode.Name === "离散信息") {
  174. if (targetNode.Name === "Fields") {
  175. rst = true;
  176. }
  177. } else if (parentNode.Name === "Fields") {
  178. rst = true;
  179. }
  180. }
  181. }
  182. return rst;
  183. },
  184. onRemove: function () {
  185. //
  186. },
  187. onRename: function () {
  188. //
  189. },
  190. extractFieldMaps: function (rptTpl) {
  191. //
  192. },
  193. createMapFieldByNode: function (node) {
  194. //
  195. }
  196. };