import axios from 'axios'; var QS = require('qs'); import tools from '../util/tools'; import User from '../model/User'; import UIConfirm from '../components/UIConfirm'; //param post参数 method 方法 isJsonString 是否转换为json字符串 isFree 是否需要认证信息 const tplusAjaxReq = (param: object, method: string, isJsonString?: boolean, isFree?: boolean, query?: string) => { param = param || {}; method = method || ''; isJsonString = isJsonString || false; let requestObj = {}; //调用REST 传递的是单参数 String类型 requestObj = QS.stringify({ 'Apis': JSON.stringify({ ...param }) }); if (!User.isLogined()) { UIConfirm.show(`用户信息丢失,请重新登录!`, () => { User.logout(); }); return; } const user = User.restore(); var ajax = axios.create({ baseURL: user.channel.targetURL }); var url = `api/v2/${method}`; if (isFree) { url = url + '?IsFree=1&userId=' + user.userId + '&orgId=' + user.orgId; } else { url = url + '?userId=' + user.userId + '&orgId=' + user.orgId; } var user_req_id = `${user.userId}x${new Date().getTime().toString(16)}`; url += '&user_req_id=' + user_req_id; if (query) { url += '&' + query; } const startTime = new Date().getTime(); return ajax.post(url, requestObj) .then(resp => { const endTime = new Date().getTime(); console.log(`tApi:请求接口[${method}]成功,消耗时间${endTime - startTime}ms,时间${tools.sysTime()}`); return Promise.resolve(resp); }).catch(err => { const endTime = new Date().getTime(); console.error(`tApi:请求接口[${method}]失败,消耗时间${endTime - startTime}ms,时间${tools.sysTime()},错误信息->`, err); return Promise.reject(err); }); } const TplusApiV2 = async (param: object, method: string, isJsonString?: boolean, isFree?: boolean, query?: string): Promise => { const resp = await tplusAjaxReq(param, method, isJsonString, isFree, query); let json = resp.data.Value; if (typeof (json) == 'string') { if (tools.isJsonStr(json)) { json = JSON.parse(resp.data.Value); } } return json; } export default TplusApiV2;