|
@@ -5,23 +5,33 @@
|
|
|
|
|
|
let dataInfoMapTreeOprObj = {
|
|
|
treeObj : null,
|
|
|
+ bandTreeObj: null,
|
|
|
+ selectedTreeObj: null,
|
|
|
currentNode: null,
|
|
|
dataTypeDef: ['string', 'int32', 'int64', 'double', 'currency', 'date', 'image'],
|
|
|
iniTree: function(rptTpl) {
|
|
|
- var me = this;
|
|
|
+ let me = this;
|
|
|
let fieldMapList = me.buildTreeData(rptTpl);
|
|
|
me.treeObj = $.fn.zTree.init($("#tpl_data_info_reversed"), rptDataInfoSetting, fieldMapList);
|
|
|
me.treeObj.expandAll(true);
|
|
|
},
|
|
|
iniDataMap: function () {
|
|
|
- let me = this, bandList = bandTreeOprObj.copyBandList(true);
|
|
|
+ let me = this, bandList = bandTreeOprObj.copyBandList(false);
|
|
|
if (bandList) {
|
|
|
- let bandTree = $.fn.zTree.init($("#band_tree2_reversed"), bandSetting2, bandList);
|
|
|
- bandTree.expandAll(true);
|
|
|
+ me.bandTreeObj = $.fn.zTree.init($("#band_tree2_reversed"), bandSetting2, bandList);
|
|
|
+ me.bandTreeObj.expandAll(true);
|
|
|
+ let selectedFieldList = fieldMapTreeOprObj.copySelectedFieldList();
|
|
|
+ if (me.selectedTreeObj) {
|
|
|
+ let nodes = me.selectedTreeObj.getNodes();
|
|
|
+ for (let node of nodes) {
|
|
|
+ me.selectedTreeObj.removeNode(node);
|
|
|
+ }
|
|
|
+ me.selectedTreeObj.refresh();
|
|
|
+ }
|
|
|
+ // me.selectedTreeObj = $.fn.zTree.init(document.getElementById("tpl_data_selected_field_map_reversed"), selectedFieldMapSetting, selectedFieldList);
|
|
|
+ me.selectedTreeObj = $.fn.zTree.init($("#tpl_data_selected_field_map_reversed"), selectedFieldMapSetting, selectedFieldList);
|
|
|
+ me.selectedTreeObj.expandAll(true);
|
|
|
}
|
|
|
- let selectedFieldList = fieldMapTreeOprObj.copySelectedFieldList();
|
|
|
- let selectedFieldTree = $.fn.zTree.init($("#tpl_data_selected_field_map_reversed"), selectedFieldMapSetting, selectedFieldList);
|
|
|
- selectedFieldTree.expandAll(true);
|
|
|
},
|
|
|
buildTreeData: function (rptTpl) {
|
|
|
let me = this, rst = null;
|
|
@@ -46,72 +56,117 @@ let dataInfoMapTreeOprObj = {
|
|
|
let discreteNode = {Name: JV.NODE_DISCRETE_INFO};
|
|
|
rst.push(rootFieldNode);
|
|
|
rst.push(discreteNode);
|
|
|
- me.private_build_bill_data(rootFieldNode, rptTpl[JV.NODE_BILL_INFO][JV.NODE_BILL_CONTENT]);
|
|
|
- me.private_build_bill_discrete_data(discreteNode, rptTpl[JV.NODE_BILL_INFO][JV.NODE_DISCRETE_INFO]);
|
|
|
+ me.private_build_bill_data(rootFieldNode, rptTpl[JV.NODE_BILL_INFO][JV.NODE_BILL_CONTENT], rptTpl);
|
|
|
+ me.private_build_bill_discrete_data(discreteNode, rptTpl[JV.NODE_BILL_INFO][JV.NODE_DISCRETE_INFO], rptTpl);
|
|
|
|
|
|
return rst;
|
|
|
},
|
|
|
|
|
|
- private_build_bill_data: function (rootFieldNode, billData) {
|
|
|
+ private_build_bill_data: function (rootFieldNode, billData, rptTpl) {
|
|
|
let me = this, bandName = billData[JV.PROP_BAND_NAME];
|
|
|
if (rootFieldNode) {
|
|
|
+ rootFieldNode[JV.PROP_BAND_NAME] = bandName;
|
|
|
rootFieldNode.items = [];
|
|
|
for (let fieldItem of billData[JV.PROP_BILL_FIELDS]) {
|
|
|
- rootFieldNode.items.push(me.private_build_field_node(bandName, fieldItem));
|
|
|
+ if (fieldItem[JV.PROP_FIELD_ID]) {
|
|
|
+ rootFieldNode.items.push(me.private_build_field_node(fieldItem, rptTpl))
|
|
|
+ } else if (fieldItem[JV.PROP_PARAM_ID]) {
|
|
|
+ rootFieldNode.items.push(me.private_build_param_node(fieldItem, rptTpl));
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
- private_build_bill_discrete_data: function (discreteNode, discreteData) {
|
|
|
+ private_build_bill_discrete_data: function (discreteNode, discreteData, rptTpl) {
|
|
|
let me = this;
|
|
|
- if (discreteNode) {
|
|
|
- discreteNode.items = [];
|
|
|
- let fieldItem = {Name: "Fields", items:[], isParent: true};
|
|
|
- let paramItem = {Name: "Params", items:[], isParent: true};
|
|
|
- let textItem = {Name: "Texts", items:[], isParent: true};
|
|
|
- discreteNode.items.push(fieldItem);
|
|
|
- discreteNode.items.push(paramItem);
|
|
|
- discreteNode.items.push(textItem);
|
|
|
- for (let bandItem of discreteData) {
|
|
|
- let bandName = bandItem[JV.PROP_BAND_NAME];
|
|
|
- if (bandItem[JV.PROP_DISCRETE_FIELDS]) {
|
|
|
- for (let dtlItem of bandItem[JV.PROP_DISCRETE_FIELDS]) {
|
|
|
- fieldItem.items.push(me.private_build_field_node(bandName, dtlItem));
|
|
|
+ discreteNode.isParent = true;
|
|
|
+ discreteNode.items = [];
|
|
|
+ for (let i = 0; i < discreteData.length; i++) {
|
|
|
+ let dtl = discreteData[i];
|
|
|
+ let item = {"Name": "离散" + (i + 1), "items":[]};
|
|
|
+ item[JV.PROP_BAND_NAME] = dtl[JV.PROP_BAND_NAME];
|
|
|
+ let discreteFieldsNode = {"Name": "离散字段集", "items": [], "isParent": true};
|
|
|
+ let discreteTextsNode = {"Name": "离散文本集", "items": [], "isParent": true};
|
|
|
+ item.items.push(discreteFieldsNode);
|
|
|
+ item.items.push(discreteTextsNode);
|
|
|
+
|
|
|
+ discreteNode.items.push(item);
|
|
|
+ if (dtl[JV.PROP_DISCRETE_FIELDS]) {
|
|
|
+ for (let field of dtl[JV.PROP_DISCRETE_FIELDS]) {
|
|
|
+ if (field[JV.PROP_FIELD_ID]) {
|
|
|
+ discreteFieldsNode.items.push(me.private_build_field_node(field, rptTpl))
|
|
|
+ } else if (field[JV.PROP_PARAM_ID]) {
|
|
|
+ discreteFieldsNode.items.push(me.private_build_param_node(field, rptTpl));
|
|
|
}
|
|
|
}
|
|
|
- if (bandItem[JV.PROP_PARAMS]) {
|
|
|
- for (let dtlItem of bandItem[JV.PROP_PARAMS]) {
|
|
|
- paramItem.items.push(me.private_build_param_node(bandName, dtlItem));
|
|
|
- }
|
|
|
+ }
|
|
|
+ if (dtl[JV.PROP_TEXTS]) {
|
|
|
+ for (let txt of dtl[JV.PROP_TEXTS]) {
|
|
|
+ discreteTextsNode.items.push(me.private_build_text_node(txt));
|
|
|
}
|
|
|
-
|
|
|
- if (bandItem[JV.PROP_TEXTS]) {
|
|
|
- for (let dtlItem of bandItem[JV.PROP_TEXTS]) {
|
|
|
- textItem.items.push(me.private_build_text_node(bandName, dtlItem));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ private_get_field_by_id: function (fieldId, rptTpl) {
|
|
|
+ let rst = null;
|
|
|
+ function getField(collection) {
|
|
|
+ if (!rst && collection) {
|
|
|
+ for (let item of collection) {
|
|
|
+ if (item[JV.PROP_ID] === fieldId) {
|
|
|
+ rst = item;
|
|
|
+ break;
|
|
|
}
|
|
|
}
|
|
|
- if (bandItem[JV.PROP_TEXT]) {
|
|
|
- textItem.items.push(me.private_build_text_node(bandName, bandItem[JV.PROP_TEXT]));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ getField(rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DISCRETE_FIELDS]);
|
|
|
+ getField(rptTpl[JV.NODE_FIELD_MAP][JV.NODE_NO_MAPPING_FIELDS]);
|
|
|
+ getField(rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS]);
|
|
|
+ getField(rptTpl[JV.NODE_FIELD_MAP][JV.NODE_MASTER_FIELDS_EX]);
|
|
|
+ getField(rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS]);
|
|
|
+ getField(rptTpl[JV.NODE_FIELD_MAP][JV.NODE_DETAIL_FIELDS_EX]);
|
|
|
+ return rst;
|
|
|
+ },
|
|
|
+ private_get_param_by_id: function (paramId, rptTpl) {
|
|
|
+ let rst = null;
|
|
|
+ function getParam(collection) {
|
|
|
+ if (!rst && collection) {
|
|
|
+ for (let item of collection) {
|
|
|
+ if (item[JV.PROP_ID] === paramId) {
|
|
|
+ rst = item;
|
|
|
+ break;
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
+ getParam(rptTpl[JV.NODE_DISCRETE_PARAMS]);
|
|
|
+ return rst;
|
|
|
},
|
|
|
- private_build_field_node: function (bandName, fieldData) {
|
|
|
+ private_build_field_node: function (fieldData, rptTpl) {
|
|
|
let me = this, rst = null;
|
|
|
if (fieldData) {
|
|
|
rst = {};
|
|
|
- rst[JV.PROP_BAND_NAME] = bandName;
|
|
|
- rst[JV.PROP_FIELD_ID] = fieldData[JV.PROP_FIELD_ID];
|
|
|
- rst[JV.TAB_FIELD_PROP_SORT] = fieldData[JV.TAB_FIELD_PROP_SORT];
|
|
|
- rst[JV.PROP_FONT] = fieldData[JV.PROP_FONT];
|
|
|
- rst[JV.PROP_CONTROL] = fieldData[JV.PROP_CONTROL];
|
|
|
- rst[JV.PROP_STYLE] = fieldData[JV.PROP_STYLE];
|
|
|
- rst[JV.PROP_PREFIX] = fieldData[JV.PROP_PREFIX];
|
|
|
- rst[JV.PROP_SUFFIX] = fieldData[JV.PROP_SUFFIX];
|
|
|
- rst[JV.PROP_AREA] = {};
|
|
|
- me.private_copy_area(fieldData[JV.PROP_AREA], rst[JV.PROP_AREA]);
|
|
|
+ let f = me.private_get_field_by_id(fieldData[JV.PROP_FIELD_ID], rptTpl);
|
|
|
+ if (f) {
|
|
|
+ rst[JV.PROP_NAME] = f[JV.PROP_NAME];
|
|
|
+ } else {
|
|
|
+ rst[JV.PROP_NAME] = fieldData[JV.PROP_FIELD_ID];
|
|
|
+ }
|
|
|
+ me.private_copy_field_properties(fieldData, rst);
|
|
|
}
|
|
|
return rst;
|
|
|
},
|
|
|
+ private_copy_field_properties: function (source, destination) {
|
|
|
+ let me = this;
|
|
|
+ destination[JV.PROP_FIELD_ID] = source[JV.PROP_FIELD_ID];
|
|
|
+ if (source[JV.TAB_FIELD_PROP_SORT]) destination[JV.TAB_FIELD_PROP_SORT] = source[JV.TAB_FIELD_PROP_SORT];
|
|
|
+ destination[JV.PROP_FONT] = source[JV.PROP_FONT];
|
|
|
+ destination[JV.PROP_CONTROL] = source[JV.PROP_CONTROL];
|
|
|
+ destination[JV.PROP_STYLE] = source[JV.PROP_STYLE];
|
|
|
+ destination[JV.PROP_PREFIX] = source[JV.PROP_PREFIX];
|
|
|
+ destination[JV.PROP_SUFFIX] = source[JV.PROP_SUFFIX];
|
|
|
+ destination[JV.PROP_AREA] = {};
|
|
|
+ me.private_copy_area(source[JV.PROP_AREA], destination[JV.PROP_AREA]);
|
|
|
+ },
|
|
|
private_copy_area: function (orgArea, destArea) {
|
|
|
destArea[JV.PROP_LEFT] = orgArea[[JV.PROP_LEFT]];
|
|
|
destArea[JV.PROP_RIGHT] = orgArea[[JV.PROP_RIGHT]];
|
|
@@ -120,32 +175,111 @@ let dataInfoMapTreeOprObj = {
|
|
|
destArea[JV.PROP_H_CALCULATION] = orgArea[[JV.PROP_H_CALCULATION]];
|
|
|
destArea[JV.PROP_V_CALCULATION] = orgArea[[JV.PROP_V_CALCULATION]];
|
|
|
},
|
|
|
- private_build_param_node: function (bandName, param) {
|
|
|
+ private_build_param_node: function (param, rptTpl) {
|
|
|
let me = this, rst = null;
|
|
|
if (param) {
|
|
|
rst = {};
|
|
|
- rst[JV.PROP_BAND_NAME] = bandName;
|
|
|
- rst[JV.PROP_PARAM_ID] = param[JV.PROP_PARAM_ID];
|
|
|
- rst[JV.PROP_FONT] = param[JV.PROP_FONT];
|
|
|
- rst[JV.PROP_CONTROL] = param[JV.PROP_CONTROL];
|
|
|
- rst[JV.PROP_STYLE] = param[JV.PROP_STYLE];
|
|
|
- rst[JV.PROP_PREFIX] = param[JV.PROP_PREFIX];
|
|
|
- rst[JV.PROP_SUFFIX] = param[JV.PROP_SUFFIX];
|
|
|
- rst[JV.PROP_AREA] = {};
|
|
|
- me.private_copy_area(param[JV.PROP_AREA], rst[JV.PROP_AREA]);
|
|
|
+ let p = me.private_get_param_by_id(param[JV.PROP_PARAM_ID], rptTpl);
|
|
|
+ if (p) {
|
|
|
+ rst[JV.PROP_NAME] = p[JV.PROP_NAME];
|
|
|
+ } else {
|
|
|
+ rst[JV.PROP_NAME] = param[JV.PROP_PARAM_ID];
|
|
|
+ }
|
|
|
+ me.private_copy_param_properties(param, rst);
|
|
|
}
|
|
|
return rst;
|
|
|
},
|
|
|
+ private_copy_param_properties: function (source, destination) {
|
|
|
+ let me = this;
|
|
|
+ destination[JV.PROP_PARAM_ID] = source[JV.PROP_PARAM_ID];
|
|
|
+ destination[JV.PROP_FONT] = source[JV.PROP_FONT];
|
|
|
+ destination[JV.PROP_CONTROL] = source[JV.PROP_CONTROL];
|
|
|
+ destination[JV.PROP_STYLE] = source[JV.PROP_STYLE];
|
|
|
+ destination[JV.PROP_PREFIX] = source[JV.PROP_PREFIX];
|
|
|
+ destination[JV.PROP_SUFFIX] = source[JV.PROP_SUFFIX];
|
|
|
+ destination[JV.PROP_AREA] = {};
|
|
|
+ me.private_copy_area(source[JV.PROP_AREA], destination[JV.PROP_AREA]);
|
|
|
+ },
|
|
|
+ private_build_text_node: function (text) {
|
|
|
+ let me = this, rst = null;
|
|
|
+ if (text) {
|
|
|
+ rst = {};
|
|
|
+ rst[JV.PROP_NAME] = text[JV.PROP_LABEL];
|
|
|
+ me.private_copy_text_properties(text, rst);
|
|
|
+ }
|
|
|
+ return rst;
|
|
|
+ },
|
|
|
+ private_copy_text_properties: function (source, destination) {
|
|
|
+ let me = this;
|
|
|
+ destination[JV.PROP_LABEL] = source[JV.PROP_LABEL];
|
|
|
+ destination[JV.PROP_FONT] = source[JV.PROP_FONT];
|
|
|
+ destination[JV.PROP_CONTROL] = source[JV.PROP_CONTROL];
|
|
|
+ destination[JV.PROP_STYLE] = source[JV.PROP_STYLE];
|
|
|
+ destination[JV.PROP_AREA] = {};
|
|
|
+ me.private_copy_area(source[JV.PROP_AREA], destination[JV.PROP_AREA]);
|
|
|
+ },
|
|
|
|
|
|
- private_build_text_node: function (bandName, text) {
|
|
|
- //
|
|
|
+ private_get_dummy_text_node: function() {
|
|
|
+ let me = this, rst = {};
|
|
|
+ rst[JV.PROP_NAME] = "文本";
|
|
|
+ rst[JV.PROP_LABEL] = "文本";
|
|
|
+ rst[JV.PROP_FONT] = "Content";
|
|
|
+ rst[JV.PROP_CONTROL] = "Default";
|
|
|
+ rst[JV.PROP_STYLE] = "Default_None";
|
|
|
+ rst[JV.PROP_AREA] = {};
|
|
|
+ rst[JV.PROP_AREA][JV.PROP_LEFT] = 0;
|
|
|
+ rst[JV.PROP_AREA][JV.PROP_RIGHT] = 100;
|
|
|
+ rst[JV.PROP_AREA][JV.PROP_TOP] = 0;
|
|
|
+ rst[JV.PROP_AREA][JV.PROP_BOTTOM] = 100;
|
|
|
+ rst[JV.PROP_AREA][JV.PROP_H_CALCULATION] = JV.CAL_TYPE[0];
|
|
|
+ rst[JV.PROP_AREA][JV.PROP_V_CALCULATION] = JV.CAL_TYPE[0];
|
|
|
+ return rst;
|
|
|
},
|
|
|
|
|
|
- onClick: function (event,treeId,treeNode) {
|
|
|
- //
|
|
|
+ onTabDataClick: function (event,treeId,treeNode) {
|
|
|
+ let me = dataInfoMapTreeOprObj, matchedBandNode = null;
|
|
|
+ let chked = false;
|
|
|
+ me.currentNode = treeNode;
|
|
|
+ function checkBandNode(bNode, bandName) {
|
|
|
+ if (bNode[JV.PROP_NAME] === bandName) {
|
|
|
+ chked = true;
|
|
|
+ matchedBandNode = bNode;
|
|
|
+ } else if (bNode.items){
|
|
|
+ for (let subNode of bNode.items) {
|
|
|
+ checkBandNode(subNode, bandName);
|
|
|
+ if (chked) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let nodes = me.bandTreeObj.getNodes();
|
|
|
+ function setDisabledBandSelect(disabled) {
|
|
|
+ for (let node of nodes) {
|
|
|
+ me.bandTreeObj.setChkDisabled(node, disabled, true, true);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (treeNode[JV.PROP_BAND_NAME]) {
|
|
|
+ for (let node of nodes) {
|
|
|
+ checkBandNode(node, treeNode[JV.PROP_BAND_NAME]);
|
|
|
+ if (chked) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (chked) {
|
|
|
+ setDisabledBandSelect(false);
|
|
|
+ me.bandTreeObj.checkNode(matchedBandNode, true, true);
|
|
|
+ } else {
|
|
|
+ setDisabledBandSelect(true);
|
|
|
+ }
|
|
|
},
|
|
|
- onBandClick: function (event,treeId,treeNode) {
|
|
|
- //
|
|
|
+ onCheck: function (event,treeId,treeNode) {
|
|
|
+ let me = dataInfoMapTreeOprObj;
|
|
|
+ if (me.currentNode[JV.PROP_BAND_NAME] && me.currentNode[JV.PROP_BAND_NAME] !== treeNode[JV.PROP_NAME]) {
|
|
|
+ alert("change band from: " + me.currentNode[JV.PROP_BAND_NAME] + " to : " + treeNode[JV.PROP_NAME]);
|
|
|
+ me.currentNode[JV.PROP_BAND_NAME] = treeNode[JV.PROP_NAME];
|
|
|
+ }
|
|
|
},
|
|
|
onBeforeRemove: function(treeId, treeNode){
|
|
|
let rst = true;
|
|
@@ -157,7 +291,16 @@ let dataInfoMapTreeOprObj = {
|
|
|
return rst;
|
|
|
},
|
|
|
beforeRename: function(treeId, treeNode, newName, isCancel) {
|
|
|
- //
|
|
|
+ let rst = false;
|
|
|
+ return rst;
|
|
|
+ },
|
|
|
+ beforeEditName: function(treeId, treeNode) {
|
|
|
+ let rst = false;
|
|
|
+ let pn = treeNode.getParentNode();
|
|
|
+ if (pn && pn[JV.PROP_NAME] === "离散文本集") {
|
|
|
+ rst = true;
|
|
|
+ }
|
|
|
+ return rst;
|
|
|
},
|
|
|
onBeforeDrag: function (treeId, treeNodes) {
|
|
|
let rst = true;
|
|
@@ -173,17 +316,15 @@ let dataInfoMapTreeOprObj = {
|
|
|
let rst = false;
|
|
|
if (targetNode.tId && targetNode.tId.indexOf("tpl_data_info_reversed") >= 0 && (!(targetNode.isParent && moveType !== 'inner')) ) {
|
|
|
if (targetNode.level === 0) {
|
|
|
- if (targetNode.Name !== "离散信息" && moveType === 'inner') {
|
|
|
+ if (targetNode.Name !== JV.NODE_DISCRETE_INFO && moveType === 'inner') {
|
|
|
rst = true;
|
|
|
}
|
|
|
} else {
|
|
|
let parentNode = targetNode.getParentNode();
|
|
|
if (parentNode.Name === "离散信息") {
|
|
|
- if (targetNode.Name === "Fields") {
|
|
|
- rst = true;
|
|
|
- }
|
|
|
- } else if (parentNode.Name === "Fields") {
|
|
|
- rst = true;
|
|
|
+ // if (targetNode.Name === "Fields") {
|
|
|
+ // rst = true;
|
|
|
+ // }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -195,11 +336,112 @@ let dataInfoMapTreeOprObj = {
|
|
|
onRename: function () {
|
|
|
//
|
|
|
},
|
|
|
- extractFieldMaps: function (rptTpl) {
|
|
|
- //
|
|
|
+ addHoverDom: function(treeId, treeNode) {
|
|
|
+ let me = dataInfoMapTreeOprObj, sObj = $("#" + treeNode.tId + "_span");
|
|
|
+ if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length > 0) {
|
|
|
+ return;
|
|
|
+ } else if ((treeNode.level === 0 && treeNode[JV.PROP_NAME] === JV.NODE_DISCRETE_INFO) || (treeNode.level === 2 && treeNode[JV.PROP_NAME] === "离散文本集")) {
|
|
|
+ let addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增' onfocus='this.blur();'></span>";
|
|
|
+ sObj.after(addStr);
|
|
|
+ let btn = $("#addBtn_"+treeNode.tId);
|
|
|
+ if (treeNode[JV.PROP_NAME] === JV.NODE_DISCRETE_INFO) {
|
|
|
+ btn.bind("click", function(){
|
|
|
+ let amtIdx = treeNode.items.length + 1;
|
|
|
+ let node = {};
|
|
|
+ node[JV.PROP_NAME] = "离散" + amtIdx;
|
|
|
+ node[JV.PROP_BAND_NAME] = me.bandTreeObj.getNodes()[0][JV.PROP_NAME];
|
|
|
+ node.items = [];
|
|
|
+ let fields = {"Name": "离散字段集", "items": [], "isParent": true};
|
|
|
+ let texts = {"Name": "离散文本集", "items": [], "isParent": true};
|
|
|
+ node.items.push(fields);
|
|
|
+ node.items.push(texts);
|
|
|
+ let newNodes = [];
|
|
|
+ newNodes.push(node);
|
|
|
+ me.treeObj.addNodes(treeNode, -1, newNodes, true);
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ //text
|
|
|
+ btn.bind("click", function(){
|
|
|
+ let node = me.private_get_dummy_text_node();
|
|
|
+ let newNodes = [];
|
|
|
+ newNodes.push(node);
|
|
|
+ me.treeObj.addNodes(treeNode, -1, newNodes, true);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ removeHoverDom: function(treeId, treeNode) {
|
|
|
+ $("#addBtn_"+treeNode.tId).unbind().remove();
|
|
|
+ },
|
|
|
+ extractTabFields: function (rptTpl) {
|
|
|
+ let me = dataInfoMapTreeOprObj;
|
|
|
+ // for (let rootNode of me.treeObj.getNodes()) {
|
|
|
+ // rptTpl[JV.NODE_FIELD_MAP][rootNode.Name] = [];
|
|
|
+ // for (let mappingFieldNode of rootNode.items) {
|
|
|
+ // rptTpl[JV.NODE_FIELD_MAP][rootNode.Name].push(me.createMapFieldByNode(mappingFieldNode));
|
|
|
+ // }
|
|
|
+ // }
|
|
|
+ if (rptTpl[JV.NODE_FLOW_INFO]) {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ if (rptTpl[JV.NODE_CROSS_INFO]) {
|
|
|
+ //
|
|
|
+ }
|
|
|
+ if (rptTpl[JV.NODE_BILL_INFO]) {
|
|
|
+ let nodes = me.treeObj.getNodes();
|
|
|
+ for (let node of nodes) {
|
|
|
+ if (node[JV.PROP_NAME] === JV.NODE_BILL_CONTENT) {
|
|
|
+ let newContent = {};
|
|
|
+ newContent[JV.PROP_BAND_NAME] = node[JV.PROP_BAND_NAME];
|
|
|
+ newContent[JV.PROP_BILL_FIELDS] = [];
|
|
|
+ for (let subNode of node.items) {
|
|
|
+ let f = {};
|
|
|
+ me.private_copy_field_properties(subNode, f);
|
|
|
+ newContent[JV.PROP_BILL_FIELDS].push(f);
|
|
|
+ }
|
|
|
+ rptTpl[JV.NODE_BILL_INFO][JV.NODE_BILL_CONTENT] = newContent;
|
|
|
+ } else if (node[JV.PROP_NAME] === JV.NODE_DISCRETE_INFO) {
|
|
|
+ rptTpl[JV.NODE_BILL_INFO][JV.NODE_DISCRETE_INFO] = me.private_extract_discrete_info(node);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
+ private_extract_discrete_info: function(discreteNode) {
|
|
|
+ let me = this, rst = [];
|
|
|
+ for (let node of discreteNode) {
|
|
|
+ let newContent = {};
|
|
|
+ rst.push(newContent);
|
|
|
+ newContent[JV.PROP_BAND_NAME] = node[JV.PROP_BAND_NAME];
|
|
|
+ if (node[JV.PROP_DISCRETE_FIELDS] && node[JV.PROP_DISCRETE_FIELDS].length > 0) {
|
|
|
+ newContent[JV.PROP_DISCRETE_FIELDS] = [];
|
|
|
+ for (let field of node[JV.PROP_DISCRETE_FIELDS]) {
|
|
|
+ let item = {};
|
|
|
+ newContent[JV.PROP_DISCRETE_FIELDS].push(item);
|
|
|
+ if (field[JV.PROP_FIELD_ID]) {
|
|
|
+ me.private_copy_field_properties(field, item);
|
|
|
+ } else if (field[JV.PROP_PARAM_ID]) {
|
|
|
+ me.private_copy_param_properties(field, item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (node[JV.PROP_TEXTS] && node[JV.PROP_TEXTS].length > 0) {
|
|
|
+ newContent[JV.PROP_TEXTS] = [];
|
|
|
+ for (let txt of node[JV.PROP_TEXTS]) {
|
|
|
+ let item = {};
|
|
|
+ newContent[JV.PROP_TEXTS].push(item);
|
|
|
+ me.private_copy_text_properties(txt, item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return rst;
|
|
|
+ },
|
|
|
+ extractDiscreteFieldParam: function(rptTpl) {
|
|
|
+ let me = dataInfoMapTreeOprObj;
|
|
|
},
|
|
|
createMapFieldByNode: function (node) {
|
|
|
//
|
|
|
}
|
|
|
};
|
|
|
|
|
|
+
|
|
|
+
|