瀏覽代碼

重排子项编号调整

MaiXinRong 2 年之前
父節點
當前提交
ebd779717b
共有 2 個文件被更改,包括 30 次插入5 次删除
  1. 13 5
      app/public/js/ledger.js
  2. 17 0
      app/public/js/path_tree.js

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

@@ -986,12 +986,20 @@ $(document).ready(function() {
             const select = SpreadJsObj.getSelectObject(sheet);
             if (!select || !select.code) return;
 
-            const recursiveSortCode = function (data, parentCode, children) {
+            const getChildSort = function (i, split) {
+                if (i <= 0) throw '参数错误';
+                switch(split) {
+                    case '0': return i < 10 ? split + i : i + '';
+                    case '-': return split + i;
+                }
+            };
+
+            const recursiveSortCode = function (data, parentCode, children, split) {
                 if (!children || children.length === 0) return;
 
                 for (const [i, child] of children.entries()) {
                     if (!child.b_code || child.b_code === '') {
-                        const code = parentCode + '-' + (i + 1);
+                        const code = parentCode + getChildSort(i + 1, split);
                         const cData = tree.getNodeKeyData(child);
                         cData.code = code;
                         data.push(cData);
@@ -1002,7 +1010,7 @@ $(document).ready(function() {
                 }
             };
             const data = [];
-            recursiveSortCode(data, select.code, select.children);
+            recursiveSortCode(data, select.code, select.children, tree.getCodeSplit());
             if (data.length > 0) {
                 postData(window.location.pathname + '/update', {postType: 'update', postData: data}, function (result) {
                     const refreshNode = tree.loadPostData(result);
@@ -1420,12 +1428,12 @@ $(document).ready(function() {
             icon: 'fa-sort-numeric-asc',
             disabled: function (key, opt) {
                 const node = SpreadJsObj.getSelectObject(ledgerSpread.getActiveSheet());
-                return !node || !node.code || !node.children || node.children === 0 || node.code.indexOf('-') < 0;
+                return !node || !node.code || !node.children || node.children === 0;// || node.code.indexOf('-') < 0;
             },
             callback: function (key, opt) {
                 treeOperationObj.sortCode(ledgerSpread.getActiveSheet());
             },
-            visible: function (key, opt) {;
+            visible: function (key, opt) {
                 return !readOnly;
             }
         };

+ 17 - 0
app/public/js/path_tree.js

@@ -1023,6 +1023,23 @@ const createNewPathTree = function (type, setting) {
                 return false;
             })
         }
+
+        checkCodeType() {
+            for (const node of this.nodes) {
+                if (!node.code) continue;
+
+                if (node.code.indexOf('-') >= 0) {
+                    return '07';
+                } else if (node.code.length > 5) {
+                    const num = _.toNumber(node.code);
+                    if (num && num > 10000) return '18';
+                }
+            }
+            return '18';
+        }
+        getCodeSplit() {
+            return this.checkCodeType() === '07' ? '-' : '0';
+        }
     }
 
     class LedgerTree extends FxTree {