You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
115 lines
2.4 KiB
115 lines
2.4 KiB
3 years ago
|
/*---------------------------------------------------------------
|
||
|
| 【数据中台专用】请求接口封装 |
|
||
|
---------------------------------------------------------------*/
|
||
|
import axios from "axios";
|
||
|
import curry from "dai-js/tools/curry";
|
||
|
import { Message } from "element-ui";
|
||
|
import { clearLoginInfo } from "@/utils";
|
||
|
|
||
|
axios.defaults.withCredentials = true;
|
||
|
axios.defaults.crossDomain = true;
|
||
|
|
||
|
const request = curry((method, uri, data = {}, params = {}) => {
|
||
|
return new Promise((reslove) => {
|
||
|
let returnIniData = {
|
||
|
httpCode: "",
|
||
|
data: {},
|
||
|
msg: "",
|
||
|
code: "",
|
||
|
};
|
||
|
|
||
|
const { headers, mockId } = params;
|
||
|
|
||
|
// env文件配置接口
|
||
|
let url = process.env.VUE_APP_BIPASS_API_SERVER;
|
||
|
|
||
|
// mock 开发临时用接口
|
||
|
if (mockId) {
|
||
|
url = "https://mock.apifox.cn/m2/2242395-0-default/" + mockId;
|
||
|
}
|
||
|
|
||
|
const succFn = (res) => {
|
||
|
// log(`[request成功] ${url}`, data, res);
|
||
|
let retData = {
|
||
|
...returnIniData,
|
||
|
...res.data,
|
||
|
httpCode: res.statusCode,
|
||
|
};
|
||
|
// if(typeof Vue.$afterRequestHook == 'function'){
|
||
|
// retData = Vue.$afterRequestHook(retData);
|
||
|
// }
|
||
|
if (res.data.code > 8000 && res.data.code < 10000) {
|
||
|
// Message.error(res.data.msg);
|
||
|
}
|
||
|
if (res.code == 1007 || res.code == 1024 || res.code == 2003) {
|
||
|
// 10005 token为空 10006登陆超时 10007别处登录
|
||
|
console.log("登录失效");
|
||
|
Message.error(res.data.msg);
|
||
|
clearLoginInfo();
|
||
|
return next({
|
||
|
name: "login",
|
||
|
});
|
||
|
}
|
||
|
|
||
|
reslove(retData);
|
||
|
};
|
||
|
|
||
|
const failFn = (err) => {
|
||
|
// log(`[request失败] ${url}`, data, err);
|
||
|
|
||
|
reslove(
|
||
|
Object.assign({}, returnIniData, {
|
||
|
httpCode: "9999", //访问出现意外
|
||
|
msg: "网络错误",
|
||
|
})
|
||
|
);
|
||
|
};
|
||
|
|
||
|
if (method.toUpperCase() == "POST") {
|
||
|
axios
|
||
|
.post(
|
||
|
url,
|
||
|
{
|
||
|
apiCode: "/api/post",
|
||
|
dispatcherSystem: "dataservice",
|
||
|
param: {
|
||
|
ds_code: uri,
|
||
|
app_code: "empet",
|
||
|
orderby: "[]",
|
||
|
...data,
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
headers,
|
||
|
responseType: "json",
|
||
|
}
|
||
|
)
|
||
|
.then(succFn)
|
||
|
.catch(failFn);
|
||
|
} else {
|
||
|
axios
|
||
|
.post(
|
||
|
url,
|
||
|
{
|
||
|
apiCode: "/api/get",
|
||
|
dispatcherSystem: "dataservice",
|
||
|
param: {
|
||
|
ds_code: uri,
|
||
|
app_code: "empet",
|
||
|
orderby: "[]",
|
||
|
...data,
|
||
|
},
|
||
|
},
|
||
|
{
|
||
|
headers,
|
||
|
responseType: "json",
|
||
|
}
|
||
|
)
|
||
|
.then(succFn)
|
||
|
.catch(failFn);
|
||
|
}
|
||
|
});
|
||
|
});
|
||
|
|
||
|
export const requestPostBi = request("post");
|