import axios from ‘axios’;
import { ElMessage } from ‘element-plus’;
// 创建axios实例
const useRequest = axios.create({
baseURL: https://${window.location.host}/
, // api的base_url
timeout: 120000, // 请求超时时间,
// request payload
headers: {
‘Content-Type’: ‘application/json;charset=UTF-8’,
},
// 修改请求数据,去除data.q中为空的数据项,只针对post请求
});
useRequest.interceptors.request.use(
config => config,
error => Promise.reject(error),
);
// 错误码
const retCodeObj: any = {
1001: (msg: any) => {
ElMessage.error(msg);
return Promise.reject(msg);
},
// wps cookie 换取 jwt 错误
1002: (msg: any) => {
// 0alert(response)
// Message.warning(msg);
// let thisURL = encodeURIComponent(location.href)
// window.location.href = https://account.wps.cn/login?cb=${encodeURIComponent(location.href)}
// let to = vueRouter.currentRoute.name
// vueRouter.push({name: “wpsAuth”, query: {callback: to}})
window.location.href = ‘/login’;
return Promise.reject(msg);
},
// 登录态失效
1003: () => {
// Message.warning(msg)
window.location.href = ‘/login’;
return Promise.reject(‘登录态失效’);
},
// 参数错误
1004: () => {
// Message.warning(msg)
window.location.href = ‘/login’;
return Promise.reject(‘登录态失效’);
},
// 接口异常
1006: (msg: any) => {
ElMessage.error(msg);
return Promise.reject(‘接口异常’);
},
};
// http response 拦截器
useRequest.interceptors.response.use(
(response) => {
if (response.status !== 200) {
return false;
}
const { code, data, msg } = response.data;
if (code === 0) {
if (
response.config.method === ‘POST’
|| response.config.method === ‘GET’
) {
// Message.success(“创建成功”)
// return true
}
return data;
}
if (retCodeObj[code]) {
return retCodeObjcode;
}
// alert(response)
ElMessage.error(‘网络错误’);
return Promise.reject(‘网络错误’);
},
(error) => {
ElMessage.error(‘网络错误’);
return Promise.reject(error.data);
},
);
const getRequest = (url: any) => useRequest.get(url);
const postRequest = (url: any, data: any) => useRequest.post(url, data);
export { getRequest, postRequest };