| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | 
							- 'use strict';
 
- /**
 
-  * 标准库std 相关接口
 
-  *
 
-  * @author Mai
 
-  * @date 2020/3/15
 
-  * @version
 
-  */
 
- // 加密类
 
- const jwt = require('jsonwebtoken');
 
- const privateKey = 'jl2pm3850key888sc';
 
- const dealCatagoryApi = '/api/external/jlbb/folder';
 
- const dealDataApi = '/api/external/jlbb/contract';
 
- const pmUtils = {
 
-     getJwt() {
 
-         return jwt.sign({}, privateKey, {expiresIn: '10m', algorithm: 'HS256'});
 
-     },
 
-     async postData(ctx, url, data) {
 
-         const res = await ctx.curl(url, {
 
-             method: 'GET', //'POST',
 
-             contentType: 'json',
 
-             data,
 
-             dataType: 'json',
 
-             timeout: [2000, 10000],
 
-             timing: true,
 
-         });
 
-         if (res.status !== 200) throw '请求项目管理数据异常';
 
-         if (!res.data || res.data.code) throw '项目管理返回数据异常';
 
-         return res.data.data;
 
-     },
 
- };
 
- const filterLeaf = function(node, result) {
 
-     if (node.children) {
 
-         for (const child of node.children) {
 
-             filterLeaf(child, result);
 
-         }
 
-     } else if (node.isfolder !== undefined && !node.isfolder) result.push(node);
 
- };
 
- module.exports = {
 
-     async dealCatagory(ctx, pCode) {
 
-         // mock
 
-         // return [ {id: 1, name: 'A标'}, {id: 2, name: 'B标'}, {id: 3, name: 'C标'}];
 
-         const url = ctx.app.config.managementProxyPath + dealCatagoryApi;
 
-         try {
 
-             const data = await pmUtils.postData(ctx, url, { code: pCode, token: pmUtils.getJwt() });
 
-             const result = [];
 
-             filterLeaf(data, result);
 
-             return result;
 
-         } catch (err) {
 
-             ctx.log(err);
 
-             return [];
 
-         }
 
-     },
 
-     async dealData(ctx, pCode, selects) {
 
-         if (!selects || selects.length === 0) return {};
 
-         const url = ctx.app.config.managementProxyPath + dealDataApi;
 
-         try {
 
-             const data = { code: pCode, token: pmUtils.getJwt(), key: ['contracts', 'tree_contracts'], bidsectionid: selects };
 
-             return await pmUtils.postData(ctx, url, data);
 
-         } catch (err) {
 
-             ctx.log(err);
 
-             return {};
 
-         }
 
-     }
 
- };
 
 
  |