rpt_tpl_field_map.js 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167
  1. 'use strict'
  2. let fieldMapTreeOprObj = {
  3. treeObj : null,
  4. currentNode: null,
  5. dataTypeDef: ['string', 'int32', 'int64', 'double', 'currency', 'date', 'image'],
  6. iniTree: function(rptTpl) {
  7. var me = this;
  8. let fieldMapList = me.buildTreeData(rptTpl);
  9. me.treeObj = $.fn.zTree.init($("#field_map_tree_reversed"), fieldMapSetting, fieldMapList);
  10. me.treeObj.expandAll(true);
  11. },
  12. buildTreeData: function (rptTpl) {
  13. let rst = [];
  14. let private_setSubFields = function (parent, fieldList) {
  15. for (let field of fieldList) {
  16. parent.items.push(field);
  17. }
  18. }
  19. if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS]) {
  20. rst.push({Name: JV.NODE_DISCRETE_FIELDS, items: [], isParent: true});
  21. private_setSubFields(rst[rst.length - 1], rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS])
  22. }
  23. if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS]) {
  24. rst.push({Name: JV.NODE_MASTER_FIELDS, items: [], isParent: true});
  25. private_setSubFields(rst[rst.length - 1], rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS])
  26. }
  27. if (rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS]) {
  28. rst.push({Name: JV.NODE_DETAIL_FIELDS, items: [], isParent: true});
  29. private_setSubFields(rst[rst.length - 1], rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS])
  30. }
  31. return rst;
  32. },
  33. onClick: function (event,treeId,treeNode) {
  34. let me = fieldMapTreeOprObj;
  35. me.currentNode = treeNode;
  36. //then refresh the field map tab properties
  37. //数据类型
  38. switch (me.dataTypeDef.indexOf(treeNode[JV.PROP_DATA_TYPE])) {
  39. case 0:
  40. $("#fieldDataTypeSelection").get(0).selectedIndex = 0;
  41. break;
  42. case 1:
  43. case 2:
  44. case 3:
  45. case 4:
  46. $("#fieldDataTypeSelection").get(0).selectedIndex = 1;
  47. break;
  48. case 5:
  49. $("#fieldDataTypeSelection").get(0).selectedIndex = 2;
  50. break;
  51. case 6:
  52. $("#fieldDataTypeSelection").get(0).selectedIndex = 3;
  53. break;
  54. default:
  55. $("#fieldDataTypeSelection").get(0).selectedIndex = 0;
  56. break;
  57. }
  58. //映射指标
  59. },
  60. onBeforeRemove: function(treeId, treeNode){
  61. if (treeNode.level === 0) {
  62. return false;
  63. }
  64. return true;
  65. },
  66. beforeRename: function(treeId, treeNode, newName, isCancel) {
  67. if (isCancel) {
  68. return true;
  69. }
  70. if (treeNode.level === 0) {
  71. return false;
  72. }
  73. return true;
  74. },
  75. onBeforeDrop: function(treeId, treeNodes, targetNode, moveType){
  76. let rst = true;
  77. if (treeId === 'selectable_field_tree_reversed' || targetNode.level === 0 || moveType === 'inner') {
  78. rst = false;
  79. } else {
  80. //
  81. }
  82. return rst;
  83. },
  84. onRemove: function () {
  85. //
  86. },
  87. onRename: function () {
  88. //
  89. },
  90. extractFieldMaps: function (rptTpl) {
  91. let me = this;
  92. for (let rootNode of me.treeObj.getNodes()) {
  93. rptTpl[JV.NODE_FIELD_MAP][rootNode.Name] = [];
  94. for (let mappingFieldNode of rootNode.items) {
  95. rptTpl[JV.NODE_FIELD_MAP][rootNode.Name].push(me.createMapFieldByNode(mappingFieldNode));
  96. }
  97. }
  98. },
  99. createMapFieldByNode: function (node) {
  100. let rst = {};
  101. rst[JV.PROP_ID] = node[JV.PROP_ID];
  102. rst[JV.PROP_NAME] = node[JV.PROP_NAME];
  103. rst[JV.PROP_DATA_TYPE] = node[JV.PROP_DATA_TYPE];
  104. rst.mapExpression = node.mapExpression;
  105. rst[JV.PROP_ID] = node[JV.PROP_ID];
  106. return rst;
  107. }
  108. };
  109. let selectableFiledTreeOprObj = {
  110. treeObj : null,
  111. currentNode: null,
  112. iniTree: function() {
  113. let me = this, params = {};
  114. params.userId = userID;
  115. CommonAjax.postEx("report_tpl_api/getMappingFields", params, 20000, true, function(result){
  116. let showRst = [];
  117. for (let item of result) {
  118. if (item.items.length > 0) {
  119. showRst.push(item);
  120. }
  121. }
  122. me.treeObj = $.fn.zTree.init($("#selectable_field_tree_reversed"), selectableFieldSetting, showRst);
  123. me.treeObj.expandAll(true);
  124. showRst = null;
  125. }, null, null
  126. );
  127. },
  128. onClick: function (event,treeId,treeNode) {
  129. let me = fieldMapTreeOprObj;
  130. me.currentNode = treeNode;
  131. },
  132. onBeforeDrag: function (treeId, treeNodes) {
  133. let rst = true;
  134. for (let node of treeNodes) {
  135. if (node.level === 0) {
  136. rst = false;
  137. break;
  138. }
  139. }
  140. return rst;
  141. },
  142. onBeforeDrop: function(treeId, treeNodes, targetNode, moveType){
  143. let rst = true;
  144. if (treeId === 'field_map_tree_reversed') {
  145. if ( (targetNode.level === 0 && moveType !== 'inner') || (targetNode.level > 0 && moveType === 'inner')) {
  146. rst = false;
  147. }
  148. } else {
  149. rst = false;
  150. }
  151. return rst;
  152. },
  153. addDiyDom: function (treeId, treeNode) {
  154. if (treeNode.level > 0) {
  155. let aObj = $("#" + treeNode.tId + "_a");
  156. if ($("#diyBtn_"+treeNode.ID).length>0) return;
  157. let editStr = "<span>&nbsp(" + treeNode.DataType + ")</span>";
  158. aObj.append(editStr);
  159. let btn = $("#diyBtn_"+treeNode.ID);
  160. if (btn) btn.bind("click", function(){alert("diy Button for " + treeNode.name);});
  161. }
  162. }
  163. }