Explorar o código

台账修订,右键,添加“新增”,“删除”菜单

MaiXinRong %!s(int64=5) %!d(string=hai) anos
pai
achega
65af39c771
Modificáronse 1 ficheiros con 53 adicións e 0 borrados
  1. 53 0
      app/public/js/revise.js

+ 53 - 0
app/public/js/revise.js

@@ -611,6 +611,59 @@ $(document).ready(() => {
                 return target.hitTestType === spreadNS.SheetArea.viewport || target.hitTestType === spreadNS.SheetArea.rowHeader;
                 return target.hitTestType === spreadNS.SheetArea.viewport || target.hitTestType === spreadNS.SheetArea.rowHeader;
             },
             },
             items: {
             items: {
+                'create': {
+                    name: '新增',
+                    icon: 'fa-sign-in',
+                    callback: function (key, opt) {
+                        billsTreeSpreadObj.baseOpr(billsSheet, 'add');
+                    },
+                    disabled: function (key, opt) {
+                        const sheet = billsSheet;
+                        const selection = sheet.getSelections();
+                        const sel = selection ? selection[0] : sheet.getSelections()[0];
+                        const row = sel ? sel.row : -1;
+                        const tree = sheet.zh_tree;
+                        if (!tree) return true;
+                        const first = sheet.zh_tree.nodes[row];
+                        const valid = !sheet.zh_setting.readOnly;
+                        return !(valid && first && first.level > 1);
+                    }
+                },
+                'delete': {
+                    name: '删除',
+                    icon: 'fa-remove',
+                    callback: function (key, opt) {
+                        billsTreeSpreadObj.baseOpr(billsSheet, 'delete');
+                    },
+                    disabled: function (key, opt) {
+                        const sheet = billsSheet;
+                        const selection = sheet.getSelections();
+                        const sel = selection ? selection[0] : sheet.getSelections()[0];
+                        const row = sel ? sel.row : -1;
+                        const tree = sheet.zh_tree;
+                        if (!tree) return true;
+                        const first = sheet.zh_tree.nodes[row];
+                        let last = first, sameParent = true, nodeUsed = first.used;
+                        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)) {
+                                    sameParent = false;
+                                    break;
+                                }
+                                last = rNode;
+                            }
+                        }
+                        const valid = !sheet.zh_setting.readOnly;
+                        return !(valid && first && sameParent && !(first.level === 1 && first.node_type) && !nodeUsed);
+                    }
+                },
                 'batchInsertBillsPos': {
                 'batchInsertBillsPos': {
                     name: '批量插入节点-部位',
                     name: '批量插入节点-部位',
                     icon: 'fa-sign-in',
                     icon: 'fa-sign-in',