Browse Source

报表编辑器改进

TonyKang 7 years atrás
parent
commit
f68ec8bf12

+ 10 - 8
modules/reports/util/rpt_construct_data_util.js

@@ -302,29 +302,31 @@ function summaryData(sourceData, handleCfg, prjData){
     let private_cal_before_sum = function () {
         for (let calcAheadObj of handleCfg[JV.PROP_SUM_CALC_AHEAD]) {
             if (!curParentPrjData[calcAheadObj["seeking_parent"]]) curParentPrjData[calcAheadObj["seeking_parent"]] = getModuleDataByKey(prjData, calcAheadObj["seeking_parent"]);
-            for (let pDataItem of curParentPrjData[calcAheadObj["seeking_parent"]].data) {
+            for (let idxP = 0; idxP < curParentPrjData[calcAheadObj["seeking_parent"]].data.length; idxP++) {
+                let pDataItem = curParentPrjData[calcAheadObj["seeking_parent"]].data[idxP];
                 let data = (pDataItem._doc)?pDataItem._doc:pDataItem;
-                for (let item of tempRstArr) {
-                    if (item[calcAheadObj["seeking_key"]] === data[calcAheadObj["parent_key"]]) {
+                for (let idx = 0; idx < tempRstArr.length; idx++) {
+                    let dtlItem = tempRstArr[idx];
+                    if (dtlItem[calcAheadObj["seeking_key"]] === data[calcAheadObj["parent_key"]]) {
                         for (let sumKey of handleCfg[JV.PROP_SUM_SUM_KEYS]) {
                             switch (calcAheadObj[JV.PROP_SUM_CACL_TYPE]) {
                                 case "+":
-                                    item[sumKey] = parseFloat(item[sumKey]) + parseFloat(data[calcAheadObj["calc_property"]]);
+                                    dtlItem[sumKey] = parseFloat(dtlItem[sumKey]) + parseFloat(data[calcAheadObj["calc_property"]]);
                                     break;
                                 case "-":
-                                    item[sumKey] = parseFloat(item[sumKey]) - parseFloat(data[calcAheadObj["calc_property"]]);
+                                    dtlItem[sumKey] = parseFloat(dtlItem[sumKey]) - parseFloat(data[calcAheadObj["calc_property"]]);
                                     break;
                                 case "*":
-                                    item[sumKey] = item[sumKey] * parseFloat(data[calcAheadObj["calc_property"]]).toFixed(4);
+                                    dtlItem[sumKey] = dtlItem[sumKey] * parseFloat(data[calcAheadObj["calc_property"]]).toFixed(4);
                                     break;
                                 case "/":
-                                    item[sumKey] = item[sumKey] / parseFloat(data[calcAheadObj["calc_property"]]).toFixed(4);
+                                    dtlItem[sumKey] = dtlItem[sumKey] / parseFloat(data[calcAheadObj["calc_property"]]).toFixed(4);
                                     break;
                                 default:
                                     break;
                             }
                         }
-                        break;
+                        // break;
                     }
                 }
             }

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

@@ -346,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] = "文本";
@@ -360,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];
         }
@@ -377,6 +384,11 @@ 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) {
@@ -447,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) {
@@ -521,7 +533,7 @@ let dataInfoMapTreeOprObj = {
             } 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);

+ 9 - 9
web/maintain/report/js/rpt_tpl_pre_handle.js

@@ -5,7 +5,7 @@
 const sort_types = ["normal", "tree", "accord_to_parent", "self_define"];
 const condition_types = ["==", "===", ">", ">=", "<", "<=", "!=", "in", "not in"];
 const pre_handle_data_objects = ["bills", "ration", "ration_glj"];
-const pre_handle_data_objects_name = ["清单", "定额", "定额工料机"];
+const pre_handle_data_objects_name = ["清单", "定额", "定额人材机"];
 const exposed_bills_properties = [
     {Name: "清单_所属项目ID", Title: "", Key: "projectID", Order: "ascend"}
     ,{Name: "清单_ID", Title: "", Key: "ID", Order: "ascend"}
@@ -44,14 +44,14 @@ const exposed_ration_properties = [
     // ,{Name: "定额_管理费率", Title: "", Key: ""}
 ];
 const exposed_prj_glj_properties = [
-    {Name: "工料机_ID", Title: "", Key: "ID"},
-    {Name: "工料机_所属定额ID", Title: "", Key: "rationID", Order: "ascend"},
-    {Name: "工料机_所属清单ID", Title: "", Key: "billsItemID", Order: "ascend"},
-    {Name: "工料机_所属工程ID", Title: "", Key: "projectID", Order: "ascend"}
-    // {Name: "工料机_代码", Title: "", Key: "code", Order: "ascend"},
-    // {Name: "工料机_名称", Title: "", Key: "name", Order: "ascend"},
-    // {Name: "工料机_单位", Title: "", Key: "unit", Order: "ascend"},
-    // {Name: "工料机_数量", Title: "", Key: "quantity", Order: "ascend"}
+    {Name: "人材机_ID", Title: "", Key: "ID"},
+    {Name: "人材机_所属定额ID", Title: "", Key: "rationID", Order: "ascend"},
+    {Name: "人材机_所属清单ID", Title: "", Key: "billsItemID", Order: "ascend"},
+    {Name: "人材机_所属工程ID", Title: "", Key: "projectID", Order: "ascend"},
+    {Name: "人材机_代码", Title: "", Key: "code", Order: "ascend"},
+    // {Name: "人材机_名称", Title: "", Key: "name", Order: "ascend"},
+    // {Name: "人材机_单位", Title: "", Key: "unit", Order: "ascend"},
+    // {Name: "人材机_数量", Title: "", Key: "quantity", Order: "ascend"}
 ];
 const exposed_properties_arr = [exposed_bills_properties, exposed_ration_properties, exposed_prj_glj_properties];
 const fixed_top_bills_nodes = [