فهرست منبع

fix: 安徽导入,清单模板嵌套子清单ID问题

vian 5 سال پیش
والد
کامیت
a11ee5270b
1فایلهای تغییر یافته به همراه17 افزوده شده و 2 حذف شده
  1. 17 2
      web/building_saas/standard_interface/import/base.js

+ 17 - 2
web/building_saas/standard_interface/import/base.js

@@ -329,6 +329,22 @@ const INTERFACE_EXPORT_BASE = (() => {
     return rst;
   }
 
+  function getTemplateBillsTarget(templateBills) {
+    const templateTarget = _.cloneDeep(templateBills);
+    const ungroupedData = [];
+    function getBillsFromChildren(billsData) {
+      for (const bills of billsData) {
+        ungroupedData.push(bills);
+        if (bills.children && bills.children.length) {
+          getBillsFromChildren(bills.children);
+        }
+      }
+    }
+    getBillsFromChildren(templateTarget);
+    BILLS_UTIL.resetTreeData(ungroupedData, uuid.v1, true);
+    return templateTarget;
+  }
+
   // 处理单位工程数据
   function handleTenderData(tenders, templateData) {
     tenders.forEach((tender, index) => {
@@ -374,8 +390,7 @@ const INTERFACE_EXPORT_BASE = (() => {
         feeFile: { name: tender.name, id: `newFeeRate@@${taxData.fee_lib.id}` } // 新建费率文件
       };
       delete tender.feature;
-      const tenderDataBills = _.cloneDeep(templateData.bills);
-      BILLS_UTIL.resetTreeData(tenderDataBills, uuid.v1, true);
+      const tenderDataBills = getTemplateBillsTarget(templateData.bills);
       tender.bills = handleBills(tender.bills, tenderDataBills, tender.ID,); // 必须要拷贝一份,否则多单位工程情况下,前单位工程的清单数据会被后单位工程的覆盖
       // 给暂估材料和评标材料设置项目数据
       const setGLJRefFunc = glj => {