Browse Source

优化添加清单数据过大时编辑卡顿问题

ellisran 2 weeks ago
parent
commit
ab4b34288d
1 changed files with 33 additions and 7 deletions
  1. 33 7
      app/public/js/change_revise.js

+ 33 - 7
app/public/js/change_revise.js

@@ -54,6 +54,7 @@ const checkOption = {
 
 $(document).ready(() => {
     let stdXmj, stdGcl, searchLedger;
+    let changeGclData = false;
     autoFlashHeight();
     billsSpreadSetting.cols.unshift({ title: '变更清单', colSpan: '1', rowSpan: '2', field: 'is_change', hAlign: 1, width: 60, cellType: 'checkbox', readOnly: 'readOnly.isChangeList', });
     const billsIndex = _.findIndex(billsSpreadSetting.cols, { field: 'drawing_code' }) !== -1 ? _.findIndex(billsSpreadSetting.cols, { field: 'drawing_code' }) : (_.findIndex(billsSpreadSetting.cols, { field: 'ex_tp1' }) !== -1 ? _.findIndex(billsSpreadSetting.cols, { field: 'ex_tp1' }) + 1 : billsSpreadSetting.cols.length - 1);
@@ -666,6 +667,7 @@ $(document).ready(() => {
                             billsTreeSpreadObj.refreshPosData();
                         }
                         self.refreshOperationValid(sheet);
+                        changeGclData = true;
                     });
                 });
             } else {
@@ -694,6 +696,7 @@ $(document).ready(() => {
                         }
                     }
                     self.refreshOperationValid(sheet);
+                    changeGclData = true;
                 });
             }
         },
@@ -1095,6 +1098,7 @@ $(document).ready(() => {
                     }
                     billsTreeSpreadObj.refreshTree(info.sheet, refreshNode);
                     billsTreeSpreadObj.refreshPosData();
+                    changeGclData = true;
                 });
             }
         },
@@ -1348,6 +1352,7 @@ $(document).ready(() => {
                         refreshNode.update = refreshNode.update.concat(filterNodes);
                     }
                     billsTreeSpreadObj.refreshTree(info.sheet, refreshNode);
+                    changeGclData = true;
                 }, function () {
                     SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
                 });
@@ -1505,6 +1510,7 @@ $(document).ready(() => {
                         refreshNode.update = refreshNode.update.concat(filterNodes);
                     }
                     billsTreeSpreadObj.refreshTree(info.sheet, refreshNode);
+                    changeGclData = true;
                 }, function () {
                     SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
                 });
@@ -1595,6 +1601,7 @@ $(document).ready(() => {
                     const refreshNode = sheet.zh_tree.loadPostData(result);
                     billsTreeSpreadObj.refreshTree(sheet, refreshNode);
                     billsTreeSpreadObj.loadExprToInput(sheet);
+                    changeGclData = true;
                 });
             }
         },
@@ -1626,6 +1633,7 @@ $(document).ready(() => {
                 }
                 self.refreshOperationValid(sheet);
                 removeLocalCache(copyBlockTag);
+                changeGclData = true;
             }, null, true);
         },
         topRowChanged: function (e, info) {
@@ -1735,6 +1743,7 @@ $(document).ready(() => {
                     changeList = result.changeList;
                     const refreshNode = sheet.zh_tree.loadPostData(result);
                     billsTreeSpreadObj.refreshTree(sheet, refreshNode);
+                    changeGclData = true;
                 });
             }
         },
@@ -1767,6 +1776,7 @@ $(document).ready(() => {
                     changeList = result.changeList;
                     const refreshNode = tree.loadPostData(result);
                     billsTreeSpreadObj.refreshTree(sheet, refreshNode);
+                    changeGclData = true;
                 })
             }
         },
@@ -2089,6 +2099,7 @@ $(document).ready(() => {
                 changeList = result.changeList;
                 const refreshNode = billsTree.loadPostData(result);
                 billsTreeSpreadObj.refreshTree(billsSheet, refreshNode);
+                changeGclData = true;
             });
         });
 
@@ -2576,6 +2587,7 @@ $(document).ready(() => {
                         }
                         posSpreadObj.loadCurPosData();
                     }
+                    changeGclData = true;
                 });
             }
         },
@@ -3041,6 +3053,7 @@ $(document).ready(() => {
                 const refreshNode = billsTree.loadPostData(loadResult);
                 billsTreeSpreadObj.refreshTree(billsSheet, refreshNode);
                 billsTreeSpreadObj.refreshOperationValid(billsSheet);
+                changeGclData = true;
             }, function () {
                 SpreadJsObj.reLoadRowData(info.sheet, info.row);
             });
