浏览代码

台账分解,删除、上下移、升降级可用调整

MaiXinRong 5 年之前
父节点
当前提交
ab94a7cfaa
共有 2 个文件被更改,包括 27 次插入141 次删除
  1. 27 95
      app/public/js/ledger.js
  2. 0 46
      app/public/js/path_tree.js

+ 27 - 95
app/public/js/ledger.js

@@ -118,23 +118,35 @@ $(document).ready(function() {
             const sel = selection ? selection[0] : sheet.getSelections()[0];
             const row = sel ? sel.row : -1;
             const tree = sheet.zh_tree;
-            if (!tree) { return; }
-            const node = sheet.zh_tree.nodes[row];
-            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($('#insert'), valid && node && node.level > 1);
-            setObjEnable($('#delete'), valid && node && node.level > 1);
-            setObjEnable($('#up-move'), valid && node && node.level > 1 && preNode);
-            setObjEnable($('#down-move'), valid && node && node.level > 1 && !tree.isLastSibling(node));
+            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 = node ? pos.getLedgerPos(node.id) : [];
-                setObjEnable($('#up-level'), valid && node && tree.getParent(node) && node.level > 2 && (!posRange || posRange.length === 0));
+                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($('#down-level'), valid && node && node.level > 1 && 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 && node.level > 2 && tree.getParent(node));
-                setObjEnable($('#down-level'), valid && node && node.level > 1 && 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);
@@ -212,12 +224,6 @@ $(document).ready(function() {
                 self.refreshTree(sheet, refreshNode);
                 self.refreshOperationValid(sheet);
             });
-            // SpreadJsObj.massOperationSheet(sheet, function () {
-            //     tree.baseOperation('/tender/' + getTenderId() + '/ledger/base-operation', node, 'add', function (result) {
-            //         self.refreshTree(sheet, result);
-            //         self.refreshOperationValid(sheet);
-            //     });
-            // });
         },
         /**
          * 删除选中节点
@@ -266,22 +272,6 @@ $(document).ready(function() {
                     self.refreshOperationValid(sheet);
                 });
             }
-            /*const self = this;
-            const sheet = spread.getActiveSheet();
-            const sel = sheet.getSelections()[0];
-            const row = sel.row;
-
-            const tree = sheet.zh_tree;
-            if (!tree) { return; }
-
-            const node = tree.nodes[row];
-            if (!node) { return; }
-
-            tree.baseOperation('/tender/' + getTenderId() + '/ledger/base-operation', node, 'up-move', function (result) {
-                self.refreshTree(sheet, result);
-                sheet.setSelection(tree.nodes.indexOf(node), sel.col, sel.rowCount, sel.colCount);
-                self.refreshOperationValid(sheet);
-            });*/
         },
         /**
          * 下移选中节点
@@ -306,22 +296,6 @@ $(document).ready(function() {
                     self.refreshOperationValid(sheet);
                 });
             }
-            /*const self = this;
-            const sheet = spread.getActiveSheet();
-            const sel = sheet.getSelections()[0];
-            const row = sel.row;
-
-            const tree = sheet.zh_tree;
-            if (!tree) { return; }
-
-            const node = tree.nodes[row];
-            if (!node) { return; }
-
-            tree.baseOperation('/tender/' + getTenderId() + '/ledger/base-operation', node, 'down-move', function (result) {
-                self.refreshTree(sheet, result);
-                sheet.setSelection(tree.nodes.indexOf(node), sel.col, sel.rowCount, sel.colCount);
-                self.refreshOperationValid(sheet);
-            });*/
         },
         /**
          * 升级选中节点
@@ -344,20 +318,6 @@ $(document).ready(function() {
                     self.refreshOperationValid(sheet);
                 });
             }
-/*            const self = this;
-            const sheet = spread.getActiveSheet();
-            const row = sheet.getSelections()[0].row;
-
-            const tree = sheet.zh_tree;
-            if (!tree) { return; }
-
-            const node = tree.nodes[row];
-            if (!node) { return; }
-
-            tree.baseOperation('/tender/' + getTenderId() + '/ledger/base-operation', node, 'up-level', function (result) {
-                self.refreshTree(sheet, result);
-                self.refreshOperationValid(sheet);
-            });*/
         },
         /**
          * 降级选中节点
@@ -380,20 +340,6 @@ $(document).ready(function() {
                     self.refreshOperationValid(sheet);
                 });
             }
-/*            const self = this;
-            const sheet = spread.getActiveSheet();
-            const row = sheet.getSelections()[0].row;
-
-            const tree = sheet.zh_tree;
-            if (!tree) { return; }
-
-            const node = tree.nodes[row];
-            if (!node) { return; }
-
-            tree.baseOperation('/tender/' + getTenderId() + '/ledger/base-operation', node, 'down-level', function (result) {
-                self.refreshTree(sheet, result);
-                self.refreshOperationValid(sheet);
-            });*/
         },
         /**
          * 编辑单元格响应事件
@@ -449,9 +395,6 @@ $(document).ready(function() {
                     const refreshNode = ledgerTree.loadPostData(result);
                     treeOperationObj.refreshTree(info.sheet, refreshNode);
                 });
-                /*info.sheet.zh_tree.update('/tender/' + getTenderId() + '/ledger/update', data, function (result) {
-                    treeOperationObj.refreshTree(info.sheet, result);
-                });*/
             }
         },
         /**
@@ -517,14 +460,6 @@ $(document).ready(function() {
                     }, function () {
                         SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
                     });
-                    /*info.sheet.zh_tree.update('/tender/' + getTenderId() + '/ledger/update', datas, function (result) {
-                        if (result.update) {
-                            result.update = result.update.concat(filterNodes);
-                        }
-                        treeOperationObj.refreshTree(info.sheet, result);
-                    }, function () {
-                        SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
-                    });*/
                 } else {
                     SpreadJsObj.reLoadRowData(info.sheet, info.cellRange.row, info.cellRange.rowCount);
                 }
