Selaa lähdekoodia

顶层清单过滤

TonyKang 7 vuotta sitten
vanhempi
commit
e8642f4dc6

+ 16 - 1
modules/reports/util/rpt_construct_data_util.js

@@ -619,8 +619,23 @@ function sortData(sourceData, sortCfg, prjData) {
     switch (sortType) {
         case "tree":
             rst = treeUtil.buildTreeNodeDirectly(tempRstArr);
+            let newTopArr = [];
+            if (sortCfg[JV.PROP_FILTER_TOP_BILLS_NODES] && sortCfg[JV.PROP_FILTER_TOP_BILLS_NODES].length > 0) {
+                for (let topItem of rst) {
+                    if (topItem.flags && topItem.flags.length > 0) {
+                        for (let flagItem of topItem.flags) {
+                            if (sortCfg[JV.PROP_FILTER_TOP_BILLS_NODES].indexOf(flagItem.flag) >= 0) {
+                                newTopArr.push(topItem);
+                                break;
+                            }
+                        }
+                    }
+                }
+            } else {
+                newTopArr = rst;
+            }
             let destArr = [];
-            treeUtil.getFlatArray(rst, destArr);
+            treeUtil.getFlatArray(newTopArr, destArr);
             delete sourceData.data;
             sourceData.data = destArr;
             // fsUtil.writeObjToFile(sourceData.data, "D:/GitHome/ConstructionCost/tmp/sortedAndFlattedRst.js");

+ 1 - 0
public/web/rpt_value_define.js

@@ -54,6 +54,7 @@ const JV = {
     PROP_OTHER_SUB_SORT: "其他子排序",
     PROP_HANDLE_TYPE: "预处理类型",
     PROP_FILTER_KEYS: "过滤键值集",
+    PROP_FILTER_TOP_BILLS_NODES: "清单顶节点集",
     PROP_FILTER_COMPARE_OBJ: "compareObjKey",
     PROP_FILTER_COMPARE_OBJ_KEY: "compareObjIdKey",
     PROP_FILTER_COMPARE_VAL: "compareValue",