Pārlūkot izejas kodu

code sync + 01-2表新特性

TonyKang 6 gadi atpakaļ
vecāks
revīzija
109a0dd487

+ 7 - 1
modules/reports/facade/rpt_tpl_data_facade.js

@@ -7,9 +7,11 @@
 // let projectConst = consts.projectConst;
 let prjMdl = require('../../../modules/pm/models/project_model');
 let projectDataMdl = require('../../../modules/main/models/project');
+let projectFacade = require('../../../modules/main/facade/project_facade');
 
 module.exports = {
-    prepareProjectData: prepareProjectData
+    prepareProjectData: prepareProjectData,
+    getBudgetSummayDatas: getBudgetSummayDatas
 };
 
 function prepareProjectData(userId, prjId, filter, callback) {
@@ -38,4 +40,8 @@ function prepareProjectData(userId, prjId, filter, callback) {
             callback(err, msg, null);
         }
     });
+}
+
+async function getBudgetSummayDatas(prjIds) {
+    return await projectFacade.getBudgetSummayDatas(prjIds);
 }

+ 3 - 0
modules/reports/util/rpt_yanghu_data_util.js

@@ -1794,6 +1794,9 @@ function getActDataArr(dtObj) {
         if (dtObj.moduleName === "projectGLJ") {
             rst = dtObj.data.gljList;
         }
+        if (dtObj.moduleName === "calc_program") {
+            rst = dtObj.data.templates;
+        }
     }
     return rst;
 }

+ 4 - 0
web/maintain/report/js/rpt_tpl_band.js

@@ -151,6 +151,10 @@ let bandTreeOprObj = {
             let newBand = me.createDftBand();
             let newNodes = [], isSilent = false;
             newNodes.push(newBand);
+            if (!treeNode.hasOwnProperty("band_s")) {
+                treeNode["band_s"] = [];
+                treeNode.isParent = true;
+            }
             me.treeObj.addNodes(treeNode, -1, newNodes, isSilent);
         });
     },

+ 16 - 12
web/maintain/report/js/rpt_tpl_data_map.js

@@ -170,7 +170,7 @@ let dataInfoMapTreeOprObj = {
     buildCrossData: function (rptTpl) {
         let me = this, rst = [];
         let rootRowNode = {Name: JV.NODE_CROSS_ROW, type: "cross_row", isParent: true, Title: ""};
-        // let rootRowAdHocNode = {Name: JV.NODE_CROSS_ROW, type: "cross_row", isParent: true, Title: ""};
+        let rootRowAdHocNode = {Name: JV.NODE_CROSS_ROW_AD_HOC, 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: ""};
@@ -179,6 +179,7 @@ let dataInfoMapTreeOprObj = {
         let discreteNode = {Name: JV.NODE_DISCRETE_INFO, type: "discrete_data", isParent: true, Title: ""};
 
         rst.push(rootRowNode);
+        rst.push(rootRowAdHocNode);
         rst.push(rootColNode);
         rst.push(rootFieldNode);
         rst.push(rootColSumNode);
@@ -187,6 +188,7 @@ let dataInfoMapTreeOprObj = {
         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(rootRowAdHocNode, rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW_AD_HOC], 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);
@@ -277,15 +279,17 @@ let dataInfoMapTreeOprObj = {
         }
     },
     private_build_content_field_data: function(rootFieldNode, contentData, fieldsStr, rptTpl) {
-        let me = this, bandName = contentData[JV.PROP_BAND_NAME];
         if (rootFieldNode) {
-            rootFieldNode[JV.PROP_BAND_NAME] = bandName;
+            let me = this;
             rootFieldNode.items = [];
-            for (let fieldItem of contentData[fieldsStr]) {
-                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));
+            if (contentData) {
+                rootFieldNode[JV.PROP_BAND_NAME] = contentData[JV.PROP_BAND_NAME];
+                for (let fieldItem of contentData[fieldsStr]) {
+                    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));
+                    }
                 }
             }
         }
@@ -587,8 +591,8 @@ let dataInfoMapTreeOprObj = {
     onBeforeDrop: function(treeId, treeNodes, targetNode, moveType){
         let rst = false;
         if (targetNode.Name === JV.NODE_FLOW_CONTENT || targetNode.Name === JV.NODE_BILL_CONTENT || targetNode.Name === JV.NODE_CROSS_CONTENT
-            || targetNode.Name === JV.NODE_CROSS_ROW || targetNode.Name === JV.NODE_CROSS_COL || targetNode.Name === JV.NODE_CROSS_COL_SUM
-            || targetNode.Name === JV.NODE_CROSS_ROW_SUM
+            || targetNode.Name === JV.NODE_CROSS_ROW || targetNode.Name === JV.NODE_CROSS_ROW_AD_HOC || targetNode.Name === JV.NODE_CROSS_COL
+            || targetNode.Name === JV.NODE_CROSS_COL_SUM || targetNode.Name === JV.NODE_CROSS_ROW_SUM
             || targetNode.Name === "离散字段集" || targetNode.Name === "统计指标集" || targetNode.Name === "分组判断指标集"
             || targetNode.Name === "分组字段集" || targetNode.Name === "字段集") {
             rst = true;
@@ -778,7 +782,7 @@ let dataInfoMapTreeOprObj = {
             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) {
+                } else if (node[JV.PROP_NAME] === JV.NODE_CROSS_ROW || node[JV.PROP_NAME] === JV.NODE_CROSS_ROW_AD_HOC) {
                     let newCrossRow = {};
                     newCrossRow[JV.PROP_BAND_NAME] = node[JV.PROP_BAND_NAME];
                     newCrossRow[JV.PROP_CMN_HEIGHT] = $("#element_cross_row_height")[0].value;
@@ -789,7 +793,7 @@ let dataInfoMapTreeOprObj = {
                         me.private_copy_field_properties(subNode, f);
                         newCrossRow[JV.PROP_CROSS_FIELDS].push(f);
                     }
-                    rptTpl[JV.NODE_CROSS_INFO][JV.NODE_CROSS_ROW] = newCrossRow;
+                    rptTpl[JV.NODE_CROSS_INFO][node[JV.PROP_NAME]] = newCrossRow;
                 } else if (node[JV.PROP_NAME] === JV.NODE_CROSS_COL) {
                     let newCrossCol = {};
                     newCrossCol[JV.PROP_CMN_WIDTH] = $("#element_content_width")[0].value;