@@ -580,8 +515,9 @@ $(document).ready(function() {
                     }
                 }
                 if (datas.length > 0) {
-                    sheet.zh_tree.update('/tender/' + getTenderId() + '/ledger/update', datas, function (result) {
-                        treeOperationObj.refreshTree(sheet, result);
+                    postData(window.location.pathname + '/update', {postType: 'update', postData: datas}, function (result) {
+                        const refreshNode = tree.loadPostData(result);
+                        treeOperationObj.refreshTree(sheet, refreshNode);
                     });
                 }
             }
@@ -665,10 +601,6 @@ $(document).ready(function() {
                     callback();
                     treeOperationObj.refreshTree(sheet, refreshNode);
                 });
-                /*sheet.zh_tree.update('/tender/' + getTenderId() + '/ledger/update', datas, function (result) {
-                    callback();
-                    treeOperationObj.refreshTree(sheet, result);
-                });*/
             }
         },
     };

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

@@ -987,52 +987,6 @@ const createNewPathTree = function (type, setting) {
             result.update = result.update ? result.update.concat(reCalcNodes) : reCalcNodes;
             return result;
         }
-
-        /**
-         * 以下方法需等待响应, 通过callback刷新界面
-         */
-
-        /**
-         * 树结构基本操作
-         * @param {String} url - 请求地址
-         * @param {Object} node - 操作节点
-         * @param {String} type - 操作类型
-         * @param {function} callback - 界面刷新
-         */
-        // baseOperation (url, node, type, callback) {
-        //     const self = this;
-        //     const data = {
-        //         id: node[this.setting.id],
-        //         postType: type
-        //     };
-        //     postData(url, data, function (datas) {
-        //         const refreshData = self.loadPostData(datas);
-        //         callback(refreshData);
-        //     });
-        // };
-        /**
-         * 节点数据编辑
-         * @param {String} url - 请求地址
-         * @param {Array|Object} updateData - 需更新的数据
-         * @param {function} callback - 界面刷新
-         */
-        // update (url, updateData, callback) {
-        //     const self = this;
-        //     postData(url, updateData, function (datas) {
-        //         const refreshData = self.loadPostData(datas);
-        //         callback(refreshData);
-        //     }, function () {
-        //         if (updateData instanceof Array) {
-        //             const result = [];
-        //             for (const data of updateData) {
-        //                 result.push(self.getItems(data[self.setting.id]));
-        //             }
-        //             callback(result)
-        //         } else {
-        //             callback([self.getItems(updateData[self.setting.id])]);
-        //         }
-        //     });
-        // };
     }
 
     class StageTree extends FxTree {