Browse Source

feat: 清单工程量、定额工程量,优化编辑工程量表达式。

zhangweicheng 4 years ago
parent
commit
d4d50ccdf3

+ 12 - 0
web/building_saas/js/global.js

@@ -163,6 +163,18 @@ function replaceAll(FindText, RepText,str) {
     return str.replace(regExp, RepText);
 };
 
+//求余处理成百分号,即乘以0.01
+function handlePercent(text){
+    let arr = text.match(/[\d^%]+%/g);
+    if(arr){
+        for(let str of arr){
+            let tem = str.replace("%"," * 0.01");
+            text = text.replace(str,`${(tem)}`)
+        }
+    }
+    return text
+}   
+
 function setTimeoutSync(handle, time) {
     return new Promise(function(resolve, reject) {
         setTimeout(function () {

+ 1 - 0
web/building_saas/main/html/main.html

@@ -1738,6 +1738,7 @@
                             <button class="btn btn-secondary btn-sm" >/</button>
                             <button class="btn btn-secondary btn-sm" >(</button>
                             <button class="btn btn-secondary btn-sm" >)</button>
+                            <button class="btn btn-secondary btn-sm">%</button>
                         </p>
                     </div>
                     <div class="row" >

+ 5 - 1
web/building_saas/main/js/views/quantity_edit_view.js

@@ -149,8 +149,10 @@ let quantityEditObj = {
             return true;
         }*/
         quantityEXP = quantityEXP?quantityEXP.toUpperCase():'';//非空判断
-        quantityEXP =replaceAll('(','(',quantityEXP);//转换中文左右符号
+        quantityEXP =replaceAll('(','(',quantityEXP);//转换中文左右符号与。、
         quantityEXP =replaceAll(')',')',quantityEXP);
+        quantityEXP =replaceAll('。','.',quantityEXP);
+        quantityEXP =replaceAll('、','/',quantityEXP);
         quantityEXP = quantityEXP.replace(/[\s\r\n]/g, "")//去掉空格回车换行等字符
         let value = me.evalQuantityExp(quantityEXP,node);
         if(value!=='evalError'){
@@ -172,6 +174,8 @@ let quantityEditObj = {
     },
     evalQuantityExp(quantityEXP,node){
         let evalString = quantityEXP;
+        //求余% 换成 * 0.01 再计算
+         evalString =handlePercent(evalString);
         if( node.sourceType == ModuleNames.ration && quantityEXP.indexOf('QDL')!=-1){
             let billNode = node.parent;
             let bQuantity = 0;