Selaa lähdekoodia

1. 台账分解,右键新增、删除点击无效
2. 计量台账,本期未计量过的清单,变更计量,报错
3. 台账修订,控制顶部菜单可用

MaiXinRong 5 vuotta sitten
vanhempi
commit
00c88199c1
3 muutettua tiedostoa jossa 51 lisäystä ja 16 poistoa
  1. 2 2
      app/public/js/ledger.js
  2. 48 13
      app/public/js/revise.js
  3. 1 1
      app/service/stage_pos.js

+ 2 - 2
app/public/js/ledger.js

@@ -657,7 +657,7 @@ $(document).ready(function() {
                     name: '新增',
                     icon: 'fa-sign-in',
                     callback: function (key, opt) {
-                        treeOperationObj.addNode(ledgerSpread);
+                        treeOperationObj.addNode(ledgerSpread.getActiveSheet());
                     },
                     visible: function(key, opt){
                         const sheet = ledgerSpread.getActiveSheet();
@@ -671,7 +671,7 @@ $(document).ready(function() {
                     name: '删除',
                     icon: 'fa-remove',
                     callback: function (key, opt) {
-                        treeOperationObj.deleteNode(ledgerSpread);
+                        treeOperationObj.deleteNode(ledgerSpread.getActiveSheet());
                     },
                     visible: function (key, opt) {
                         const sheet = ledgerSpread.getActiveSheet();

+ 48 - 13
app/public/js/revise.js

@@ -66,12 +66,32 @@ $(document).ready(() => {
     pos.loadDatas(posData);
 
     const billsTreeSpreadObj = {
+        getDefaultSelectInfo: function (sheet) {
+            const tree = sheet.zh_tree;
+            if (!tree) return;
+            const sel = sheet.getSelections()[0];
+            const node = sheet.zh_tree.nodes[sel.row];
+            if (!node) return;
+            let count = 1;
+            if (sel.rowCount > 1) {
+                for (let r = 1; r < sel.rowCount; r++) {
+                    const rNode = sheet.zh_tree.nodes[sel.row + r];
+                    if (rNode.level > node.level) continue;
+                    if ((rNode.level < node.level) || (rNode.level === node.level && rNode.pid !== node.pid)) {
+                        toast('请选择同一清单下的节点,进行该操作');
+                        return;
+                    }
+                    count += 1;
+                }
+            }
+            return [tree, node, count];
+        },
         /**
          * 刷新顶部按钮是否可用
          * @param sheet
          * @param selections
          */
-        refreshOperationValid: function (sheet) {
+        refreshOperationValid: function (sheet, selection) {
             const setObjEnable = function (obj, enable) {
                 if (enable) {
                     obj.removeClass('disabled');
@@ -79,23 +99,38 @@ $(document).ready(() => {
                     obj.addClass('disabled');
                 }
             };
+            const sel = selection ? selection[0] : sheet.getSelections()[0];
+            const row = sel ? sel.row : -1;
             const tree = sheet.zh_tree;
-            const node = SpreadJsObj.getSelectObject(sheet);
-            const preNode = tree.getPreSiblingNode(node);
+            if (!tree) return;
+            const first = sheet.zh_tree.nodes[row];
+            let last = first, sameParent = true;
+            if (sel.rowCount > 1) {
+                for (let r = 1; r < sel.rowCount; r++) {
+                    const rNode = tree.nodes[sel.row + r];
+                    if (rNode.level > first.level) continue;
+                    if ((rNode.level < first.level) || (rNode.level === first.level && rNode.pid !== first.pid)) {
+                        sameParent = false;
+                        break;
+                    }
+                    last = rNode;
+                }
+            }
+            const preNode = tree.getPreSiblingNode(first);
             const valid = !sheet.zh_setting.readOnly;
 
-            setObjEnable($('a[type="add"]'), valid);
-            setObjEnable($('a[type="delete"]'), valid && node);
-            setObjEnable($('a[type="up-move"]'), valid && node && preNode);
-            setObjEnable($('a[type="down-move"]'), valid && node && !tree.isLastSibling(node));
-            if (isTz) {
-                const posRange = node ? pos.getLedgerPos(node.id) : [];
-                setObjEnable($('a[type="up-level"]'), valid && node && tree.getParent(node) && node.level > 2 && (!posRange || posRange.length === 0));
+            setObjEnable($('#insert'), valid && first && first.level > 1);
+            setObjEnable($('#delete'), valid && first && sameParent && first.level > 1);
+            setObjEnable($('#up-move'), valid && first && sameParent && first.level > 1 && preNode);
+            setObjEnable($('#down-move'), valid && first && sameParent && first.level > 1 && !tree.isLastSibling(last));
+            if (checkTzMeasureType()) {
+                const posRange = last ? pos.getLedgerPos(last.id) : [];
+                setObjEnable($('#up-level'), valid && first && sameParent && tree.getParent(first) && first.level > 2 && (!posRange || posRange.length === 0));
                 const preNodePosRange = preNode ? pos.getLedgerPos(preNode.id) : [];
-                setObjEnable($('a[type="down-level"]'), valid && node && preNode && (!preNodePosRange || preNodePosRange.length === 0));
+                setObjEnable($('#down-level'), valid && first && sameParent && first.level > 1 && preNode && (!preNodePosRange || preNodePosRange.length === 0));
             } else {
-                setObjEnable($('#up-level'), valid && node && tree.getParent(node));
-                setObjEnable($('#down-level'), valid && node && preNode);
+                setObjEnable($('#up-level'), valid && first && sameParent && first.level > 2 && tree.getParent(first));
+                setObjEnable($('#down-level'), valid && first && sameParent && first.level > 1 && preNode);
             }
             setObjEnable($('#cut'), valid);
             setObjEnable($('#paste'), valid);

+ 1 - 1
app/service/stage_pos.js

@@ -389,7 +389,7 @@ module.exports = app => {
                     said: this.ctx.session.sessionUser.accountId,
                     times: this.ctx.stage.curTimes,
                     order: this.ctx.stage.curOrder,
-                    contract_qty: orgPos.contract_qty,
+                    contract_qty: orgPos ? orgPos.contract_qty : 0,
                     qc_qty: qty,
                 });
             }