Browse Source

基本信息根据fileKind=“投标”、"招标"、"控制价"过滤数据

vian 5 years ago
parent
commit
4ae9fa1f6d

+ 8 - 8
web/building_saas/main/js/models/exportStdInterfaceBase.js

@@ -371,15 +371,15 @@ const XML_EXPORT_BASE = (() => {
      * @return {String}
      * @example getValueByKey(source.basicInformation, 'projectScale')
      * */
-    function getValueByKey(data, key) {
-        for (let d of data) {
-            if (d.key === key) {
-                return d.value;
+    function getValueByKey(items, key) {
+        for (const item of items) {
+            if (item.key === key) {
+                return item.value;
             }
-            if (d.items && d.items.length > 0) {
-                let findData = d.items.find(x => x.key === key);
-                if (findData) {
-                    return findData.value;
+            if (item.items && item.items.length) {
+                const value = getValueByKey(item.items, key);
+                if (value) {
+                    return value;
                 }
             }
         }

+ 22 - 3
web/building_saas/pm/js/pm_newMain.js

@@ -2772,17 +2772,36 @@ function changeFeeRate(engLib) {
 
 //根据文件类型筛选新的基本信息数据
 function getNeedfulBasicInfo(info, fileKind) {
-    let strMap = {
+    debugger;
+    /* let strMap = {
         1: 'tender',    //投标
         2: 'bid',       //招标
         3: 'control'    //控制价
+    }; */
+    const strMap = {
+        1: '投标',    //投标
+        2: '招标',       //招标
+        3: '控制价'    //控制价
     };
-    let needfulData = info.filter(data => !data.fileKind || data.fileKind === strMap[fileKind]);
+    return filterItems(info);
+
+    // 递归过滤
+    function filterItems(items) {
+        const filterdItems = items.filter(item => !item.fileKind || item.fileKind === strMap[fileKind]);
+        filterdItems.forEach(item => {
+            if (item.items && item.items.length) {
+                item.items = filterItems(item.items);
+            }
+        });
+        return filterdItems;
+    }
+
+    /* let needfulData = info.filter(data => !data.fileKind || data.fileKind === strMap[fileKind]);
     needfulData.forEach(nData => {
         let needfulSub = nData.items.filter(sData => !sData.fileKind || sData.fileKind === strMap[fileKind]);
         nData.items = needfulSub;
     });
-    return needfulData;
+    return needfulData; */
 }
 
 function getRequired(rst, datas) {