| 
					
				 | 
			
			
				@@ -23,7 +23,9 @@ const keyFields = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 // 以下字段仅可通过树结构操作改变,不可直接通过update方式从接口提交,发现时过滤 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const readOnlyFields = ['id', 'tender_id', 'ledger_id', 'ledger_pid', 'order', 'level', 'full_path', 'is_leaf']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const calcFields = ['quantity', 'unit_price', 'total_price', 'deal_qty', 'deal_tp']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const upFields = ['unit_price']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const qtyFields = ['quantity', 'deal_qty', 'dgn_qty1', 'dgn_qty2']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+const tpFields = ['total_price', 'deal_tp']; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const zeroRange = 0.0000000001; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const rootId = -1; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 const keyPre = 'tender_node_maxId:'; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1597,27 +1599,31 @@ module.exports = app => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (this._checkCalcField(row)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         let calcData = JSON.parse(JSON.stringify(row)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         const precision = this.ctx.helper.findPrecision(this.ctx.tender.info.precision, row.unit ? row.unit : updateNode.unit); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        // 数量保留小数位数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         this.ctx.helper.checkFieldPrecision(calcData, qtyFields, precision.value); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        // 单位保留小数位数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        this.ctx.helper.checkFieldPrecision(calcData, upFields, this.ctx.tender.info.decimal.up); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        // 计算 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (row.quantity !== undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (row.unit_price  !== undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                calcData.total_price = this.ctx.helper.times(row.quantity, row.unit_price); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                calcData.total_price = this.ctx.helper.times(calcData.quantity, calcData.unit_price); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                calcData.total_price = this.ctx.helper.times(row.quantity, updateNode.unit_price); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                calcData.total_price = this.ctx.helper.times(calcData.quantity, updateNode.unit_price); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } else if (row.unit_price !== undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            calcData.total_price = this.ctx.helper.times(updateNode.quantity, row.unit_price); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            calcData.total_price = this.ctx.helper.times(updateNode.quantity, calcData.unit_price); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (row.total_price !== undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             calcData.quantity = null; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (row.deal_qty !== undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (row.unit_price !== undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                calcData.deal_tp = this.ctx.helper.times(row.deal_qty, row.unit_price); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                calcData.deal_tp = this.ctx.helper.times(calcData.deal_qty, calcData.unit_price); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                calcData.deal_tp = this.ctx.helper.times(row.deal_qty, updateNode.unit_price); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                calcData.deal_tp = this.ctx.helper.times(calcData.deal_qty, updateNode.unit_price); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } else if (row.unit_price !== undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            calcData.deal_tp = this.ctx.helper.times(updateNode.deal_qty, row.unit_price); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            calcData.deal_tp = this.ctx.helper.times(updateNode.deal_qty, calcData.unit_price); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (row.deal_tp !== undefined) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             calcData.deal_qty = null; 
			 |