@ued_fpi/data-visual
Version:
<br /> <br /> <div style="text-align:center"> <b style="font-size:30px">@ued_fpi/data-visual</b> <p>基于Vite4+TypeScript的Vue3大屏组件库开发框架</p> <img style="display:inline" src="https://img.shields.io/npm/v/@ued_fpi/data-visual" />
54 lines (51 loc) • 1.5 kB
JavaScript
import axios from 'axios';
import Config from '../config/index.mjs';
import { errorCodeHandler, errorStatusHandler } from '../utils/tools.mjs';
const instance = axios.create({
baseURL: Config.domain,
timeout: 60 * 1e3,
transformResponse: [
(data) => {
if (typeof data === "string" && (data.startsWith("{") || data.startsWith("[")))
data = JSON.parse(data);
return data;
}
]
});
instance.interceptors.request.use(
(config) => {
config && config.headers && (config.headers["Cache-Control"] = "no-cache, no-store");
config && config.headers && (config.headers.Pragma = "no-cache");
Config.isAddToken && (config.headers.token = localStorage.getItem("token"));
return config;
},
(error) => {
return Promise.reject(error);
}
);
instance.interceptors.response.use(
(response) => {
const { code, message } = response.data;
if ([200, "success"].includes(code) || !code) {
return response.data;
} else {
errorCodeHandler(code, message);
return Promise.reject(response.data);
}
},
(error) => {
if (axios.isCancel(error))
console.warn(error.message);
const { response } = error;
if (response) {
errorStatusHandler(response.status, response.data.message);
return Promise.reject(response);
}
}
);
const request = instance.request;
const requestControl = (option) => {
option.baseURL = Config.domain;
return request(option);
};
export { requestControl as default };