| 
					
				 | 
			
			
				@@ -12,6 +12,10 @@ function checkTzMeasureType () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     return tender.measure_type === measureType.tz.value; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function transExpr(expr) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return expr.replace('=', '').replace('%', '/100'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * 从cookie中读取缓存的列显示设置,没有则取默认 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  * @returns {*[]} 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -481,6 +485,22 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     SpreadJsObj.initSheet(spSpread.getActiveSheet(), posSpreadSetting); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const stageTreeSpreadObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        loadExprToInput(sheet) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const sel = sheet.getSelections()[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const col = sheet.zh_setting.cols[sel.col], cell = sheet.getCell(sel.row, sel.col); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (col.type === 'Number') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const data = SpreadJsObj.getSelectObject(sheet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const nodePos = stagePos.getLedgerPos(data.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (nodePos && nodePos.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $('#bills-expr').val('').attr('readOnly', true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    $('#bills-expr').val(data[col.field]).attr('field', col.field).attr('org', data[col.field]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        .attr('readOnly', readOnly || cell.locked()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $('#bills-expr').val('').attr('readOnly', true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         refreshTreeNodes: function (sheet, nodes) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const tree = sheet.zh_tree; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (!tree) { return } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -497,7 +517,22 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const node = sortData[info.row], updateData = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const orgValue = node[col.field]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const newValue =  col.type === 'Number' ? parseFloat(info.editingText) : info.editingText; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let newValue = info.editingText; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (col.type === 'Number') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    const num = _.toNumber(newValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (num) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        newValue = num; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            newValue = math.evaluate(transExpr(newValue)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } catch(err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            toastr.error('输入的表达式非法'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            SpreadJsObj.reLoadRowData(info.sheet, info.row); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (orgValue == newValue || ((!orgValue || orgValue === '') && (newValue === ''))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -548,6 +583,7 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 posSearch.search(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             SpreadJsObj.saveTopAndSelect(info.sheet, ckBillsSpread); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            stageTreeSpreadObj.loadExprToInput(info.sheet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         deletePress(sheet) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (sheet.zh_setting && sheet.zh_dataType === 'tree') { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -625,13 +661,14 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             if (info.sheet.zh_setting && info.sheet.zh_tree) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const sheet = info.sheet, setting = info.sheet.zh_setting; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const filterNodes = [], datas = [], dgnDatas = []; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                let bHint = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 for (let iRow = 0; iRow < info.cellRange.rowCount; iRow++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     const curRow = iRow + info.cellRange.row; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     const node = sheet.zh_tree.getItemsByIndex(curRow); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     const data = {lid: node.id}, dgnData = {id: node.id}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    let filter = true, filterDgn = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    let filter = false, filterDgn = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     for (let iCol = 0; iCol < info.cellRange.colCount; iCol++) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         const curCol = info.cellRange.col + iCol; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         const col = info.sheet.zh_setting.cols[curCol]; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -644,12 +681,41 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             if (nodePos && nodePos.length > 0) continue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        const text = sheet.getText(curRow, curCol); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         if (setting.dgnUpFields.indexOf(col.field) !== -1) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            dgnData[col.field] = _.toNumber(sheet.getText(curRow, curCol)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            filterDgn = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            const num = _.toNumber(text); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (num) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                dgnData[col.field] = num; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    dgnData[col.field] = math.evaluate(transExpr(text)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } catch(err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    if (!bHint) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        toastr.warning('粘贴了非法表达式,已过滤'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        bHint = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    filterDgn = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            data[col.field] = col.type === 'Number' ? _.toNumber(sheet.getText(curRow, curCol)) : sheet.getText(curRow, curCol); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            filter = false; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (col.type === 'Number') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                const num = _.toNumber(text); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if (num) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    data[col.field] = num; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        data[col.field] = math.evaluate(transExpr(text)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } catch(err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        if (!bHint) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            toastr.warning('粘贴了非法表达式,已过滤'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            bHint = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        filter = true; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                data[col.field] = text; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     if (filter && filterDgn) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -837,8 +903,61 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!readOnly) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $('#bills-expr').bind('change mouseleave', function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const expr = $(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const sheet = slSpread.getActiveSheet(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const select = SpreadJsObj.getSelectObject(sheet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const field = expr.attr('field'), orgValue = expr.attr('org'), updateData = {}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            let newValue = expr.val(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const num = _.toNumber(newValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (num) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                newValue = num; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    newValue = math.evaluate(transExpr(newValue)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } catch(err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    toastr.error('输入的表达式非法'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (orgValue === newValue || (!orgValue && newValue == '')) { return; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (field.indexOf('_dgn_') > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                updateData.dgn = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    id: select.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                updateData.dgn[field] = newValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                updateData.stage = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    lid: select.id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                updateData.stage[field] = newValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 更新至服务器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            postData(window.location.pathname + '/update', {bills: updateData}, function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const nodes = stageTree.loadPostStageData(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                expr.val(select[field]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                stageTreeSpreadObj.refreshTreeNodes(slSpread.getActiveSheet(), nodes); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    stageTreeSpreadObj.loadExprToInput(slSpread.getActiveSheet()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     const stagePosSpreadObj = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        loadExprToInput(sheet) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const sel = sheet.getSelections()[0]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const col = sheet.zh_setting.cols[sel.col], cell = sheet.getCell(sel.row, sel.col); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (col.type === 'Number') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const data = SpreadJsObj.getSelectObject(sheet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $('#pos-expr').val(data[col.field]).attr('field', col.field).attr('org', data[col.field]) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    .attr('row', sel.row).attr('readOnly', readOnly || cell.locked()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                $('#pos-expr').val('').attr('readOnly', true); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         /** 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          * 加载部位明细 根据当前台账选择节点 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          */ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -913,7 +1032,22 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     data.updateType = 'update'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     data.updateData = {pid: posData.id, lid: posData.lid}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    data.updateData[col.field] = col.type === 'Number' ? parseFloat(info.editingText) : info.editingText; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (col.type === 'Number') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        const num = _.toNumber(info.editingText); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        if (num) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            data.updateData[col.field] = num; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                data.updateData[col.field] = math.evaluate(transExpr(info.editingText)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } catch(err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                toastr.error('输入的表达式非法'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                SpreadJsObj.reLoadRowData(info.sheet, info.row); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        data.updateData[col.field] = info.editingText; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 // 提交数据到服务器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 postData(window.location.pathname + '/update', {pos: data}, function (result) { 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -982,8 +1116,20 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             const curCol = info.cellRange.col + iCol; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             const colSetting = info.sheet.zh_setting.cols[curCol]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             newData[colSetting.field] = info.sheet.getText(curRow, curCol); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (colSetting.type === 'Number') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                newData[colSetting.field] = _.toNumber(newData[colSetting.field]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                            if (col.type === 'Number') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                const num = _.toNumber(newData[colSetting.field]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if (num) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    newData[colSetting.field] = num; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        newData[colSetting.field] = math.evaluate(transExpr(newData[colSetting.field])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } catch(err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        toastr.error('输入的表达式非法'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        self.loadCurPosData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         data.updateData.push(newData); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -999,8 +1145,19 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 const curCol = info.cellRange.col + iCol; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 const colSetting = info.sheet.zh_setting.cols[curCol]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 newData[colSetting.field] = info.sheet.getText(curRow, curCol); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                if (colSetting.type === 'Number') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                    newData[colSetting.field] = _.toNumber(newData[colSetting.field]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                if (col.type === 'Number') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    const num = _.toNumber(newData[colSetting.field]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    if (num) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        newData[colSetting.field] = num; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            newData[colSetting.field] = math.evaluate(transExpr(newData[colSetting.field])); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        } catch(err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            toastr.error('输入的表达式非法'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            self.loadCurPosData(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                             data.updateData.push(newData); 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1090,6 +1247,9 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        selectionChanged: function (e, info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            stagePosSpreadObj.loadExprToInput(info.sheet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     // 加载上下窗口resizer 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     $.divResizer({ 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1116,7 +1276,42 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     spSpread.bind(spreadNS.Events.ClipboardPasting, stagePosSpreadObj.clipboardPasting); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     spSpread.bind(spreadNS.Events.ClipboardPasted, stagePosSpreadObj.clipboardPasted); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     spSpread.bind(spreadNS.Events.EditStarting, stagePosSpreadObj.editStarting); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    spSpread.bind(spreadNS.Events.SelectionChanged, stagePosSpreadObj.selectionChanged); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     SpreadJsObj.addDeleteBind(spSpread, stagePosSpreadObj.deletePress); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    if (!readOnly) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        $('#pos-expr').bind('change mouseleave', function () { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const expr = $(this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const posSheet = spSpread.getActiveSheet(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const select = SpreadJsObj.getSelectObject(posSheet); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const field = expr.attr('field'), orgValue = expr.attr('org'), newValue = expr.val(), row = expr.attr('row'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (orgValue === newValue || (!orgValue && newValue == '')) { return; } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const data = {pid: select.id, lid: select.lid}; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const num = _.toNumber(newValue); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (num) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                data[field] = num; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    data[field] = math.evaluate(transExpr(newValue)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } catch (err) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    toastr.error('输入的表达式非法'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 提交数据到服务器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            postData(window.location.pathname + '/update', {pos: {updateType: 'update', updateData: data}}, function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (result.pos) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    stagePos.updateDatas(result.pos.pos); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    stagePos.loadCurStageData(result.pos.curStageData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    expr.val(select[field]); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SpreadJsObj.reLoadRowData(posSheet, _.toNumber(row)); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const refreshData = stageTree.loadPostStageData(result.ledger); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                stageTreeSpreadObj.refreshTreeNodes(slSpread.getActiveSheet(), refreshData); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     if (!checkTzMeasureType()) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         $.contextMenu({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             selector: '#stage-pos', 
			 |