| 
															
																@@ -97,12 +97,18 @@ $(document).ready(function() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     const billsTag = $.billsTag({ 
															 | 
															
															 | 
															
																     const billsTag = $.billsTag({ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         selector: '#bills-tag', 
															 | 
															
															 | 
															
																         selector: '#bills-tag', 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         relaSpread: ledgerSpread, 
															 | 
															
															 | 
															
																         relaSpread: ledgerSpread, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        relaPosSpread: posSpread, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         updateUrl: window.location.pathname + '/tag', 
															 | 
															
															 | 
															
																         updateUrl: window.location.pathname + '/tag', 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         afterModify: function (nodes) { 
															 | 
															
															 | 
															
																         afterModify: function (nodes) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             SpreadJsObj.repaintNodesRowHeader(ledgerSpread.getActiveSheet(), nodes); 
															 | 
															
															 | 
															
																             SpreadJsObj.repaintNodesRowHeader(ledgerSpread.getActiveSheet(), nodes); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         }, 
															 | 
															
															 | 
															
																         }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        afterLocated:  function () { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        afterLocated:  function (lid, pos_id) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             posOperationObj.loadCurPosData(); 
															 | 
															
															 | 
															
																             posOperationObj.loadCurPosData(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if (pos_id) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                const posSheet = posSpread.getActiveSheet(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                const relaPos = posSheet.zh_data.find(x => { return x.id === pos_id; }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                SpreadJsObj.locateData(posSheet, relaPos); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         }, 
															 | 
															
															 | 
															
																         }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         afterShow: function () { 
															 | 
															
															 | 
															
																         afterShow: function () { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             ledgerSpread.refresh(); 
															 | 
															
															 | 
															
																             ledgerSpread.refresh(); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -1255,7 +1261,7 @@ $(document).ready(function() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     //     const $obj = $('<div>' + item.name +) 
															 | 
															
															 | 
															
																     //     const $obj = $('<div>' + item.name +) 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     // }; 
															 | 
															
															 | 
															
																     // }; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     // 右键菜单 
															 | 
															
															 | 
															
																     // 右键菜单 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-    const addTag = newTag({ledgerSheet: ledgerSpread.getActiveSheet(), billsTag}); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    const addTag = newTag({ledgerSheet: ledgerSpread.getActiveSheet(), posSheet: posSpread.getActiveSheet(), billsTag}); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     const billsContextMenuOptions = { 
															 | 
															
															 | 
															
																     const billsContextMenuOptions = { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         selector: '#ledger-spread', 
															 | 
															
															 | 
															
																         selector: '#ledger-spread', 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         build: function ($trigger, e) { 
															 | 
															
															 | 
															
																         build: function ($trigger, e) { 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -1743,6 +1749,36 @@ $(document).ready(function() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         }); 
															 | 
															
															 | 
															
																         }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         sjsSettingObj.setGridSelectStyle(posSpreadSetting); 
															 | 
															
															 | 
															
																         sjsSettingObj.setGridSelectStyle(posSpreadSetting); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     } 
															 | 
															
															 | 
															
																     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    posSpreadSetting.headColWidth = [50]; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    posSpreadSetting.rowHeader = [ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            rowHeaderType: 'tag', 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            setting: { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                indent: 14, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                tagSize: 0.8, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                tagFont: '8px 微软雅黑', 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                getColor: function (index, data) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    if (!data) return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    return billsTag.getPosTagsColor(data.lid, data.id); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                getTagHtml: function (index, data) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    if (!data) return; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    const getHtml = function (list) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        if (!list || list.length === 0) return ''; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        const html = []; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        for (const l of list) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            html.push('<div class="row mr-1">'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            html.push(`<div class="col-auto pr-1 ${l.tagClass}">`, '<i class="fa fa-tag"></i>', '</div>'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            html.push('<div class="col p-0">', '<p>', l.comment, '</p>', '</div>'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            html.push('</div>'); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        return html.join(''); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    }; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    return getHtml(billsTag.getPosTagsInfo(data.lid, data.id)); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    ]; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     SpreadJsObj.initSheet(posSpread.getActiveSheet(), posSpreadSetting); 
															 | 
															
															 | 
															
																     SpreadJsObj.initSheet(posSpread.getActiveSheet(), posSpreadSetting); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     //绑定计量单元编辑事件 
															 | 
															
															 | 
															
																     //绑定计量单元编辑事件 
															 | 
														
													
												
													
														
															| 
															 | 
															
																     const posOperationObj = { 
															 | 
															
															 | 
															
																     const posOperationObj = { 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -1877,13 +1913,18 @@ $(document).ready(function() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if (data.updateData.length > 0) { 
															 | 
															
															 | 
															
																             if (data.updateData.length > 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 postData('/tender/' + getTenderId() + '/pos/update', data, function (result) { 
															 | 
															
															 | 
															
																                 postData('/tender/' + getTenderId() + '/pos/update', data, function (result) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     if (type === 'delete') { 
															 | 
															
															 | 
															
																                     if (type === 'delete') { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        for (const p of result.pos) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            const posInfo = pos.getPos(p); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            billsTag.afterDeletePos(posInfo); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         pos.removeDatas(result.pos); 
															 | 
															
															 | 
															
																                         pos.removeDatas(result.pos); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         sheet.deleteRows(row, count); 
															 | 
															
															 | 
															
																                         sheet.deleteRows(row, count); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         const loadResult = ledgerTree.loadPostData(result.ledger); 
															 | 
															
															 | 
															
																                         const loadResult = ledgerTree.loadPostData(result.ledger); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         treeOperationObj.refreshTree(ledgerSpread.getActiveSheet(), loadResult); 
															 | 
															
															 | 
															
																                         treeOperationObj.refreshTree(ledgerSpread.getActiveSheet(), loadResult); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         treeOperationObj.refreshOperationValid(ledgerSpread.getActiveSheet()); 
															 | 
															
															 | 
															
																                         treeOperationObj.refreshOperationValid(ledgerSpread.getActiveSheet()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     } else { 
															 | 
															
															 | 
															
																                     } else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        pos.updateDatas(result.pos); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        const updateRst = pos.updateDatas(result.pos); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        billsTag.refreshPosTagView(updateRst.update); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         const sel = selection[0]; 
															 | 
															
															 | 
															
																                         const sel = selection[0]; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         if (sel) { 
															 | 
															
															 | 
															
																                         if (sel) { 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -1976,6 +2017,7 @@ $(document).ready(function() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 postData('/tender/' + getTenderId() + '/pos/update', data, function (result) { 
															 | 
															
															 | 
															
																                 postData('/tender/' + getTenderId() + '/pos/update', data, function (result) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     const updateRst = pos.updateDatas(result.pos); 
															 | 
															
															 | 
															
																                     const updateRst = pos.updateDatas(result.pos); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    billsTag.refreshPosTagView(updateRst.update); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     // 刷新当前行, 不适用于新增(在非下一空白行新增) 
															 | 
															
															 | 
															
																                     // 刷新当前行, 不适用于新增(在非下一空白行新增) 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     if (updateRst.create.length > 0) { 
															 | 
															
															 | 
															
																                     if (updateRst.create.length > 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         // info.sheet.addRows(info.row, 1); 
															 | 
															
															 | 
															
																                         // info.sheet.addRows(info.row, 1); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -2036,7 +2078,8 @@ $(document).ready(function() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 } 
															 | 
															
															 | 
															
																                 } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 if (datas.length > 0) { 
															 | 
															
															 | 
															
																                 if (datas.length > 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     postData('/tender/' + getTenderId() + '/pos/update', {updateType: 'update', updateData: datas}, function (result) { 
															 | 
															
															 | 
															
																                     postData('/tender/' + getTenderId() + '/pos/update', {updateType: 'update', updateData: datas}, function (result) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        pos.updateDatas(result.pos); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        const updateRst = pos.updateDatas(result.pos); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        billsTag.refreshPosTagView(updateRst.update); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         posOperationObj.loadCurPosData(); 
															 | 
															
															 | 
															
																                         posOperationObj.loadCurPosData(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         const loadResult = ledgerTree.loadPostData(result.ledger); 
															 | 
															
															 | 
															
																                         const loadResult = ledgerTree.loadPostData(result.ledger); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         treeOperationObj.refreshTree(ledgerSpread.getActiveSheet(), loadResult); 
															 | 
															
															 | 
															
																                         treeOperationObj.refreshTree(ledgerSpread.getActiveSheet(), loadResult); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -2066,6 +2109,10 @@ $(document).ready(function() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             } 
															 | 
															
															 | 
															
																             } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             if (data.updateData.length > 0) { 
															 | 
															
															 | 
															
																             if (data.updateData.length > 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 postData('/tender/' + getTenderId() + '/pos/update', data, function (result) { 
															 | 
															
															 | 
															
																                 postData('/tender/' + getTenderId() + '/pos/update', data, function (result) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    for (const p of result.pos) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        const posInfo = pos.getPos(p); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        billsTag.afterDeletePos(posInfo); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     pos.removeDatas(result.pos); 
															 | 
															
															 | 
															
																                     pos.removeDatas(result.pos); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     sheet.deleteRows(row, count); 
															 | 
															
															 | 
															
																                     sheet.deleteRows(row, count); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     const loadResult = ledgerTree.loadPostData(result.ledger); 
															 | 
															
															 | 
															
																                     const loadResult = ledgerTree.loadPostData(result.ledger); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -2175,7 +2222,8 @@ $(document).ready(function() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 } 
															 | 
															
															 | 
															
																                 } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 if (data.length > 0) { 
															 | 
															
															 | 
															
																                 if (data.length > 0) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     postData('/tender/' + getTenderId() + '/pos/paste', data, function (result) { 
															 | 
															
															 | 
															
																                     postData('/tender/' + getTenderId() + '/pos/paste', data, function (result) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        pos.updateDatas(result.pos); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        const updateRst = pos.updateDatas(result.pos); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        billsTag.refreshPosTagView(updateRst.update); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         posOperationObj.loadCurPosData(); 
															 | 
															
															 | 
															
																                         posOperationObj.loadCurPosData(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         const loadResult = ledgerTree.loadPostData(result.ledger); 
															 | 
															
															 | 
															
																                         const loadResult = ledgerTree.loadPostData(result.ledger); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         treeOperationObj.refreshTree(ledgerSpread.getActiveSheet(), loadResult); 
															 | 
															
															 | 
															
																                         treeOperationObj.refreshTree(ledgerSpread.getActiveSheet(), loadResult); 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -2266,69 +2314,95 @@ $(document).ready(function() { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         posSpread.bind(spreadNS.Events.EditStarting, posOperationObj.editStarting); 
															 | 
															
															 | 
															
																         posSpread.bind(spreadNS.Events.EditStarting, posOperationObj.editStarting); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         posSpread.bind(spreadNS.Events.EditEnded, posOperationObj.editEnded); 
															 | 
															
															 | 
															
																         posSpread.bind(spreadNS.Events.EditEnded, posOperationObj.editEnded); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         posSpread.bind(spreadNS.Events.ClipboardPasted, posOperationObj.clipboardPasted); 
															 | 
															
															 | 
															
																         posSpread.bind(spreadNS.Events.ClipboardPasted, posOperationObj.clipboardPasted); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        const mergePeg = NewMergePeg({ callback: posOperationObj.addPegs }); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        // 右键菜单 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        $.contextMenu({ 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            selector: '#pos-spread', 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            build: function ($trigger, e) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                const target = SpreadJsObj.safeRightClickSelection($trigger, e, posSpread); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                return target.hitTestType === GC.Spread.Sheets.SheetArea.viewport || target.hitTestType === GC.Spread.Sheets.SheetArea.rowHeader; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    const mergePeg = NewMergePeg({ callback: posOperationObj.addPegs }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    // 右键菜单 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    $.contextMenu({ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        selector: '#pos-spread', 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        build: function ($trigger, e) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            const target = SpreadJsObj.safeRightClickSelection($trigger, e, posSpread); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            return target.hitTestType === GC.Spread.Sheets.SheetArea.viewport || target.hitTestType === GC.Spread.Sheets.SheetArea.rowHeader; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        items: { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            'insert': { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                name: '插入', 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                icon: 'fa-plus', 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                disabled: function (key, opt) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    const node = SpreadJsObj.getSelectObject(ledgerSpread.getActiveSheet()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    return node && node.children && node.children.length > 0; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                callback: function (key, opt) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    posOperationObj.insertPos(posSpread.getActiveSheet()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                visible: function(key, opt) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    return !readOnly; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             }, 
															 | 
															
															 | 
															
																             }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            items: { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                'insert': { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    name: '插入', 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    icon: 'fa-plus', 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    disabled: function (key, opt) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        const node = SpreadJsObj.getSelectObject(ledgerSpread.getActiveSheet()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        return node && node.children && node.children.length > 0; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    }, 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    callback: function (key, opt) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        posOperationObj.insertPos(posSpread.getActiveSheet()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            'delete': { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                name: '删除', 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                icon: 'fa-remove', 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                disabled: function (key, opt) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    const sheet = posSpread.getActiveSheet(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    if (sheet.zh_data) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        const selection = sheet.getSelections(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        return sheet.zh_data.length < selection[0].row + selection[0].rowCount; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    } else { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                        return true; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     } 
															 | 
															
															 | 
															
																                     } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 }, 
															 | 
															
															 | 
															
																                 }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                'delete': { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    name: '删除', 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    icon: 'fa-remove', 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    disabled: function (key, opt) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        const sheet = posSpread.getActiveSheet(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        if (sheet.zh_data) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                            const selection = sheet.getSelections(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                            return sheet.zh_data.length < selection[0].row + selection[0].rowCount; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        } else { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                            return true; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        } 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    }, 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    callback: function (key, opt) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        posOperationObj.deletePos(posSpread.getActiveSheet()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    } 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                callback: function (key, opt) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    posOperationObj.deletePos(posSpread.getActiveSheet()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 }, 
															 | 
															
															 | 
															
																                 }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                'merge-peg': { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    name: '合并起讫桩号', 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    disabled: function (key, opt) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        const node = SpreadJsObj.getSelectObject(ledgerSpread.getActiveSheet()); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        return _.isNil(node) || _.isNil(node.b_code) || node.b_code === ''; 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    }, 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    callback: function (key, opt) { 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                        mergePeg.show(); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                    } 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                visible: function(key, opt) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    return !readOnly; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            'merge-peg': { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                name: '合并起讫桩号', 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                disabled: function (key, opt) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    const node = SpreadJsObj.getSelectObject(ledgerSpread.getActiveSheet()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    return _.isNil(node) || _.isNil(node.b_code) || node.b_code === ''; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                callback: function (key, opt) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    mergePeg.show(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                visible: function(key, opt) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    return !readOnly; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            tag: { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                name: '书签', 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                disabled: function(key, opt) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    const node = SpreadJsObj.getSelectObject(ledgerSpread.getActiveSheet()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    const pos = SpreadJsObj.getSelectObject(posSpread.getActiveSheet()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    return _.isNil(node) || _.isNil(pos); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                }, 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                callback: function(key, opt) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    const node = SpreadJsObj.getSelectObject(ledgerSpread.getActiveSheet()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    const pos = SpreadJsObj.getSelectObject(posSpread.getActiveSheet()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                    addTag.do(node, pos); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 } 
															 | 
															
															 | 
															
																                 } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             } 
															 | 
															
															 | 
															
																             } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        }); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-    } 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+    }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																     postData(window.location.pathname + '/load', {}, function (data) { 
															 | 
															
															 | 
															
																     postData(window.location.pathname + '/load', {}, function (data) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         ledgerTree.loadDatas(data.bills); 
															 | 
															
															 | 
															
																         ledgerTree.loadDatas(data.bills); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         treeCalc.calculateAll(ledgerTree); 
															 | 
															
															 | 
															
																         treeCalc.calculateAll(ledgerTree); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        checkShowLast(data.bills.length); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        pos.loadDatas(data.pos); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+ 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         for (const t of data.tags) { 
															 | 
															
															 | 
															
																         for (const t of data.tags) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-            t.node = ledgerTree.datas.find(x => {return x.id === t.lid}); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            t.node = ledgerTree.datas.find(x => { return x.id === t.lid; }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if (t.pos_id) { 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                const posRange = pos.getLedgerPos(t.lid) || []; 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                t.pos = posRange.find(x => { return x.id === t.pos_id; }); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         } 
															 | 
															
															 | 
															
																         } 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         billsTag.loadDatas(data.tags); 
															 | 
															
															 | 
															
																         billsTag.loadDatas(data.tags); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         SpreadJsObj.loadSheetData(ledgerSpread.getActiveSheet(), 'tree', ledgerTree); 
															 | 
															
															 | 
															
																         SpreadJsObj.loadSheetData(ledgerSpread.getActiveSheet(), 'tree', ledgerTree); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         SpreadJsObj.loadTopAndSelect(ledgerSpread.getActiveSheet(), ckBillsSpread); 
															 | 
															
															 | 
															
																         SpreadJsObj.loadTopAndSelect(ledgerSpread.getActiveSheet(), ckBillsSpread); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        checkShowLast(data.bills.length); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																- 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-        pos.loadDatas(data.pos); 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         posOperationObj.loadCurPosData(); 
															 | 
															
															 | 
															
																         posOperationObj.loadCurPosData(); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         SpreadJsObj.resetTopAndSelect(posSpread.getActiveSheet()); 
															 | 
															
															 | 
															
																         SpreadJsObj.resetTopAndSelect(posSpread.getActiveSheet()); 
															 | 
														
													
												
													
														
															| 
															 | 
															
																  
															 | 
															
															 | 
															
																  
															 |