1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- import axios, {InternalAxiosRequestConfig, AxiosResponse} from "axios";
- import {useUserStoreHook} from "@/store/modules/user";
- // 创建 axios 实例
- // @ts-ignore
- const service = axios.create({
- baseURL: import.meta.env.VITE_APP_BASE_API,
- timeout: 50000,
- headers: {"Content-Type": "application/json;charset=utf-8"},
- });
- // 请求拦截器
- service.interceptors.request.use(
- (config: InternalAxiosRequestConfig) => {
- const userStore = useUserStoreHook();
- if (userStore.token) {
- //config.headers.Authorization = userStore.token;
- config.headers["access-token"] = userStore.token;
- }
- return config;
- },
- (error: any) => {
- // @ts-ignore
- return Promise.reject(error);
- }
- );
- // 响应拦截器
- service.interceptors.response.use(
- (response: AxiosResponse) => {
- const {status, message} = response.data;
- if (status === 1) {
- return response.data;
- }
- // 响应数据为二进制流处理(Excel导出)
- if (response.data instanceof ArrayBuffer) {
- return response;
- }
- // ElMessage.error(message || "系统出错");
- console.log(message || "系统出错");
- return Promise.reject(new Error(message || "Error"));
- },
- (error: any) => {
- if (error.response.data) {
- const {status, message} = error.response.data;
- // token 过期,重新登录
- if (status === 10) {
- ElMessageBox.confirm("当前页面已失效,请重新登录", "提示", {
- confirmButtonText: "确定",
- type: "warning",
- }).then(() => {
- localStorage.clear();
- window.location.href = "/";
- });
- } else {
- //ElMessage.error(message || "系统出错");
- console.log(message || "系统出错");
- }
- }
- return Promise.reject(error.message);
- }
- );
- // 导出 axios 实例
- export default service;
|