|
@@ -20,6 +20,7 @@ let dataInfoMapTreeOprObj = {
|
|
|
}
|
|
|
}
|
|
|
// me.treeObj.expandAll(true);
|
|
|
+ $("#element_hidden")[0].style.display = "none";
|
|
|
$("#element_font")[0].style.display = "none";
|
|
|
$("#element_border")[0].style.display = "none";
|
|
|
$("#element_control")[0].style.display = "none";
|
|
@@ -55,7 +56,7 @@ let dataInfoMapTreeOprObj = {
|
|
|
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]) {
|
|
|
+ if (nodeBandName === $.trim(bandObj[JV.PROP_NAME])) {
|
|
|
selector[0].selectedIndex = currentIdx;
|
|
|
}
|
|
|
//selector.selectedIndex
|
|
@@ -100,8 +101,23 @@ let dataInfoMapTreeOprObj = {
|
|
|
}
|
|
|
$("#element_content_height").get(0).removeAttribute("disabled");
|
|
|
$("#element_content_width").get(0).disabled = "disabled" ;
|
|
|
+ $("#element_cross_row_height").get(0).disabled = "disabled" ;
|
|
|
} else if (rptTpl[JV.NODE_CROSS_INFO]) {
|
|
|
- //
|
|
|
+ rst = me.buildCrossData(rptTpl);
|
|
|
+ $("#element_content_height_width")[0].style.display = "";
|
|
|
+ $("#element_content_width").get(0).removeAttribute("disabled");
|
|
|
+ $("#element_content_height").get(0).disabled = "disabled" ;
|
|
|
+ $("#element_cross_row_height").get(0).removeAttribute("disabled");
|
|
|
+ if (rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW][JV.PROP_CMN_HEIGHT]) {
|
|
|
+ $("#element_cross_row_height")[0].value = rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW][JV.PROP_CMN_HEIGHT];
|
|
|
+ } else {
|
|
|
+ $("#element_cross_row_height")[0].value = 0.6;
|
|
|
+ }
|
|
|
+ if (rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_COL][JV.PROP_CMN_WIDTH]) {
|
|
|
+ $("#element_content_width")[0].value = rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_COL][JV.PROP_CMN_WIDTH];
|
|
|
+ } else {
|
|
|
+ $("#element_content_width")[0].value = 2.6;
|
|
|
+ }
|
|
|
} else if (rptTpl[JV.NODE_BILL_INFO]) {
|
|
|
rst = me.buildBillData(rptTpl);
|
|
|
$("#element_content_height_width")[0].style.display = "none";
|
|
@@ -151,6 +167,35 @@ let dataInfoMapTreeOprObj = {
|
|
|
|
|
|
return rst;
|
|
|
},
|
|
|
+ buildCrossData: function (rptTpl) {
|
|
|
+ let me = this, rst = [];
|
|
|
+ let rootRowNode = {Name: JV.NODE_CROSS_ROW, type: "cross_row", isParent: true, Title: ""};
|
|
|
+ let rootColNode = {Name: JV.NODE_CROSS_COL, type: "cross_col", isParent: true, Title: "", items: [{"Name": "字段集", "items": [], "isParent": true, Title: ""}, {"Name": "文本集", "items": [], "isParent": true, Title: ""}]};
|
|
|
+ let rootFieldNode = {Name: JV.NODE_CROSS_CONTENT, type: "cross_field_data", isParent: true, Title: ""};
|
|
|
+ let rootColSumNode = {Name: JV.NODE_CROSS_COL_SUM, type: "cross_col_sum", isParent: true, Title: ""};
|
|
|
+ let rootRowExtNode = {Name: JV.NODE_CROSS_ROW_EXT, type: "cross_row_ext", isParent: true, Title: "", items: [{"Name": "字段集", "items": [], "isParent": true, Title: ""}, {"Name": "文本集", "items": [], "isParent": true, Title: ""}]};
|
|
|
+ let rootRowExtSumNode = {Name: JV.NODE_CROSS_ROW_SUM_EXT, type: "cross_row_ext_sum", isParent: true, Title: "", items: [{"Name": "字段集", "items": [], "isParent": true, Title: ""}, {"Name": "文本集", "items": [], "isParent": true, Title: ""}]};
|
|
|
+ let discreteNode = {Name: JV.NODE_DISCRETE_INFO, type: "discrete_data", isParent: true, Title: ""};
|
|
|
+
|
|
|
+ rst.push(rootRowNode);
|
|
|
+ rst.push(rootColNode);
|
|
|
+ rst.push(rootFieldNode);
|
|
|
+ rst.push(rootColSumNode);
|
|
|
+ rst.push(rootRowExtNode);
|
|
|
+ rst.push(rootRowExtSumNode);
|
|
|
+ rst.push(discreteNode);
|
|
|
+
|
|
|
+ me.private_build_content_field_data(rootRowNode, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW], JV.PROP_CROSS_FIELDS, rptTpl);
|
|
|
+ me.private_build_content_field_data(rootFieldNode, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_CONTENT], JV.PROP_CROSS_FIELDS, rptTpl);
|
|
|
+ me.private_build_content_field_data(rootColSumNode, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_COL_SUM], JV.PROP_CROSS_FIELDS, rptTpl);
|
|
|
+ me.private_build_cross_field_text_data(rootColNode, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_COL], rptTpl);
|
|
|
+
|
|
|
+ me.private_build_cross_field_text_data(rootRowExtNode, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW_EXT], rptTpl);
|
|
|
+ me.private_build_cross_field_text_data(rootRowExtSumNode, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW_SUM_EXT], rptTpl);
|
|
|
+
|
|
|
+ me.private_build_discrete_data(discreteNode, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_DISCRETE_INFO], rptTpl);
|
|
|
+ return rst;
|
|
|
+ },
|
|
|
private_build_grp_data: function (grpNode, grpData, rptTpl) {
|
|
|
let me = this;
|
|
|
grpNode.items = [];
|
|
@@ -244,6 +289,24 @@ let dataInfoMapTreeOprObj = {
|
|
|
}
|
|
|
}
|
|
|
},
|
|
|
+ private_build_cross_field_text_data: function(rootFieldNode, contentData, rptTpl) {
|
|
|
+ let me = this, bandName = contentData[JV.PROP_BAND_NAME];
|
|
|
+ if (rootFieldNode) {
|
|
|
+ rootFieldNode[JV.PROP_BAND_NAME] = bandName;
|
|
|
+ rootFieldNode.items[0].items = []; //指标集合
|
|
|
+ rootFieldNode.items[1].items = []; //文本集合
|
|
|
+ if (contentData[JV.PROP_CROSS_FIELDS] && contentData[JV.PROP_CROSS_FIELDS].length > 0) {
|
|
|
+ for (let fieldItem of contentData[JV.PROP_CROSS_FIELDS]) {
|
|
|
+ rootFieldNode.items[0].push(me.private_build_field_node(fieldItem, rptTpl));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if (contentData[JV.PROP_TEXTS] && contentData[JV.PROP_TEXTS].length > 0) {
|
|
|
+ for (let txt of contentData[JV.PROP_TEXTS]) {
|
|
|
+ rootFieldNode.items[1].push(me.private_build_text_node(txt));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
private_build_discrete_data: function (discreteNode, discreteData, rptTpl) {
|
|
|
let me = this;
|
|
|
discreteNode.isParent = true;
|
|
@@ -337,6 +400,8 @@ let dataInfoMapTreeOprObj = {
|
|
|
if (source[JV.PROP_FORMAT]) destination[JV.PROP_FORMAT] = source[JV.PROP_FORMAT];
|
|
|
if (source[JV.PROP_IS_AUTO_HEIGHT]) destination[JV.PROP_IS_AUTO_HEIGHT] = true
|
|
|
else destination[JV.PROP_IS_AUTO_HEIGHT] = false;
|
|
|
+ if (source[JV.PROP_HIDDEN]) destination[JV.PROP_HIDDEN] = true;
|
|
|
+ if (source[JV.PROP_IS_SERIAL]) destination[JV.PROP_IS_SERIAL] = true;
|
|
|
if (source[JV.PROP_AREA]) {
|
|
|
destination[JV.PROP_AREA] = {};
|
|
|
me.private_copy_area(source[JV.PROP_AREA], destination[JV.PROP_AREA]);
|
|
@@ -464,14 +529,18 @@ let dataInfoMapTreeOprObj = {
|
|
|
},
|
|
|
onBeforeRemove: function(treeId, treeNode){
|
|
|
let rst = true;
|
|
|
- if (treeNode.isParent) {
|
|
|
- if (treeNode.Name === `子项` && treeNode.getParentNode() !== null && treeNode.getParentNode().Name === `离散信息`) {
|
|
|
- rst = confirm(`确认要删除此离散子项?`);
|
|
|
- } else if (treeNode.Name === `行`) {
|
|
|
- rst = confirm(`确认要删除此分组行?`);
|
|
|
- }
|
|
|
+ if (treeNode.level === 0) {
|
|
|
+ rst = false;
|
|
|
} else {
|
|
|
- //
|
|
|
+ if (treeNode.isParent) {
|
|
|
+ if (treeNode.Name === `子项` && treeNode.getParentNode() !== null && treeNode.getParentNode().Name === `离散信息`) {
|
|
|
+ rst = confirm(`确认要删除此离散子项?`);
|
|
|
+ } else if (treeNode.Name === `行`) {
|
|
|
+ rst = confirm(`确认要删除此分组行?`);
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ //
|
|
|
+ }
|
|
|
}
|
|
|
return rst;
|
|
|
},
|
|
@@ -554,6 +623,7 @@ let dataInfoMapTreeOprObj = {
|
|
|
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 ||
|
|
|
treeNode[JV.PROP_NAME].indexOf("子项") === 0) {
|
|
|
rst = true;
|
|
|
}
|
|
@@ -673,6 +743,68 @@ let dataInfoMapTreeOprObj = {
|
|
|
}
|
|
|
if (rptTpl[JV.NODE_CROSS_INFO]) {
|
|
|
//2. 交叉表数据整理收集
|
|
|
+ let nodes = me.treeObj.getNodes();
|
|
|
+ for (let node of nodes) {
|
|
|
+ if (node[JV.PROP_NAME] === JV.NODE_DISCRETE_INFO) {
|
|
|
+ rptTpl[JV.NODE_CROSS_INFO][JV.NODE_DISCRETE_INFO] = me.private_extract_discrete_info(node, rptTpl);
|
|
|
+ } else if (node[JV.PROP_NAME] === JV.NODE_CROSS_ROW) {
|
|
|
+ let newCrossRow = {};
|
|
|
+ newCrossRow[JV.PROP_BAND_NAME] = node[JV.PROP_BAND_NAME];
|
|
|
+ newCrossRow[JV.PROP_CMN_HEIGHT] = $("#element_cross_row_height")[0].value;
|
|
|
+ newCrossRow[JV.PROP_CALCULATION] = JV.CAL_TYPE[JV.CAL_TYPE_ABSTRACT];
|
|
|
+ newCrossRow[JV.PROP_CROSS_FIELDS] = [];
|
|
|
+ for (let subNode of node.items) {
|
|
|
+ let f = {};
|
|
|
+ me.private_copy_field_properties(subNode, f);
|
|
|
+ newCrossRow[JV.PROP_CROSS_FIELDS].push(f);
|
|
|
+ }
|
|
|
+ rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW] = newCrossRow;
|
|
|
+ } else if (node[JV.PROP_NAME] === JV.NODE_CROSS_COL) {
|
|
|
+ let newCrossCol = {};
|
|
|
+ newCrossCol[JV.PROP_CMN_WIDTH] = $("#element_content_width")[0].value;
|
|
|
+ newCrossCol[JV.PROP_CALCULATION] = JV.CAL_TYPE[JV.CAL_TYPE_ABSTRACT];
|
|
|
+ newCrossCol[JV.PROP_CROSS_FIELDS] = [];
|
|
|
+ newCrossCol[JV.PROP_TEXTS] = [];
|
|
|
+ me.private_assemble_cross_info(newCrossCol, node);
|
|
|
+ rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_COL] = newCrossCol;
|
|
|
+ } else if (node[JV.PROP_NAME] === JV.NODE_CROSS_CONTENT) {
|
|
|
+ let newCrossContent = {};
|
|
|
+ newCrossContent[JV.PROP_BAND_NAME] = node[JV.PROP_BAND_NAME];
|
|
|
+ newCrossContent[JV.PROP_CROSS_FIELDS] = [];
|
|
|
+ for (let subNode of node.items) {
|
|
|
+ let f = {};
|
|
|
+ me.private_copy_field_properties(subNode, f);
|
|
|
+ newCrossContent[JV.PROP_CROSS_FIELDS].push(f);
|
|
|
+ }
|
|
|
+ rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_CONTENT] = newCrossContent;
|
|
|
+ } else if (node[JV.PROP_NAME] === JV.NODE_CROSS_ROW_SUM) {
|
|
|
+ //暂时木有,空白
|
|
|
+ } else if (node[JV.PROP_NAME] === JV.NODE_CROSS_COL_SUM) {
|
|
|
+ let newCrossSumCol = {};
|
|
|
+ newCrossSumCol[JV.PROP_BAND_NAME] = node[JV.PROP_BAND_NAME];
|
|
|
+ newCrossSumCol[JV.PROP_CROSS_FIELDS] = [];
|
|
|
+ for (let subNode of node.items) {
|
|
|
+ let f = {};
|
|
|
+ me.private_copy_field_properties(subNode, f);
|
|
|
+ newCrossSumCol[JV.PROP_CROSS_FIELDS].push(f);
|
|
|
+ }
|
|
|
+ rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_COL_SUM] = newCrossSumCol;
|
|
|
+ } else if (node[JV.PROP_NAME] === JV.NODE_CROSS_ROW_EXT) {
|
|
|
+ let newCrossRowExt = {};
|
|
|
+ newCrossRowExt[JV.PROP_EXTENSION_TYPE] = "show_content";
|
|
|
+ newCrossRowExt[JV.PROP_CROSS_FIELDS] = [];
|
|
|
+ newCrossRowExt[JV.PROP_TEXTS] = [];
|
|
|
+ me.private_assemble_cross_info(newCrossRowExt, node);
|
|
|
+ rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW_EXT] = newCrossRowExt;
|
|
|
+ } else if (node[JV.PROP_NAME] === JV.NODE_CROSS_ROW_SUM_EXT) {
|
|
|
+ let newCrossRowSumExt = {};
|
|
|
+ newCrossRowSumExt[JV.PROP_EXTENSION_TYPE] = "sum_row";
|
|
|
+ newCrossRowSumExt[JV.PROP_CROSS_FIELDS] = [];
|
|
|
+ newCrossRowSumExt[JV.PROP_TEXTS] = [];
|
|
|
+ me.private_assemble_cross_info(newCrossRowSumExt, node);
|
|
|
+ rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW_SUM_EXT] = newCrossRowSumExt;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
if (rptTpl[JV.NODE_BILL_INFO]) {
|
|
|
//3. 账单式数据整理收集
|
|
@@ -740,6 +872,29 @@ let dataInfoMapTreeOprObj = {
|
|
|
}
|
|
|
return rst;
|
|
|
},
|
|
|
+ private_assemble_cross_info: function (parentNode, treeNode) {
|
|
|
+ let me = dataInfoMapTreeOprObj;
|
|
|
+ parentNode[JV.PROP_BAND_NAME] = treeNode[JV.PROP_BAND_NAME];
|
|
|
+ for (let subNode of treeNode.items) {
|
|
|
+ if (subNode[JV.PROP_NAME] === "字段集") {
|
|
|
+ if (subNode.items && subNode.items.length > 0) {
|
|
|
+ for (let sumField of subNode.items) {
|
|
|
+ let item = {};
|
|
|
+ parentNode[JV.PROP_CROSS_FIELDS].push(item);
|
|
|
+ me.private_copy_field_properties(sumField, item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ } else if (subNode[JV.PROP_NAME] === "文本集") {
|
|
|
+ if (subNode.items && subNode.items.length > 0) {
|
|
|
+ for (let txt of subNode.items) {
|
|
|
+ let item = {};
|
|
|
+ parentNode[JV.PROP_TEXTS].push(item);
|
|
|
+ me.private_copy_text_properties(txt, item);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ },
|
|
|
private_extract_sum_info: function(sumNode) {
|
|
|
let me = dataInfoMapTreeOprObj, rst = {};
|
|
|
rst[JV.PROP_BAND_NAME] = sumNode[JV.PROP_BAND_NAME];
|