Переглянути джерело

台账分解、台账修订,特殊情况,一直loading

MaiXinRong 5 роки тому
батько
коміт
c0fda0ec42
2 змінених файлів з 44 додано та 6 видалено
  1. 22 3
      app/public/js/ledger.js
  2. 22 3
      app/public/js/revise.js

+ 22 - 3
app/public/js/ledger.js

@@ -147,16 +147,35 @@ $(document).ready(function() {
                     obj.addClass('disabled');
                 }
             };
+            const invalidAll = function () {
+                setObjEnable($('#insert'), false);
+                setObjEnable($('#delete'), false);
+                setObjEnable($('#up-move'), false);
+                setObjEnable($('#down-move'), false);
+                setObjEnable($('#up-level'), false);
+                setObjEnable($('#down-level'), false);
+            };
 
             const sel = selection ? selection[0] : sheet.getSelections()[0];
             const row = sel ? sel.row : -1;
             const tree = sheet.zh_tree;
-            if (!tree) return;
+            if (!tree) {
+                invalidAll();
+                return;
+            }
             const first = sheet.zh_tree.nodes[row];
+            if (!first) {
+                invalidAll();
+                return;
+            }
             let last = first, sameParent = true;
-            if (sel.rowCount > 1) {
+            if (sel.rowCount > 1 && first) {
                 for (let r = 1; r < sel.rowCount; r++) {
-                    const rNode = tree.nodes[sel.row + r];
+                    const rNode = tree.nodes[row + r];
+                    if (!rNode) {
+                        sameParent = false;
+                        break;
+                    }
                     if (rNode.level > first.level) continue;
                     if ((rNode.level < first.level) || (rNode.level === first.level && rNode.pid !== first.pid)) {
                         sameParent = false;

+ 22 - 3
app/public/js/revise.js

@@ -101,15 +101,34 @@ $(document).ready(() => {
                     obj.addClass('disabled');
                 }
             };
+            const invalidAll = function () {
+                setObjEnable($('a[type=add]'), false);
+                setObjEnable($('a[type=delete]'), false);
+                setObjEnable($('a[type=up-move]'), false);
+                setObjEnable($('a[type=down-move]'), false);
+                setObjEnable($('a[type=up-level]'), false);
+                setObjEnable($('a[type=down-level]'), false);
+            };
             const sel = selection ? selection[0] : sheet.getSelections()[0];
             const row = sel ? sel.row : -1;
             const tree = sheet.zh_tree;
-            if (!tree) return;
+            if (!tree) {
+                invalidAll();
+                return;
+            }
             const first = sheet.zh_tree.nodes[row];
+            if (!first) {
+                invalidAll();
+                return;
+            }
             let last = first, sameParent = true, nodeUsed = first.used;
-            if (sel.rowCount > 1) {
+            if (sel.rowCount > 1 && first) {
                 for (let r = 1; r < sel.rowCount; r++) {
                     const rNode = tree.nodes[sel.row + r];
+                    if (!rNode) {
+                        sameParent = false;
+                        break;
+                    }
                     nodeUsed = nodeUsed || rNode.used;
                     if (rNode.level > first.level) continue;
                     if ((rNode.level < first.level) || (rNode.level === first.level && rNode.pid !== first.pid)) {
@@ -122,7 +141,7 @@ $(document).ready(() => {
             const preNode = tree.getPreSiblingNode(first);
             const valid = !sheet.zh_setting.readOnly;
 
-            setObjEnable($('a[type=insert]'), valid && first && first.level > 1);
+            setObjEnable($('a[type=add]'), valid && first && first.level > 1);
             setObjEnable($('a[type=delete]'), valid && first && sameParent && first.level > 1 && !nodeUsed);
             setObjEnable($('a[type=up-move]'), valid && first && sameParent && first.level > 1 && preNode);
             setObjEnable($('a[type=down-move]'), valid && first && sameParent && first.level > 1 && !tree.isLastSibling(last));