| 
					
				 | 
			
			
				@@ -1422,7 +1422,7 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 $('#calc-by-ratio').modal('hide'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-        exportExcel: function (filename, nodes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        exportExcel: function (filename, nodes, withPos = true) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const exportNodesData = function (data, nodes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (const node of nodes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     data.push({ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1438,10 +1438,12 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         c_dgn_qty1: node.c_dgn_qty1, c_dgn_qty2: node.c_dgn_qty2, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         final_dgn_price: node.final_dgn_price, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         postil: node.postil, drawing_code: node.drawing_code, memo: node.memo, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        contract_expr_str: node.calc_expr ? TreeExprCalc.expr2ExprStr(node.calc_expr) : '', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (node.children && node.children.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         exportNodesData(data, node.children); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (!withPos) continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         const posRange = stagePos.getLedgerPos(node.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (posRange && posRange.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             for (const [i, p] of posRange.entries()) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1802,6 +1804,17 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     return !node; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            exportContractExprXlsx: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                name: '导出本期合同计量公式', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                callback: function(key, opt, menu, e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    exportExcelSetting.cols.push({title: '本期合同计量计算式', colSpan: '1', rowSpan: '2', field: 'contract_expr_str', hAlign: 0, width: 140, formatter: '@'}); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    stageTreeSpreadObj.exportExcel($('.sidebar-title').attr('data-original-title') + '本期合同计量公式.xlsx', null, false); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    exportExcelSetting.cols.splice(exportExcelSetting.cols.length - 1, 1); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                visible: function(key, opt) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return contractExpr; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             importSpr: '---', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             importStageGcl: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 name: '导入(其他标段)工程量清单计量数据', 
			 |