@@ -3155,6 +3168,7 @@ $(document).ready(() => {
                     const loadResult = billsTree.loadPostData(result.ledger);
                     billsTreeSpreadObj.refreshTree(billsSheet, loadResult);
                     billsTreeSpreadObj.refreshOperationValid(billsSheet);
+                    changeGclData = true;
                 }, function () {
                     posSpreadObj.loadCurPosData();
                 });
@@ -3214,6 +3228,7 @@ $(document).ready(() => {
                     const refreshNode = billsTree.loadPostData(loadResult);
                     billsTreeSpreadObj.refreshTree(billsSheet, refreshNode);
                     billsTreeSpreadObj.refreshOperationValid(billsSheet);
+                    changeGclData = true;
                 });
             }
         },
@@ -3448,6 +3463,7 @@ $(document).ready(() => {
                 billsTreeSpreadObj.refreshTree(billsSheet, refreshNode);
                 posSpreadObj.loadCurPosData();
                 billsTreeSpreadObj.refreshOperationValid(billsSheet);
+                changeGclData = true;
             }, function () {
                 SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
             });
@@ -3471,6 +3487,7 @@ $(document).ready(() => {
                 pos.updateDatas(result.pos);
                 posSpreadObj.loadCurPosData();
                 billsTreeSpreadObj.refreshOperationValid(billsSheet);
+                changeGclData = true;
             });
         }
     };
@@ -3630,6 +3647,7 @@ $(document).ready(() => {
                 const loadResult = billsTree.loadPostData(result.ledger);
                 billsTreeSpreadObj.refreshTree(billsSheet, loadResult);
                 billsTreeSpreadObj.refreshOperationValid(billsSheet);
+                changeGclData = true;
             });
         });
 
@@ -3702,6 +3720,7 @@ $(document).ready(() => {
         billsTreeSpreadObj.refreshOperationValid(billsSheet);
         billsTreeSpreadObj.loadExprToInput(billsSheet);
         checkList.loadHisCheckData();
+        makeGclGatherData();
         console.log(billsTree);
     }, null);
     $.divResizer({
@@ -3715,13 +3734,15 @@ $(document).ready(() => {
     });
 
     function makeGclGatherData() {
-        gclGatherModel.loadLedgerData(billsTree.datas);
-        gclGatherModel.loadPosData(pos.datas);
-        gclGatherData = gclGatherModel.gatherGclData();
-        gclGatherData = _.filter(gclGatherData, function (item) {
-            return item.leafXmjs && item.leafXmjs.length !== 0;
-        });
-        gclGatherData = gclGatherData.sort(sortByCode);
+        if (changeGclData || !gclGatherData) {
+            gclGatherModel.loadLedgerData(billsTree.datas);
+            gclGatherModel.loadPosData(pos.datas);
+            gclGatherData = gclGatherModel.gatherGclData();
+            gclGatherData = _.filter(gclGatherData, function (item) {
+                return item.leafXmjs && item.leafXmjs.length !== 0;
+            });
+            gclGatherData = gclGatherData.sort(sortByCode);
+        }
     }
 
     class DealBills {
@@ -3775,6 +3796,7 @@ $(document).ready(() => {
                         billsTreeSpreadObj.refreshOperationValid(mainSheet);
                         billsSpread.focus();
                         posSpreadObj.loadCurPosData();
+                        changeGclData = true;
                     });
                 });
             }
@@ -3970,6 +3992,7 @@ $(document).ready(() => {
                             SpreadJsObj.reloadRowsBackColor(billsSheet, [sel.row, result.create[0].index]);
                             billsTreeSpreadObj.refreshOperationValid(billsSheet, selection);
                             posSpreadObj.loadCurPosData();
+                            changeGclData = true;
                             self.obj.modal('hide');
                         }, null, true);
                     } else {
@@ -4186,6 +4209,7 @@ $(document).ready(() => {
                         billsTreeSpreadObj.refreshOperationValid(mainSheet);
                         billsSpread.focus();
                         posSpreadObj.loadCurPosData();
+                        changeGclData = true;
                     });
                 });
             }
@@ -4442,6 +4466,7 @@ $(document).ready(() => {
                         billsTreeSpreadObj.refreshOperationValid(mainSheet);
                         billsSpread.focus();
                         posSpreadObj.loadCurPosData();
+                        changeGclData = true;
                     });
                 });
             }
@@ -4761,6 +4786,7 @@ $(document).ready(() => {
             billsTreeSpreadObj.refreshOperationValid(mainSheet);
             billsSpread.focus();
             posSpreadObj.loadCurPosData();
+            changeGclData = true;
         });
     };
     const stdXmjSetting = {