| 
					
				 | 
			
			
				@@ -536,55 +536,56 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          * @param {Object} info 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				          */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         editEnded: function (e, info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-            if (info.sheet.zh_setting) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const col = info.sheet.zh_setting.cols[info.col]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const sortData = info.sheet.zh_dataType === 'tree' ? info.sheet.zh_tree.nodes : info.sheet.zh_data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const node = sortData[info.row]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const data = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    id: node.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    tender_id: node.tender_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    ledger_id: node.ledger_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 未改变值则不提交 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const orgValue = node[col.field]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (info.editingText === null) info.editingText = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                const newValue = col.wordWrap ? info.editingText : trimInvalidChar(info.editingText); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (orgValue == info.editingText || ((!orgValue || orgValue === '') && (newValue === ''))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 台账模式,检查计量单元相关 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // if (isTz) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (col.field === 'sgfh_qty' || col.field === 'sgfh_tp' || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        col.field === 'sjcl_qty' || col.field === 'sjcl_tp' || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        col.field === 'qtcl_qty' || col.field === 'qtcl_tp'|| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        col.field === 'ex_qty1' || col.field === 'ex_tp1') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (!node.children || node.children.length ===0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            const lPos = pos.getLedgerPos(node.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            if (lPos && lPos.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                toastr.error('清单含有计量单元,不可修改施工图复核数量'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                SpreadJsObj.reLoadRowData(info.sheet, info.row); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (col.field === 'b_code' && (newValue === '' || !newValue)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        const lPos = pos.getLedgerPos(node.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        if (lPos && lPos.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            toastr.error('清单含有计量单元,请先删除计量单元,再删除清单编号'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            SpreadJsObj.reLoadRowData(info.sheet, info.row); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                            return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                if (col.field === 'node_type' && newValue && newValue !== '0' && newValue !== '19') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    const sameNodeType = sortData.find(x => { return x.node_type == newValue; }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    if (sameNodeType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                        toastr.error('已存在该费用类别,请勿重复选择'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (!info.sheet.zh_setting) return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const col = info.sheet.zh_setting.cols[info.col]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const sortData = info.sheet.zh_dataType === 'tree' ? info.sheet.zh_tree.nodes : info.sheet.zh_data; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const node = sortData[info.row]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const data = { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                id: node.id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                tender_id: node.tender_id, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                ledger_id: node.ledger_id 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 未改变值则不提交 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const orgValue = node[col.field]; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (info.editingText === null) info.editingText = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            const newValue = col.wordWrap ? info.editingText : trimInvalidChar(info.editingText); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (orgValue == info.editingText || ((!orgValue || orgValue === '') && (newValue === ''))) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 台账模式,检查计量单元相关 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (col.field === 'sgfh_qty' || col.field === 'sgfh_tp' || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                col.field === 'sjcl_qty' || col.field === 'sjcl_tp' || 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                col.field === 'qtcl_qty' || col.field === 'qtcl_tp'|| 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                col.field === 'ex_qty1' || col.field === 'ex_tp1') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (!node.children || node.children.length ===0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    const lPos = pos.getLedgerPos(node.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    if (lPos && lPos.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        toastr.error('清单含有计量单元,不可修改施工图复核数量'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         SpreadJsObj.reLoadRowData(info.sheet, info.row); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 获取更新数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (col.field === 'b_code' && (newValue === '' || !newValue)) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const lPos = pos.getLedgerPos(node.id); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (lPos && lPos.length > 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    toastr.error('清单含有计量单元,请先删除计量单元,再删除清单编号'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SpreadJsObj.reLoadRowData(info.sheet, info.row); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (col.field === 'node_type' && newValue && newValue !== '0' && newValue !== '19') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const sameNodeType = sortData.find(x => { return x.node_type == newValue; }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (sameNodeType) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    toastr.error('已存在该费用类别,请勿重复选择'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    SpreadJsObj.reLoadRowData(info.sheet, info.row); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    return; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 获取更新数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            if (col.type === 'Number') { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 const exprInfo = getExprInfo(col.field); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 if (info.editingText) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     const text = newValue; 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -626,12 +627,15 @@ $(document).ready(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                         data[exprInfo.expr] = ''; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                // 更新至服务器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                postData(window.location.pathname + '/update', {postType: 'update', postData: data}, function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    const refreshNode = billsTree.loadPostData(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                    billsTreeSpreadObj.refreshTree(info.sheet, refreshNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                data[col.field] = newValue; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 更新至服务器 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            postData(window.location.pathname + '/update', {postType: 'update', postData: data}, function (result) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                const refreshNode = billsTree.loadPostData(result); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                billsTreeSpreadObj.refreshTree(info.sheet, refreshNode); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         clipboardPasting: function (e, info) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             const tree = info.sheet.zh_tree, setting = info.sheet.zh_setting; 
			 |