| 
					
				 | 
			
			
				@@ -231,9 +231,17 @@ class Calculation { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 先编译公用的基础数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     compilePublics(feeRates, labourCoes, feeTypes, calcBases){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.compiledFeeRates = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.compiledLabourCoes = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.compiledTemplates = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.compiledFeeTypes = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.compiledFeeTypeNames = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.compiledCalcBases = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.saveForReports = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        me.changed = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let private_compile_feeRateFile = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (feeRates) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                me.compiledFeeRates = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (let rate of feeRates) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     me.compiledFeeRates["feeRate_" + rate.ID] = rate; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -241,7 +249,6 @@ class Calculation { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let private_compile_labourCoeFile = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (labourCoes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                me.compiledLabourCoes = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (let coe of labourCoes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     me.compiledLabourCoes["LabourCoe_" + coe.ID] = coe; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -249,8 +256,6 @@ class Calculation { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let private_compile_feeType = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (feeTypes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                me.compiledFeeTypes = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                me.compiledFeeTypeNames = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (let ft of feeTypes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     me.compiledFeeTypes[ft.type] = ft.name; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     me.compiledFeeTypes[ft.name] = ft.type;    // 中文预编译,可靠性有待验证 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -260,7 +265,6 @@ class Calculation { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let private_compile_calcBase = function() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (calcBases) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                me.compiledCalcBases = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (let cb of calcBases) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     me.compiledCalcBases[cb.dispName] = cb;         // 中文预编译,可靠性有待验证 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -271,8 +275,6 @@ class Calculation { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private_compile_labourCoeFile(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private_compile_feeType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         private_compile_calcBase(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        me.compiledTemplates = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        me.saveForReports = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     compileTemplate(template){ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -382,8 +384,6 @@ class Calculation { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				- 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     calculate($treeNode){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let me = this; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         let templateID = $treeNode.data.programID; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -400,6 +400,7 @@ class Calculation { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (!$treeNode.data.fees) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $treeNode.data.fees = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $treeNode.data.feesIndex = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                me.changed = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             for (let idx of template.compiledSeq) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -415,23 +416,32 @@ class Calculation { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 费用同步到定额 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 引入小麦的字段检测后,快速切换定额出现计算卡顿现象,过多的循环造成。这里把她的代码拆出来,减少微循环。 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (!$treeNode.data.feesIndex[calcItem.fieldName]){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    let fee = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        'fieldName': calcItem.fieldName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        'unitFee': calcItem.unitFee, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        'totalFee': calcItem.totalFee, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        'tenderUnitFee': 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        'tenderTotalFee': 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $treeNode.data.fees.push(fee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $treeNode.data.feesIndex[calcItem.fieldName] = fee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $treeNode.data.feesIndex[calcItem.fieldName].unitFee = calcItem.unitFee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    $treeNode.data.feesIndex[calcItem.fieldName].totalFee = calcItem.totalFee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (calcItem.fieldName != '') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (!$treeNode.data.feesIndex[calcItem.fieldName]){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        let fee = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            'fieldName': calcItem.fieldName, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            'unitFee': calcItem.unitFee, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            'totalFee': calcItem.totalFee, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            'tenderUnitFee': 0, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            'tenderTotalFee': 0 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $treeNode.data.fees.push(fee); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        $treeNode.data.feesIndex[calcItem.fieldName] = fee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        me.changed = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    else{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if ($treeNode.data.feesIndex[calcItem.fieldName].unitFee != calcItem.unitFee){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $treeNode.data.feesIndex[calcItem.fieldName].unitFee = calcItem.unitFee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            me.changed = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if ($treeNode.data.feesIndex[calcItem.fieldName].totalFee != calcItem.totalFee){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            $treeNode.data.feesIndex[calcItem.fieldName].totalFee = calcItem.totalFee; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            me.changed = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 }; 
			 |