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 , axiosRequestConfig?:any) =>{ param = param || {}; method = method || ''; isJsonString = isJsonString || false; let requestObj = {}; //调用REST 传递的是单参数 String类型 if(true==isJsonString) { requestObj = QS.stringify({ 'Apis':JSON.stringify({ 'Args':{ 'Param':JSON.stringify(param) }, 'Method':method }) }); } else { requestObj = QS.stringify({ 'Apis': JSON.stringify({ 'Args': param, 'Method': method }) }); } if(!User.isLogined()){ UIConfirm.show(`用户信息丢失,请保存当前操作数据后,重新登录!`,()=>{ User.logout(null,false); }); return; } const user = User.restore(); let config = {baseURL: user.channel.targetURL}; if(axiosRequestConfig){ config = {...config,...axiosRequestConfig} } var ajax = axios.create(config); var url = 'api/rest'; if(isFree){ url = url + '?IsFree=1&methodName='+method+'&userId='+user.userId +'&orgId='+user.orgId; }else{ url = url + '?methodName='+method+'&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 tplusApi = async (param:object, method:string, isJsonString?:boolean, isFree?:boolean, query?:string , axiosRequestConfig?:any):Promise => { const resp = await tplusAjaxReq(param,method,isJsonString,isFree, query, axiosRequestConfig); if(resp == undefined){ return ""; } let json = resp.data.Value; if(typeof(json) == 'string'){ if(tools.isJsonStr(json)){ json = JSON.parse(resp.data.Value); } } return json; } export default tplusApi;