| 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 {};        }    }};
 |