Ver código fonte

批量插入多行,调整

MaiXinRong 5 anos atrás
pai
commit
d4f99d8290
2 arquivos alterados com 22 adições e 2 exclusões
  1. 5 1
      app/public/js/ledger.js
  2. 17 1
      app/public/js/revise.js

+ 5 - 1
app/public/js/ledger.js

@@ -913,6 +913,7 @@ $(document).ready(function() {
 
         let batchInsertObj;
         $.contextMenu.types.batchInsert = function (item, opt, root) {
+            const self = this;
             if ($.isFunction(item.icon)) {
                 item._icon = item.icon.call(this, this, $t, key, item);
             } else {
@@ -927,7 +928,10 @@ $(document).ready(function() {
             const $obj = $('<div>' + item.name + '<input class="text-right ml-1 mr-1" type="tel" max="20" min="1" value="' + item.value + '" style="width: 30px; height: 18px; padding-right: 4px;">行</div>')
                 .appendTo(this);
             const $input = $obj.find('input');
-            const event = () => { item.batchInsert($input[0], root); };
+            const event = () => {
+                if (self.hasClass('context-menu-disabled')) return;
+                item.batchInsert($input[0], root);
+            };
             $obj.on('click', event).keypress(function (e) {if (e.keyCode === 13) { event(); }});
             $input.click((e) => {e.stopPropagation();})
                 .keyup((e) => {if (e.keyCode === 13) item.batchInsert($input[0], root);})

+ 17 - 1
app/public/js/revise.js

@@ -770,6 +770,7 @@ $(document).ready(() => {
         SpreadJsObj.addCutEvents(billsSpread, billsTreeSpreadObj.cut);
         let batchInsertObj;
         $.contextMenu.types.batchInsert = function (item, opt, root) {
+            const self = this;
             if ($.isFunction(item.icon)) {
                 item._icon = item.icon.call(this, this, $t, key, item);
             } else {
@@ -784,7 +785,11 @@ $(document).ready(() => {
             const $obj = $('<div>' + item.name + '<input class="text-right ml-1 mr-1" type="tel" max="20" min="1" value="' + item.value + '" style="width: 30px; height: 18px; padding-right: 4px;">行</div>')
                 .appendTo(this);
             const $input = $obj.find('input');
-            const event = () => { item.batchInsert($input[0], root); };
+
+            const event = () => {
+                if (self.hasClass('context-menu-disabled')) return;
+                item.batchInsert($input[0], root);
+            };
             $obj.on('click', event).keypress(function (e) {if (e.keyCode === 13) { event(); }});
             $input.click((e) => {e.stopPropagation();})
                 .keyup((e) => {if (e.keyCode === 13) item.batchInsert($input[0], root);})
@@ -868,6 +873,17 @@ $(document).ready(() => {
                             root.$menu.trigger('contextmenu:hide');
                         }
                     },
+                    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);
+                    }
                 },
                 'batchInsertBillsPos': {
                     name: '批量插入清单-计量单元',