Browse Source

新增右键功能,加载全部子节点

MaiXinRong 6 years atrás
parent
commit
61f6a1d652
5 changed files with 83 additions and 2 deletions
  1. 31 1
      app/controller/ledger_controller.js
  2. 15 1
      app/public/js/ledger.js
  3. 1 0
      app/router.js
  4. 28 0
      app/service/ledger.js
  5. 8 0
      config/config.qa.js

+ 31 - 1
app/controller/ledger_controller.js

@@ -406,8 +406,12 @@ module.exports = app => {
             ctx.body = responseData;
         }
 
+        /**
+         * 定位
+         * @param ctx
+         * @returns {Promise<void>}
+         */
         async locate(ctx) {
-
             const responseData = {
                 err: 0,
                 msg: '',
@@ -432,6 +436,32 @@ module.exports = app => {
             ctx.body = responseData;
         }
 
+        async posterity(ctx) {
+            const responseData = {
+                err: 0,
+                msg: '',
+                data: [],
+            };
+            try {
+                const tenderId = ctx.session.sessionUser.tenderId;
+                if (!tenderId) {
+                    throw '当前未打开标段';
+                }
+                const data = JSON.parse(ctx.request.body.data);
+                if ((isNaN(data.id) || data.id <= 0)) {
+                    throw '参数错误';
+                }
+                const expandData = await ctx.service.ledger.getPosterityByParentId(tenderId, data.id);
+                responseData.data = { expand: expandData };
+            } catch (err) {
+                console.log(err);
+                responseData.err = 1;
+                responseData.msg = err;
+            }
+
+            ctx.body = responseData;
+        }
+
         /**
          * 台账变更页面 (Get)
          *

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

@@ -551,6 +551,20 @@ $(document).ready(function() {
                         $('#batch').modal('show');
                     },
                 },
+                'loadAll': {
+                    name: '加载全部叶子节点',
+                    callback: function (key, opt) {
+                        const sheet = ledgerSpread.getActiveSheet();
+                        const selection = sheet.getSelections();
+                        const row = selection[0].row;
+                        const select = ledgerTree.nodes[row];
+                        ledgerTree.postData('posterity', null, {id: ledgerTree.getNodeKey(select)}, function (result) {
+                            select.expanded = true;
+                            treeOperationObj.refreshTree(sheet, result);
+                            treeOperationObj.refreshOperationValid(sheet, sheet.getSelections());
+                        });
+                    }
+                }
             }
         });
     }
@@ -905,7 +919,7 @@ $(document).ready(function() {
                     treeOperationObj.refreshTree(mainSheet, result);
                     treeOperationObj.refreshOperationValid(mainSheet, mainSheet.getSelections());
                     SpreadJsObj.locateTreeNode(mainSheet, curBills.ledger_id);
-                })
+                });
             });
         }
     }

+ 1 - 0
app/router.js

@@ -44,6 +44,7 @@ module.exports = app => {
     app.post('/ledger/batch-insert', sessionAuth, 'ledgerController.batchInsert');
     app.post('/ledger/search', sessionAuth, 'ledgerController.search');
     app.post('/ledger/locate', sessionAuth, 'ledgerController.locate');
+    app.post('/ledger/posterity', sessionAuth, 'ledgerController.posterity');
 
     app.get('/ledger/change', sessionAuth, 'ledgerController.change');
     app.get('/ledger/index', sessionAuth, 'ledgerController.index');

+ 28 - 0
app/service/ledger.js

@@ -320,6 +320,34 @@ module.exports = app => {
             return data;
         }
         /**
+         * 根据 父节点id 获取孙子节点
+         * @param tenderId
+         * @param nodeId
+         * @returns {Promise<void>}
+         */
+        async getPosterityByParentId(tenderId, nodeId) {
+            if (tenderId <= 0 || !nodeId) {
+                return undefined;
+            }
+
+            const node = await this.getDataByNodeId(tenderId, nodeId);
+
+            this.initSqlBuilder();
+            this.sqlBuilder.setAndWhere('tender_id', {
+                value: tenderId,
+                operate: '=',
+            });
+            this.sqlBuilder.setAndWhere('full_path', {
+                value: this.db.escape(node.full_path + '.%'),
+                operate: 'like',
+            });
+
+            const [sql, sqlParam] = this.sqlBuilder.build(this.tableName);
+            const data = await this.db.query(sql, sqlParam);
+
+            return data;
+        }
+        /**
          * 根据 父节点ID 和 节点排序order 获取全部后节点数据
          * @param {Number} tenderId - 标段id
          * @param {Number} pid - 父节点id

+ 8 - 0
config/config.qa.js

@@ -43,6 +43,14 @@ module.exports = appInfo => {
         version: '1.0.0',
     };
 
+    // session配置
+    config.session = {
+        key: 'ZHC_SESS',
+        maxAge: 8 * 3600 * 1000, // 8小时
+        httpOnly: true,
+        encrypt: true,
+    };
+
     // geetest验证码key
     config.geetest = {
         id: '23c50f6711966f744c93a70167c8e0a4',