| 
					
				 | 
			
			
				@@ -4,11 +4,11 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 let executeObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ration: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    treeNode: null, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     at: function(ID) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = executeObj, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             rst = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        rst = me.ration.data.calcTemplate.compiledTemplate[ID].unitFee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        rst = me.treeNode.data.calcTemplate.compiledTemplate[ID].unitFee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         rst = parseFloat(rst); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         return rst; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -18,7 +18,7 @@ let executeObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         if (base != null) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let price = 0, tmpSum = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            for (let glj of me.ration.data.gljList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for (let glj of me.treeNode.data.gljList) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (base.gljTypes.indexOf(glj.type) >= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (base.calcType == baseCalc){ price = glj["basePrice"];} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     else if (base.calcType == adjustCalc){price = glj["adjustPrice"];} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -159,17 +159,17 @@ class Calculation { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    calculate($RATION){         // 参数$RATION也可以是清单 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    calculate($treeNode){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        let template = $RATION.data.calcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        let template = $treeNode.data.calcTemplate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        if ($RATION && template.hasCompiled) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if ($treeNode && template.hasCompiled) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             let $CE = executeObj; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            $CE.ration = $RATION; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            $CE.treeNode = $treeNode; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (!$RATION.fees) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $RATION.fees = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                $RATION.feesIndex = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!$treeNode.fees) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $treeNode.fees = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $treeNode.feesIndex = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (let idx of template.compiledSeq) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -182,11 +182,13 @@ class Calculation { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     calcItem.feeRate = feeRate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 calcItem.unitFee = eval(calcItem.compiledExpr) * feeRate * 0.01;   // 如果eval()对清单树有影响,就换成小麦的Expression对象再试 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                calcItem.totalFee = calcItem.unitFee * 3;     // AAAAAA 测试值,因目前定额无数量(保存不上) $RATION.data.Quantity 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let quantity = $treeNode.data.quantity; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!quantity) quantity = 0; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                calcItem.totalFee = calcItem.unitFee * quantity; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 费用同步到定额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 引入小麦的字段检测后,快速切换定额出现计算卡顿现象,过多的循环造成。这里把她的代码拆出来,减少微循环。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!$RATION.feesIndex[calcItem.fieldName]){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!$treeNode.feesIndex[calcItem.fieldName]){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     let fee = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         'fieldName': calcItem.fieldName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         'unitFee': calcItem.unitFee, 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -194,17 +196,14 @@ class Calculation { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         'tenderUnitFee': 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         'tenderTotalFee': 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $RATION.fees.push(fee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $RATION.feesIndex[calcItem.fieldName] = fee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $treeNode.fees.push(fee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $treeNode.feesIndex[calcItem.fieldName] = fee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $RATION.feesIndex[calcItem.fieldName].unitFee = calcItem.unitFee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $RATION.feesIndex[calcItem.fieldName].totalFee = calcItem.totalFee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $treeNode.feesIndex[calcItem.fieldName].unitFee = calcItem.unitFee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $treeNode.feesIndex[calcItem.fieldName].totalFee = calcItem.totalFee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-//module.exports = new calculation(); 
			 |