| 
					
				 | 
			
			
				@@ -530,6 +530,24 @@ let treeNodeTools = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     uiQuantity(treeNode){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return parseFloatPlus(treeNode.data.quantity).toDecimal(decimalObj.decimal("quantity", treeNode)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getFee(treeNode, fieldName) {    // fieldName: 'common.totalFee'、'equipment.unitFee' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let ns = fieldName.split("."); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (ns.length != 2) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else if (treeNode.data.feesIndex[ns[0]] && treeNode.data.feesIndex[ns[0]][ns[1]]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return parseFloat(treeNode.data.feesIndex[ns[0]][ns[1]]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        else 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            return 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getNodeByFlag(flag) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         let bill = cbTools.findBill(flag); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         if (bill) return this.getNodeByID(bill.ID) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+         else return null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getNodeByID(ID){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return cbTools.getNodeByID(ID); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1022,11 +1040,9 @@ class CalcProgram { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 calcEstimateFee(treeNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 treeNodeTools.initSummaryFee(treeNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 treeNode.data.summaryFees.totalFee = tf; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                treeNode.data.summaryFees.estimateFee = (treeNode.data.feesIndex && treeNode.data.feesIndex.estimate) ? treeNode.data.feesIndex.estimate.totalFee:0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let bill_safe = cbTools.findBill(fixedFlag.SAFETY_CONSTRUCTION); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                treeNode.data.summaryFees.safetyFee = (bill_safe && bill_safe.feesIndex && bill_safe.feesIndex.common)?bill_safe.feesIndex.common.totalFee:0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                let bill_charge = cbTools.findBill(fixedFlag.CHARGE); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                treeNode.data.summaryFees.chargeFee = (bill_charge && bill_charge.feesIndex && bill_charge.feesIndex.common)?bill_charge.feesIndex.common.totalFee:0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                treeNode.data.summaryFees.estimateFee = treeNodeTools.getFee(treeNode, 'estimate.totalFee'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                treeNode.data.summaryFees.safetyFee = treeNodeTools.getFee(treeNodeTools.getNodeByFlag(fixedFlag.SAFETY_CONSTRUCTION), 'common.totalFee'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                treeNode.data.summaryFees.chargeFee = treeNodeTools.getFee(treeNodeTools.getNodeByFlag(fixedFlag.CHARGE), 'common.totalFee'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             treeNode.data.calcTemplate = {"calcItems": []}; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1231,4 +1247,40 @@ class CalcProgram { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let changedNodes = this.calcAllNodes(calcType); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         this.saveNodes(changedNodes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // 排除指定项的综合合价计算(用于带循环计算的情况) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    getTotalFee(excludeNodes){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        excludeNodes.push(treeNodeTools.getNodeByFlag(fixedFlag.ENGINEERINGCOST)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let me = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let rst = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        function calcNodes(nodes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            /*for (let node of nodes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (node.children.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    calcNodes(node.children); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (!excludeNodes.includes(node) && node.sourceType != ModuleNames.ration_glj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        rst = (rst + treeNodeTools.getFee(node, 'common.totalFee')).toDecimal(decimalObj.bills.totalPrice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }*/ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (let node of nodes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!excludeNodes.includes(node)){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (node.children.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        calcNodes(node.children); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (node.sourceType != ModuleNames.ration_glj) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            rst = (rst + treeNodeTools.getFee(node, 'common.totalFee')).toDecimal(decimalObj.bills.totalPrice); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        calcNodes(me.project.mainTree.roots); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |