فهرست منبع

计算批量替换工料机后受影响的定额,同时将结果打包保存。

chenshilong 7 سال پیش
والد
کامیت
65a4ca88f5

+ 19 - 1
web/building_saas/main/js/models/calc_program.js

@@ -977,8 +977,26 @@ class CalcProgram {
             me.saveNodes(needSaveNodes);
         };
     };
-    calcRationsAndSave(nodes){//计算批量替换工料机后受影响的定额,同时将结果打包保存
 
+    calcRationsAndSave(raitonNodes){//计算批量替换工料机后受影响的定额,同时将结果打包保存
+        let me = this, leafBills = [], changedNodes = [];
+        for (let node of raitonNodes) {
+            me.calculate(node, false);
+            if (node.changed) changedNodes.push(node);
+            let leafBill = node.parent;
+            if (leafBill && leafBills.indexOf(leafBill) < 0) leafBills.push(leafBill);      // 多条定额同属一条叶子清单时,避免叶子清单重复计算
+        };
+
+        for (let node of leafBills){
+            me.calculate(node);
+            let cur = node;
+            while (cur) {
+                if (cur.changed && changedNodes.indexOf(cur) < 0) changedNodes.push(cur);
+                cur = cur.parent;
+            };
+        };
+
+        me.saveNodes(changedNodes);
     };
 
 }

+ 1 - 1
web/building_saas/main/js/views/glj_view.js

@@ -1098,7 +1098,7 @@ var gljOprObj = {
           if(node){
               node.data.adjustState=s.adjustState;
               nodes.push(node);
-              rationNode.push(node);
+              rationNodes.push(node);
           }
         });
         gljNodes.length>0?nodes = nodes.concat(gljNodes):"";

+ 1 - 1
web/building_saas/main/js/views/project_view.js

@@ -806,7 +806,7 @@ $('#property_ok').click(function () {
         };
     };
 
-    console.log(mixDatas);
+    // console.log(mixDatas);
     // return;   // for test.
     function hasMixData() {
         return Object.keys(mixDatas.properties).length > 0 ||