chenshilong 4 years ago
parent
commit
a82312a7ec
1 changed files with 16 additions and 14 deletions
  1. 16 14
      web/building_saas/main/js/models/calc_program.js

+ 16 - 14
web/building_saas/main/js/models/calc_program.js

@@ -159,7 +159,8 @@ let calcTools = {
     },
     forceSelect: function (treeNode, rowsCount = 1, colsCount = 2){
         projectObj.mainController.tree.selected = treeNode;
-        let idx = projectObj.project.mainTree.items.indexOf(treeNode);
+        let tree = treeNode.tree;
+        let idx = tree.items.indexOf(treeNode);
         let sheet = projectObj.mainSpread.getActiveSheet();
         sheet.setSelection(idx, 0, rowsCount, colsCount);
         sheet.showRow(idx, GC.Spread.Sheets.VerticalPosition.center);
@@ -502,7 +503,7 @@ let calcTools = {
 
         // 总造价暂估费
         if (me.isTotalCostBill(treeNode)){
-            let nodes = projectObj.project.mainTree.roots;
+            let nodes = treeNode.tree.roots;
             for (let node of nodes){
                 if (me.isTotalCostBill(node)) break;
                 let eU = 0, eT = 0, eTU = 0, eTT = 0;
@@ -949,7 +950,7 @@ let calcTools = {
         return (treeNode.data.quantity && parseFloat(treeNode.data.quantity));
     },
 
-    getRationsByProjectGLJ(PGLJID){
+    getRationsByProjectGLJ(PGLJID, tree = projectObj.project.mainTree){
         let rationIDs = [];
         let RGs = projectObj.project.ration_glj.datas;
         let PGLJIDs = [];
@@ -965,13 +966,13 @@ let calcTools = {
         };
 
         let rationNodes = [];
-        let nodes = projectObj.project.mainTree.nodes;
+        let nodes = tree.nodes;
         for (let rID of rationIDs){
             rationNodes.push(nodes['id_' + rID]);
         };
 
         // 工料机形式的定额
-        let items = projectObj.project.mainTree.items;
+        let items = tree.items;
         for (let item of items){
             if (PGLJIDs.indexOf(item.data.projectGLJID)  !== -1)
                 rationNodes.push(item);
@@ -979,9 +980,9 @@ let calcTools = {
 
         return rationNodes;
     },
-    getNodesByProgramID(programID){
+    getNodesByProgramID(programID, tree = projectObj.project.mainTree){
         let discreteNodes = [];
-        let nodes = projectObj.project.mainTree.items;
+        let nodes = tree.items;
         for (let node of nodes){
             if (node.data.programID == programID)
                 discreteNodes.push(node);
@@ -1478,8 +1479,8 @@ let analyzer = {
             return true
         else return false;
     },
-    templateIsUsed: function (ID){
-        let nodes = projectObj.project.mainTree.items;
+    templateIsUsed: function (ID, tree = projectObj.project.mainTree){
+        let nodes = tree.items;
         for (let node of nodes){
               if (node.data && node.data.programID && node.data.programID == ID) {
                   return true;
@@ -2055,7 +2056,7 @@ class CalcProgram {
             projectObj.project.projectInfo.lastFileVer = VERSION;
             // 批量树结点计算后,计算程序早已物是人非,所以这里要重新计算一下。警告:第二个参数千万不能改成3,否则死循环!
             if (activeSubSheetIsCalcProgram())
-                calcProgramObj.refreshCalcProgram(projectObj.project.mainTree.selected, 2);
+                calcProgramObj.refreshCalcProgram(treeNodes.tree.selected, 2);
             $.bootstrapLoading.end();
         });
     };
@@ -2096,7 +2097,8 @@ class CalcProgram {
         调价相关参数:
         tender:                 null:不调价(普通计算)。 1: 正向调价   2:反向调价-调子目    3: 反向调价-调工料机
     */
-    calcAllNodes(calcType = calcAllType.catAll, tender){
+
+    calcAllNodes(calcType = calcAllType.catAll, tender, tree = projectObj.project.mainTree){
         let me = this;
         let changedNodes = [];
         function calcNodes(nodes) {
@@ -2117,11 +2119,11 @@ class CalcProgram {
         if (calcType == calcAllType.catRations)
             calcType == calcAllType.catAll;
 
-        calcNodes(me.project.mainTree.roots);
+        calcNodes(tree.roots);
         me.calcFormulaNodes(changedNodes, tender);
-
+        debugger;
         if (tender){    // 普通计算不执行,只有3种调价计算才清。
-            for(let node of projectObj.project.mainTree.items){
+            for(let node of tree.items){
                 this.clearTenderCache(node);
             };
         };