Quellcode durchsuchen

fix: {定额建筑安装工程费(含定额设备购置费*40%)} 使用报错

vian vor 4 Jahren
Ursprung
Commit
1743b1cb94
1 geänderte Dateien mit 4 neuen und 2 gelöschten Zeilen
  1. 4 2
      web/building_saas/main/js/models/calc_base.js

+ 4 - 2
web/building_saas/main/js/models/calc_base.js

@@ -1195,7 +1195,7 @@ let cbParser = {
   },
   //获取表达式中的中文式
   getCN: function (expr) {
-    let cnRex = /\d*[\u4e00-\u9fa5]{1,}\({0,}[\u4e00-\u9fa5]{0,}\d*%*、?[\u4e00-\u9fa5]{0,}\){0,}[\u4e00-\u9fa5]{0,}/g;
+    let cnRex = /\d*[\u4e00-\u9fa5]{1,}\({0,}[\u4e00-\u9fa5]{0,}\*?\d*%*、?[\u4e00-\u9fa5]{0,}\){0,}[\u4e00-\u9fa5]{0,}/g;
     return _.filter(expr.match(cnRex), function (data) {
       return data
     });
@@ -1231,7 +1231,8 @@ let cbParser = {
   },
   //表达式中的百分数转换成小数
   percentToNum: function (exp) {
-    let rex = /[\+,\-,\*,\/]{1}\d+(\.\d+)?%[\u4e00-\u9fa5]{0}/g;
+    // let rex = /[\+,\-,\*,\/]{1}\d+(\.\d+)?%[\u4e00-\u9fa5]{0}\'{0}\){0}/g;
+    let rex = /[\+,\-,\*,\/]{1}\d+(\.\d+)?%(?![\u4e00-\u9fa5]|\))/g;
     let percents = exp.match(rex);
     let numRex = /\d+(\.\d+)?/g;
     if (cbTools.isDef(percents)) {
@@ -1314,6 +1315,7 @@ let cbParser = {
       exps[i].compileExp = '$CBC.base(\'' + exps[i].orgExp + '\')';
       let regStr = exps[i].orgExp.replace(/\(/g, '\\\(');
       regStr = regStr.replace(/\)/g, '\\\)');
+      regStr = regStr.replace(/\*/g, '\\\*');
       v = v.replace(new RegExp(regStr, 'g'), exps[i].compileExp);
     }
     //去{}