Browse Source

优化相关

MaiXinRong 4 years ago
parent
commit
f8faa3ba03

+ 7 - 0
app/public/js/global.js

@@ -103,6 +103,13 @@ $(function(){
     });
 });
 
+function checkShowLast (count) {
+    if (count > 12500) {
+        $('a[name=showLevel][tag=last]').hide();
+    } else {
+        $('a[name=showLevel][tag=last]').show();
+    }
+}
 
 /**
  * 提示框

+ 43 - 21
app/public/js/ledger.js

@@ -1414,8 +1414,8 @@ $(document).ready(function() {
                 return !readOnly;
             }
         };
-        billsContextMenuOptions.items.sprBlock = '----';
     }
+    billsContextMenuOptions.items.sprBlock = '----';
     if (!readOnly) {
         billsContextMenuOptions.items.sortChildren = {
             name: '顺序重排子项编号',
@@ -1546,6 +1546,7 @@ $(document).ready(function() {
                             SpreadJsObj.loadSheetData(ledgerSpread.getActiveSheet(), 'tree', ledgerTree);
                             pos.loadDatas(result.pos);
                             posOperationObj.loadCurPosData();
+                            checkShowLast(data.bills.length);
                         }, null);
                     },
                     // callback: function (file, select) {
@@ -1621,6 +1622,21 @@ $(document).ready(function() {
             return !node;
         }
     };
+    billsContextMenuOptions.items.sprTag = '----';
+    billsContextMenuOptions.items.showLast = {
+        name: '显示至最底层',
+        callback: function (key, opt, menu, e) {
+            const node = SpreadJsObj.getSelectObject(ledgerSpread.getActiveSheet());
+            setTimeout(() => {
+                showWaitingView();
+                ledgerTree.expandByCustom(x => {
+                    return (x.id === node.id) || (x.full_path.indexOf(node.ledger_id + '-') >= 0);
+                });
+                SpreadJsObj.refreshTreeRowVisible(ledgerSpread.getActiveSheet());
+                closeWaitingView();
+            }, 100);
+        },
+    };
 
     $.contextMenu(billsContextMenuOptions);
 
@@ -2183,6 +2199,8 @@ $(document).ready(function() {
         SpreadJsObj.loadSheetData(ledgerSpread.getActiveSheet(), 'tree', ledgerTree);
         SpreadJsObj.loadTopAndSelect(ledgerSpread.getActiveSheet(), ckBillsSpread);
 
+        checkShowLast(data.bills.length);
+
         pos.loadDatas(data.pos);
         posOperationObj.loadCurPosData();
         SpreadJsObj.resetTopAndSelect(posSpread.getActiveSheet());
@@ -3130,7 +3148,7 @@ $(document).ready(function() {
                 }
             }
         }, 400);
-    })
+    });
 
     // 添加审批流程按钮逻辑
     $('.book-list').on('click', 'dt', function () {
@@ -3149,7 +3167,7 @@ $(document).ready(function() {
             })
         }
         return false
-    })
+    });
 
     // 添加到审批流程中
     $('dl').on('click', 'dd', function () {
@@ -3236,24 +3254,28 @@ $(document).ready(function() {
             const tag = $(this).attr('tag');
             const tree = sheet.zh_tree;
             if (!tree) return;
-            switch (tag) {
-                case "1":
-                case "2":
-                case "3":
-                case "4":
-                case "5":
-                    tree.expandByLevel(parseInt(tag));
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-                case "last":
-                    tree.expandByCustom(() => { return true; });
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-                case "leafXmj":
-                    tree.expandToLeafXmj();
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-            }
+            setTimeout(() => {
+                showWaitingView();
+                switch (tag) {
+                    case "1":
+                    case "2":
+                    case "3":
+                    case "4":
+                    case "5":
+                        tree.expandByLevel(parseInt(tag));
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                    case "last":
+                        tree.expandByCustom(() => { return true; });
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                    case "leafXmj":
+                        tree.expandToLeafXmj();
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                }
+                closeWaitingView();
+            }, 100);
         });
     })('a[name=showLevel]', ledgerSpread.getActiveSheet());
 

+ 48 - 18
app/public/js/ledger_audit.js

@@ -95,12 +95,38 @@ $(document).ready(() => {
         SpreadJsObj.initSheet(posSpread.getActiveSheet(), posSpreadSetting);
     }
 
+    $.contextMenu({
+        selector: '#ledger-spread',
+        build: function ($trigger, e) {
+            const target = SpreadJsObj.safeRightClickSelection($trigger, e, ledgerSpread);
+            return target.hitTestType === spreadNS.SheetArea.viewport || target.hitTestType === spreadNS.SheetArea.rowHeader;
+        },
+        items: {
+            showLast: {
+                name: '显示至最底层',
+                callback: function (key, opt, menu, e) {
+                    const node = SpreadJsObj.getSelectObject(ledgerSpread.getActiveSheet());
+                    setTimeout(() => {
+                        showWaitingView();
+                        ledgerTree.expandByCustom(x => {
+                            return (x.id === node.id) || (x.full_path.indexOf(node.ledger_id + '-') >= 0);
+                        });
+                        SpreadJsObj.refreshTreeRowVisible(ledgerSpread.getActiveSheet());
+                        closeWaitingView();
+                    }, 100);
+                },
+            },
+        }
+    });
+
     postData('/tender/' + getTenderId() + '/ledger/load', null, function (data) {
         ledgerTree.loadDatas(data.bills);
         treeCalc.calculateAll(ledgerTree);
         SpreadJsObj.loadSheetData(ledgerSpread.getActiveSheet(), 'tree', ledgerTree);
         SpreadJsObj.loadTopAndSelect(ledgerSpread.getActiveSheet(), ckBillsSpread);
 
+        checkShowLast(data.bills.length);
+
         pos.loadDatas(data.pos);
         loadCurPosData();
         SpreadJsObj.resetTopAndSelect(posSpread.getActiveSheet());
@@ -241,24 +267,28 @@ $(document).ready(() => {
             if (!sheet.zh_tree) return;
             const tag = $(this).attr('tag');
             const tree = sheet.zh_tree;
-            switch (tag) {
-                case "1":
-                case "2":
-                case "3":
-                case "4":
-                case "5":
-                    tree.expandByLevel(parseInt(tag));
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-                case "last":
-                    tree.expandByCustom(() => { return true; });
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-                case "leafXmj":
-                    tree.expandToLeafXmj();
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-            }
+            setTimeout(() => {
+                showWaitingView();
+                switch (tag) {
+                    case "1":
+                    case "2":
+                    case "3":
+                    case "4":
+                    case "5":
+                        tree.expandByLevel(parseInt(tag));
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                    case "last":
+                        tree.expandByCustom(() => { return true; });
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                    case "leafXmj":
+                        tree.expandToLeafXmj();
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                }
+                closeWaitingView();
+            }, 100);
         });
     })('a[name=showLevel]', ledgerSpread.getActiveSheet());
 });

+ 40 - 19
app/public/js/revise.js

@@ -1258,6 +1258,21 @@ $(document).ready(() => {
             }
         };
     }
+    billsContextMenuOptions.items.sprTag = '----';
+    billsContextMenuOptions.items.showLast = {
+        name: '显示至最底层',
+        callback: function (key, opt, menu, e) {
+            const node = SpreadJsObj.getSelectObject(billsSheet);
+            setTimeout(() => {
+                showWaitingView();
+                billsTree.expandByCustom(x => {
+                    return (x.id === node.id) || (x.full_path.indexOf(node.ledger_id + '-') >= 0);
+                });
+                SpreadJsObj.refreshTreeRowVisible(billsSheet);
+                closeWaitingView();
+            }, 100);
+        },
+    };
     $.contextMenu(billsContextMenuOptions);
 
     // 计量单元 相关方法&绑定spreadjs事件
@@ -1799,7 +1814,9 @@ $(document).ready(() => {
         billsTree.loadDatas(result.bills);
         treeCalc.calculateAll(billsTree);
         SpreadJsObj.loadSheetData(billsSheet, SpreadJsObj.DataType.Tree, billsTree);
-        SpreadJsObj.loadTopAndSelect(billsSheet, ckBillsSpread);        
+        SpreadJsObj.loadTopAndSelect(billsSheet, ckBillsSpread);
+
+        checkShowLast(data.bills.length);
 
         pos.loadDatas(result.pos);
         posSpreadObj.loadCurPosData();
@@ -2544,24 +2561,28 @@ $(document).ready(() => {
             if (!sheet.zh_tree) return;
             const tag = $(this).attr('tag');
             const tree = sheet.zh_tree;
-            switch (tag) {
-                case "1":
-                case "2":
-                case "3":
-                case "4":
-                case "5":
-                    tree.expandByLevel(parseInt(tag));
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-                case "last":
-                    tree.expandByCustom(() => { return true; });
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-                case "leafXmj":
-                    tree.expandToLeafXmj();
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-            }
+            setTimeout(() => {
+                showWaitingView();
+                switch (tag) {
+                    case "1":
+                    case "2":
+                    case "3":
+                    case "4":
+                    case "5":
+                        tree.expandByLevel(parseInt(tag));
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                    case "last":
+                        tree.expandByCustom(() => { return true; });
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                    case "leafXmj":
+                        tree.expandToLeafXmj();
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                }
+                closeWaitingView();
+            }, 100);
         });
     })('a[name=showLevel]', billsSheet);
 

+ 25 - 19
app/public/js/revise_history.js

@@ -159,7 +159,9 @@ $(document).ready(() => {
         billsTree.loadDatas(result.bills);
         treeCalc.calculateAll(billsTree);
         SpreadJsObj.loadSheetData(billsSheet, SpreadJsObj.DataType.Tree, billsTree);
-        SpreadJsObj.loadTopAndSelect(billsSheet, ckBillsSpread);        
+        SpreadJsObj.loadTopAndSelect(billsSheet, ckBillsSpread);
+
+        checkShowLast(data.bills.length);
 
         pos.loadDatas(result.pos);
         posSpreadObj.loadCurPosData();
@@ -272,24 +274,28 @@ $(document).ready(() => {
             if (!sheet.zh_tree) return;
             const tag = $(this).attr('tag');
             const tree = sheet.zh_tree;
-            switch (tag) {
-                case "1":
-                case "2":
-                case "3":
-                case "4":
-                case "5":
-                    tree.expandByLevel(parseInt(tag));
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-                case "last":
-                    tree.expandByCustom(() => { return true; });
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-                case "leafXmj":
-                    tree.expandToLeafXmj();
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-            }
+            setTimeout(() => {
+                showWaitingView();
+                switch (tag) {
+                    case "1":
+                    case "2":
+                    case "3":
+                    case "4":
+                    case "5":
+                        tree.expandByLevel(parseInt(tag));
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                    case "last":
+                        tree.expandByCustom(() => { return true; });
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                    case "leafXmj":
+                        tree.expandToLeafXmj();
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                }
+                closeWaitingView();
+            }, 100);
         });
     })('a[name=showLevel]', billsSheet);
 

+ 49 - 29
app/public/js/stage.js

@@ -250,7 +250,7 @@ $(document).ready(() => {
         autoExpand: 3,
         // markFoldKey: 'bills-fold',
         // markFoldSubKey: window.location.pathname.split('/')[2],
-        markExpandKey: 'bills-expand',
+        markExpandKey: 'stage-bills-expand',
         markExpandSubKey: window.location.pathname.split('/')[2],
     };
     // 台账树结构计算相关设置
@@ -1453,6 +1453,21 @@ $(document).ready(() => {
                     return !node;
                 }
             },
+            showSpr: '----',
+            showLast: {
+                name: '显示至最底层',
+                callback: function (key, opt, menu, e) {
+                    const node = SpreadJsObj.getSelectObject(slSpread.getActiveSheet());
+                    setTimeout(() => {
+                        showWaitingView();
+                        stageTree.expandByCustom(x => {
+                            return (x.id === node.id) || (x.full_path.indexOf(node.ledger_id + '-') >= 0);
+                        });
+                        SpreadJsObj.refreshTreeRowVisible(slSpread.getActiveSheet());
+                        closeWaitingView();
+                    }, 100);
+                },
+            },
             exportSpr: '----',
             exportSelectNodeXlsx: {
                 name: '导出选中节点至Excel',
@@ -1890,6 +1905,7 @@ $(document).ready(() => {
         stageTree.loadDatas(result.ledgerData);
         // stageTree.loadCurStageData(curStageData);
         // stageTree.loadPreStageData(preStageData);
+        checkShowLast(result.ledgerData.length);
         treeCalc.calculateAll(stageTree);
         // 加载解锁相关
         if (result.cooperation) {
@@ -3886,35 +3902,39 @@ $(document).ready(() => {
             if (!sheet.zh_tree) return;
             const tag = $(this).attr('tag');
             const tree = sheet.zh_tree;
-            switch (tag) {
-                case "1":
-                case "2":
-                case "3":
-                case "4":
-                case "5":
-                    tree.expandByLevel(parseInt(tag));
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-                case "last":
-                    tree.expandByCustom(() => { return true; });
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-                case "leafXmj":
-                    tree.expandToLeafXmj();
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-                case "curMeasure":
-                    tree.expandByCustom(function (node) {
-                        for (const field of ['contract_tp', 'qc_tp', 'gather_tp']) {
-                            if (node[field]) {
-                                return true;
+            setTimeout(() => {
+                showWaitingView();
+                switch (tag) {
+                    case "1":
+                    case "2":
+                    case "3":
+                    case "4":
+                    case "5":
+                        tree.expandByLevel(parseInt(tag));
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                    case "last":
+                        tree.expandByCustom(() => { return true; });
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                    case "leafXmj":
+                        tree.expandToLeafXmj();
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                    case "curMeasure":
+                        tree.expandByCustom(function (node) {
+                            for (const field of ['contract_tp', 'qc_tp', 'gather_tp']) {
+                                if (node[field]) {
+                                    return true;
+                                }
                             }
-                        }
-                        return false;
-                    });
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-            }
+                            return false;
+                        });
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                }
+                closeWaitingView();
+            }, 100);
         });
     })('a[name=showLevel]', slSpread.getActiveSheet());
 

+ 52 - 22
app/public/js/stage_compare.js

@@ -134,6 +134,7 @@ $(document).ready(function () {
         masterId: 'id',
         minorId: 'lid',
         calcFields: [],
+        autoExpand: 3,
     };
     const scTree = createNewPathTree('master', scTreeSetting);
     // 加载 部位 数据
@@ -145,6 +146,30 @@ $(document).ready(function () {
     };
     const scPos = new MasterPosData(scPosSetting);
 
+    $.contextMenu({
+        selector: '#ledger-spread',
+        build: function ($trigger, e) {
+            const target = SpreadJsObj.safeRightClickSelection($trigger, e, ledgerSpread);
+            return target.hitTestType === spreadNS.SheetArea.viewport || target.hitTestType === spreadNS.SheetArea.rowHeader;
+        },
+        items: {
+            showLast: {
+                name: '显示至最底层',
+                callback: function (key, opt, menu, e) {
+                    const node = SpreadJsObj.getSelectObject(ledgerSpread.getActiveSheet());
+                    setTimeout(() => {
+                        showWaitingView();
+                        scTree.expandByCustom(x => {
+                            return (x.id === node.id) || (x.full_path.indexOf(node.ledger_id + '-') >= 0);
+                        });
+                        SpreadJsObj.refreshTreeRowVisible(ledgerSpread.getActiveSheet());
+                        closeWaitingView();
+                    }, 100);
+                },
+            },
+        }
+    });
+
     postData(window.location.pathname + '/load', {main: true, roles: scRoles}, function (result) {
         for (const r of scRoles) {
             if (r && r != 0) {
@@ -153,6 +178,7 @@ $(document).ready(function () {
             }
         }
         scTree.loadDatas(result.main.ledger);
+        checkShowLast(result.main.ledger.length);
         scPos.loadDatas(result.main.pos);
         for (const aData of result.roles) {
             calculateStageLedgerData(aData.bills);
@@ -252,28 +278,32 @@ $(document).ready(function () {
             if (!sheet.zh_tree) return;
             const tag = $(this).attr('tag');
             const tree = sheet.zh_tree;
-            switch (tag) {
-                case "1":
-                case "2":
-                case "3":
-                case "4":
-                case "5":
-                    tree.expandByLevel(parseInt(tag));
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-                case "last":
-                    tree.expandByCustom(() => { return true; });
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-                case "leafXmj":
-                    tree.expandToLeafXmj();
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-                case "curMeasure":
-                    tree.expandByCalcFields();
-                    SpreadJsObj.refreshTreeRowVisible(sheet);
-                    break;
-            }
+            setTimeout(() => {
+                showWaitingView();
+                switch (tag) {
+                    case "1":
+                    case "2":
+                    case "3":
+                    case "4":
+                    case "5":
+                        tree.expandByLevel(parseInt(tag));
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                    case "last":
+                        tree.expandByCustom(() => { return true; });
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                    case "leafXmj":
+                        tree.expandToLeafXmj();
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                    case "curMeasure":
+                        tree.expandByCalcFields();
+                        SpreadJsObj.refreshTreeRowVisible(sheet);
+                        break;
+                }
+                closeWaitingView();
+            }, 100);
         });
     })('a[name=showLevel]', ledgerSpread.getActiveSheet());