|
@@ -6,7 +6,6 @@
|
|
|
|
|
|
let dataInfoMapTreeOprObj = {
|
|
|
treeObj : null,
|
|
|
- bandTreeObj: null,
|
|
|
selectedTreeObj: null,
|
|
|
currentNode: null,
|
|
|
dataTypeDef: ['string', 'int32', 'int64', 'double', 'currency', 'date', 'image'],
|
|
@@ -25,8 +24,6 @@ let dataInfoMapTreeOprObj = {
|
|
|
iniDataMap: function () {
|
|
|
let me = this, bandList = bandTreeOprObj.copyBandList(false);
|
|
|
if (bandList) {
|
|
|
- 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();
|
|
@@ -35,9 +32,49 @@ let dataInfoMapTreeOprObj = {
|
|
|
}
|
|
|
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);
|
|
|
+ me.refreshBandSelection();
|
|
|
+ }
|
|
|
+ },
|
|
|
+ refreshBandSelection: function () {
|
|
|
+ let me = dataInfoMapTreeOprObj;
|
|
|
+ let tplNodes = me.treeObj.getNodes();
|
|
|
+ let bandList = bandTreeOprObj.copyBandList(false);
|
|
|
+ let currentIdx = 0;
|
|
|
+
|
|
|
+ let private_addBandOption = function(prefix, bandObj, selector, nodeBandName) {
|
|
|
+ selector.append("<option value='" + bandObj[JV.PROP_NAME] + "'>" + prefix + bandObj[JV.PROP_NAME] + "</option>");
|
|
|
+ currentIdx++;
|
|
|
+ if (nodeBandName === bandObj[JV.PROP_NAME]) {
|
|
|
+ selector[0].selectedIndex = currentIdx;
|
|
|
+ }
|
|
|
+ //selector.selectedIndex
|
|
|
+ if (bandObj.items && bandObj.items.length > 0) {
|
|
|
+ for (let subItem of bandObj.items) {
|
|
|
+ private_addBandOption(prefix + "  ", subItem, selector, nodeBandName);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+ let private_refresh_node_selection = function (treeNode) {
|
|
|
+ if (me.checkIfCanAddBand(treeNode)) {
|
|
|
+ //准备加selection
|
|
|
+ let selectObj = $("#diySelect_" +treeNode.tId);
|
|
|
+ selectObj.empty();
|
|
|
+ selectObj.append("<option value='none'>请选择</option>");
|
|
|
+ currentIdx = 0;
|
|
|
+ for (let band of bandList) {
|
|
|
+ private_addBandOption("", band, selectObj, treeNode[JV.PROP_BAND_NAME]);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (treeNode.items && treeNode.items.length > 0) {
|
|
|
+ for (let subItem of treeNode.items) {
|
|
|
+ private_refresh_node_selection(subItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+ for (let i = 0; i < tplNodes.length; i++) {
|
|
|
+ private_refresh_node_selection(tplNodes[i]);
|
|
|
}
|
|
|
},
|
|
|
buildTreeData: function (rptTpl) {
|
|
@@ -126,7 +163,8 @@ let dataInfoMapTreeOprObj = {
|
|
|
let me = this;
|
|
|
if (columnData[JV.PROP_TEXTS] && columnData[JV.PROP_TEXTS].length > 0) {
|
|
|
columnNode.items = [];
|
|
|
- columnNode.Title = "所在区域: " + columnNode[JV.PROP_BAND_NAME];
|
|
|
+ // columnNode.Title = "区域: " + columnNode[JV.PROP_BAND_NAME];
|
|
|
+ columnNode.Title = "";
|
|
|
for (let txt of columnData[JV.PROP_TEXTS]) {
|
|
|
columnNode.items.push(me.private_build_text_node(txt));
|
|
|
}
|
|
@@ -152,7 +190,8 @@ let dataInfoMapTreeOprObj = {
|
|
|
discreteNode.items = [];
|
|
|
for (let i = 0; i < discreteData.length; i++) {
|
|
|
let dtl = discreteData[i];
|
|
|
- let item = {"Name": "子项(所在区域:" + dtl[JV.PROP_BAND_NAME] + ")", "items":[], Title: ""};
|
|
|
+ // let item = {"Name": "子项(区域:" + dtl[JV.PROP_BAND_NAME] + ")", "items":[], Title: ""};
|
|
|
+ let item = {"Name": "子项", "items":[], Title: ""};
|
|
|
item[JV.PROP_BAND_NAME] = dtl[JV.PROP_BAND_NAME];
|
|
|
let discreteFieldsNode = {"Name": "离散字段集", "items": [], "isParent": true, Title: ""};
|
|
|
let discreteTextsNode = {"Name": "离散文本集", "items": [], "isParent": true, Title: ""};
|
|
@@ -307,7 +346,7 @@ let dataInfoMapTreeOprObj = {
|
|
|
me.private_copy_area(source[JV.PROP_AREA], destination[JV.PROP_AREA]);
|
|
|
},
|
|
|
|
|
|
- private_get_dummy_text_node: function() {
|
|
|
+ private_get_dummy_text_node: function(treeNode) {
|
|
|
let me = this, rst = {};
|
|
|
rst[JV.PROP_NAME] = "文本";
|
|
|
rst[JV.PROP_LABEL] = "文本";
|
|
@@ -321,10 +360,17 @@ let dataInfoMapTreeOprObj = {
|
|
|
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];
|
|
|
+ if (treeNode) {
|
|
|
+ if (treeNode[JV.PROP_NAME].indexOf("_列") >= 0) {
|
|
|
+ rst[JV.PROP_FONT] = "HeaderColumn";
|
|
|
+ rst[JV.PROP_CONTROL] = "Column";
|
|
|
+ rst[JV.PROP_STYLE] = "Default_Normal";
|
|
|
+ }
|
|
|
+ }
|
|
|
return rst;
|
|
|
},
|
|
|
|
|
|
- private_setup_dummy_field_node: function(node) {
|
|
|
+ private_setup_dummy_field_node: function(node, targetNode) {
|
|
|
if (!node[JV.PROP_PARAM_ID]) {
|
|
|
node[JV.PROP_FIELD_ID] = node[JV.PROP_ID];
|
|
|
}
|
|
@@ -338,63 +384,19 @@ let dataInfoMapTreeOprObj = {
|
|
|
node[JV.PROP_AREA][JV.PROP_BOTTOM] = 100;
|
|
|
node[JV.PROP_AREA][JV.PROP_H_CALCULATION] = JV.CAL_TYPE[0];
|
|
|
node[JV.PROP_AREA][JV.PROP_V_CALCULATION] = JV.CAL_TYPE[0];
|
|
|
+ if (targetNode[JV.PROP_NAME].indexOf("_数据") >= 0) {
|
|
|
+ node[JV.PROP_FONT] = "Content";
|
|
|
+ node[JV.PROP_CONTROL] = "Content_Left";
|
|
|
+ node[JV.PROP_STYLE] = "Default_Normal";
|
|
|
+ }
|
|
|
},
|
|
|
|
|
|
checkIfShouldHaveBand: function(treeNode) {
|
|
|
return treeNode.hasOwnProperty(JV.PROP_BAND_NAME);
|
|
|
},
|
|
|
onTabDataClick: function (event,treeId,treeNode) {
|
|
|
- let me = dataInfoMapTreeOprObj, matchedBandNode = null;
|
|
|
- let bandChked = false;
|
|
|
+ let me = dataInfoMapTreeOprObj;
|
|
|
me.currentNode = treeNode;
|
|
|
- function checkBandNode(bNode, bandName) {
|
|
|
- if (bNode[JV.PROP_NAME] === bandName) {
|
|
|
- bandChked = true;
|
|
|
- matchedBandNode = bNode;
|
|
|
- } else if (bNode.items){
|
|
|
- for (let subNode of bNode.items) {
|
|
|
- checkBandNode(subNode, bandName);
|
|
|
- if (bandChked) {
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- let nodes = me.bandTreeObj.getNodes();
|
|
|
- function setDisabledBandSelect(disabled) {
|
|
|
- for (let node of nodes) {
|
|
|
- me.bandTreeObj.setChkDisabled(node, disabled, true, true);
|
|
|
- }
|
|
|
- }
|
|
|
- function cleanBandSelect(parentNode) {
|
|
|
- me.bandTreeObj.checkNode(parentNode, false, false, false);
|
|
|
- if (parentNode.items && parentNode.items.length > 0) {
|
|
|
- for (let subNode of parentNode.items) {
|
|
|
- cleanBandSelect(subNode);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (treeNode[JV.PROP_BAND_NAME]) {
|
|
|
- for (let node of nodes) {
|
|
|
- checkBandNode(node, treeNode[JV.PROP_BAND_NAME]);
|
|
|
- if (bandChked) {
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- if (bandChked) {
|
|
|
- setDisabledBandSelect(false);
|
|
|
- me.bandTreeObj.checkNode(matchedBandNode, true, true);
|
|
|
- } else {
|
|
|
- if (me.checkIfShouldHaveBand(treeNode)) {
|
|
|
- setDisabledBandSelect(false);
|
|
|
- for (let node of nodes) {
|
|
|
- cleanBandSelect(node);
|
|
|
- }
|
|
|
- } else {
|
|
|
- setDisabledBandSelect(true);
|
|
|
- }
|
|
|
- }
|
|
|
//检测是否为field/param/text对象
|
|
|
rpt_tpl_cfg_helper.checkAndSetSelectedNodeCfg(treeNode);
|
|
|
},
|
|
@@ -404,9 +406,11 @@ let dataInfoMapTreeOprObj = {
|
|
|
// 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];
|
|
|
if (me.currentNode[JV.PROP_NAME].indexOf("子项") >= 0) {
|
|
|
- me.currentNode[JV.PROP_NAME] = "子项(所在区域:" + treeNode[JV.PROP_NAME] + ")";
|
|
|
+ // me.currentNode[JV.PROP_NAME] = "子项(区域:" + treeNode[JV.PROP_NAME] + ")";
|
|
|
+ me.currentNode[JV.PROP_NAME] = "子项";
|
|
|
} else {
|
|
|
- me.currentNode.Title = "所在区域:" + treeNode[JV.PROP_NAME];
|
|
|
+ // me.currentNode.Title = "区域:" + treeNode[JV.PROP_NAME];
|
|
|
+ me.currentNode.Title = "";
|
|
|
}
|
|
|
me.treeObj.updateNode(me.currentNode);
|
|
|
}
|
|
@@ -455,7 +459,7 @@ let dataInfoMapTreeOprObj = {
|
|
|
onDrop: function(event, treeId, treeNodes, targetNode, moveType) {
|
|
|
let me = dataInfoMapTreeOprObj;
|
|
|
for (let node of treeNodes) {
|
|
|
- me.private_setup_dummy_field_node(node);
|
|
|
+ me.private_setup_dummy_field_node(node, targetNode);
|
|
|
}
|
|
|
},
|
|
|
onRemove: function (e, treeId, treeNode) {
|
|
@@ -473,9 +477,38 @@ let dataInfoMapTreeOprObj = {
|
|
|
}
|
|
|
return rst;
|
|
|
},
|
|
|
+ checkIfCanAddBand: function (treeNode) {
|
|
|
+ let rst = false;
|
|
|
+ if (treeNode[JV.PROP_NAME].indexOf(JV.NODE_FLOW_CONTENT) === 0 ||
|
|
|
+ treeNode[JV.PROP_NAME].indexOf(JV.NODE_FLOW_COLUMN) === 0 ||
|
|
|
+ treeNode[JV.PROP_NAME].indexOf(JV.NODE_FLOW_PAGE_SUM) === 0 ||
|
|
|
+ treeNode[JV.PROP_NAME].indexOf(JV.NODE_FLOW_SEG_SUM) === 0 ||
|
|
|
+ treeNode[JV.PROP_NAME].indexOf(JV.NODE_BILL_CONTENT) === 0 ||
|
|
|
+ treeNode[JV.PROP_NAME].indexOf("子项") === 0) {
|
|
|
+ rst = true;
|
|
|
+ }
|
|
|
+ return rst;
|
|
|
+ },
|
|
|
+ bandSelectChange: function(dom, treeNodeId) {
|
|
|
+ let me = dataInfoMapTreeOprObj, node = me.treeObj.getNodeByTId(treeNodeId);
|
|
|
+ if (dom.selectedIndex > 0) {
|
|
|
+ node[JV.PROP_BAND_NAME] = dom.value;
|
|
|
+ } else {
|
|
|
+ node[JV.PROP_BAND_NAME] = "";
|
|
|
+ }
|
|
|
+ },
|
|
|
+ addDiyDom: function (treeId, treeNode) {
|
|
|
+ let me = dataInfoMapTreeOprObj, aObj = $("#" + treeNode.tId + IDMark_A);
|
|
|
+ //加band selection
|
|
|
+ if (me.checkIfCanAddBand(treeNode)) {
|
|
|
+ //准备加selection
|
|
|
+ let addBandStr = "<select class='selDemo' id='diySelect_" +treeNode.tId+ "' onchange='dataInfoMapTreeOprObj.bandSelectChange(this, \"" + treeNode.tId + "\")'></select>";
|
|
|
+ aObj.after(addBandStr);
|
|
|
+ }
|
|
|
+ },
|
|
|
addHoverDom: function(treeId, treeNode) {
|
|
|
- let me = dataInfoMapTreeOprObj, sObj = $("#" + treeNode.tId + "_span");
|
|
|
- if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length > 0) {
|
|
|
+ let me = dataInfoMapTreeOprObj, sObj = $("#" + treeNode.tId + IDMark_Span);
|
|
|
+ if (treeNode.editNameFlag || $("#addBtn_"+treeNode.tId).length > 0 || $("#selInput_"+treeNode.tId).length > 0) {
|
|
|
return;
|
|
|
} else if (treeNode[JV.PROP_NAME] === JV.NODE_DISCRETE_INFO || me.checkIfCanAddTxt(treeNode)) {
|
|
|
let addStr = "<span class='button add' id='addBtn_" + treeNode.tId + "' title='新增' onfocus='this.blur();'></span>";
|
|
@@ -484,9 +517,10 @@ let dataInfoMapTreeOprObj = {
|
|
|
if (treeNode[JV.PROP_NAME] === JV.NODE_DISCRETE_INFO) {
|
|
|
btn.bind("click", function(){
|
|
|
let node = {};
|
|
|
- node[JV.PROP_NAME] = "子项(所在区域:" + me.bandTreeObj.getNodes()[0][JV.PROP_NAME] + ")";
|
|
|
- node[JV.PROP_BAND_NAME] = me.bandTreeObj.getNodes()[0][JV.PROP_NAME];
|
|
|
- node.items = [];
|
|
|
+ node[JV.PROP_NAME] = "子项";
|
|
|
+ // node[JV.PROP_BAND_NAME] = me.bandTreeObj.getNodes()[0][JV.PROP_NAME];
|
|
|
+ node[JV.PROP_BAND_NAME] = "";
|
|
|
+ node.items = [];
|
|
|
let fields = {"Name": "离散字段集", "items": [], "isParent": true};
|
|
|
let texts = {"Name": "离散文本集", "items": [], "isParent": true};
|
|
|
node.items.push(fields);
|
|
@@ -494,11 +528,12 @@ let dataInfoMapTreeOprObj = {
|
|
|
let newNodes = [];
|
|
|
newNodes.push(node);
|
|
|
me.treeObj.addNodes(treeNode, -1, newNodes, true);
|
|
|
+ me.refreshBandSelection();
|
|
|
});
|
|
|
} else {
|
|
|
//text
|
|
|
btn.bind("click", function(){
|
|
|
- let node = me.private_get_dummy_text_node();
|
|
|
+ let node = me.private_get_dummy_text_node(treeNode);
|
|
|
let newNodes = [];
|
|
|
newNodes.push(node);
|
|
|
me.treeObj.addNodes(treeNode, -1, newNodes, true);
|