Browse Source

fix: (接口)导入接口文件的费用计算基数如“{F38}*3%”,需处理删除花括号“{}”

BUG #3057
vian 5 năm trước cách đây
mục cha
commit
9690504337
1 tập tin đã thay đổi với 8 bổ sung3 xóa
  1. 8 3
      web/building_saas/standard_interface/import/base.js

+ 8 - 3
web/building_saas/standard_interface/import/base.js

@@ -308,7 +308,7 @@ const INTERFACE_EXPORT_BASE = (() => {
         }
         if (child.rowCode) {
           const regStr = /{[^{}]+}/.test(child.rowCode) ? child.rowCode : `\\b${child.rowCode}\\b`;
-          rowCodeData.push({ reg: new RegExp(regStr, 'g'), ID: child.ID });
+          rowCodeData.push({ reg: new RegExp(regStr, 'g'), ID: child.ID, rowCode: child.rowCode });
         }
         if (child.calcBase) {
           toBeTransformBills.push(child);
@@ -321,8 +321,13 @@ const INTERFACE_EXPORT_BASE = (() => {
     setBills(billsTarget, -1);
     // 转换计算基数,将行引用转换为ID引用
     toBeTransformBills.forEach(bills => {
-      rowCodeData.forEach(({ reg, ID }) => {
-        bills.calcBase = bills.calcBase.replace(reg, `@${ID}`);
+      rowCodeData.forEach(({ reg, ID, rowCode }) => {
+        const rowCodeReg = new RegExp(`{${rowCode}}`);
+        if (rowCodeReg.test(bills.calcBase)) {
+          bills.calcBase = bills.calcBase.replace(rowCodeReg, `@${ID}`);
+        } else {
+          bills.calcBase = bills.calcBase.replace(reg, `@${ID}`);
+        }
       });
     });
     rst.forEach(bills => delete bills.children);