rpt_tpl_field_map.js 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152
  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. //
  92. }
  93. };
  94. let selectableFiledTreeOprObj = {
  95. treeObj : null,
  96. currentNode: null,
  97. iniTree: function() {
  98. let me = this, params = {};
  99. params.userId = userID;
  100. CommonAjax.postEx("report_tpl_api/getMappingFields", params, 20000, true, function(result){
  101. let showRst = [];
  102. for (let item of result) {
  103. if (item.items.length > 0) {
  104. showRst.push(item);
  105. }
  106. }
  107. me.treeObj = $.fn.zTree.init($("#selectable_field_tree_reversed"), selectableFieldSetting, showRst);
  108. me.treeObj.expandAll(true);
  109. showRst = null;
  110. }, null, null
  111. );
  112. },
  113. onClick: function (event,treeId,treeNode) {
  114. let me = fieldMapTreeOprObj;
  115. me.currentNode = treeNode;
  116. },
  117. onBeforeDrag: function (treeId, treeNodes) {
  118. let rst = true;
  119. for (let node of treeNodes) {
  120. if (node.level === 0) {
  121. rst = false;
  122. break;
  123. }
  124. }
  125. return rst;
  126. },
  127. onBeforeDrop: function(treeId, treeNodes, targetNode, moveType){
  128. let rst = true;
  129. if (treeId === 'field_map_tree_reversed') {
  130. if ( (targetNode.level === 0 && moveType !== 'inner') || (targetNode.level > 0 && moveType === 'inner')) {
  131. rst = false;
  132. }
  133. } else {
  134. rst = false;
  135. }
  136. return rst;
  137. },
  138. addDiyDom: function (treeId, treeNode) {
  139. if (treeNode.level > 0) {
  140. let aObj = $("#" + treeNode.tId + "_a");
  141. if ($("#diyBtn_"+treeNode.ID).length>0) return;
  142. let editStr = "<span>&nbsp(" + treeNode.DataType + ")</span>";
  143. aObj.append(editStr);
  144. let btn = $("#diyBtn_"+treeNode.ID);
  145. if (btn) btn.bind("click", function(){alert("diy Button for " + treeNode.name);});
  146. }
  147. }
  148. }