123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- import axios from "axios";
- // @ts-ignore
- import { loadProgressBar } from "axios-progress-bar";
- import { notifyInvalidTokenThrottled } from "./axiosNotice";
- import axiosRetry from "axios-retry";
- import { message } from "ant-design-vue";
- import { store } from "@/store/store";
- const config = {
- // baseURL: process.env.baseURL || process.env.apiUrl || ""
- timeout: 1 * 60 * 1000, // Timeout
- withCredentials: true, // Check cross-site Access-Control
- };
- const _axiosApp = axios.create(config);
- axiosRetry(_axiosApp);
- _axiosApp.interceptors.request.use(
- function (config) {
- if (config.setGlobalMask) {
- store.globalMask = true;
- }
- return config;
- },
- function (error) {
- if (error.config.setGlobalMask) {
- store.globalMask = false;
- }
- void message.error({ content: error, duration: 10 });
- console.log(error);
- return Promise.reject(error);
- }
- );
- // Add a response interceptor
- _axiosApp.interceptors.response.use(
- (response) => {
- if (response.config.setGlobalMask) {
- store.globalMask = false;
- }
- return response;
- },
- (error) => {
- if (error.config?.setGlobalMask) {
- store.globalMask = false;
- }
- const showErrorMessage = !error.config?.noErrorMessage;
- if (!error.response) {
- if (showErrorMessage) {
- // "Network Error" 网络不通,直接返回
- void message.error({
- content: "网络连接异常,请检查网络设置。",
- duration: 10,
- });
- }
- return Promise.reject(error);
- }
- // 这里是返回状态码不为200时候的错误处理
- const status = error.response.status;
- // 登录失效 跳转登录页面
- if (status == 403 || status == 401) {
- notifyInvalidTokenThrottled();
- return Promise.reject(error);
- } else if (status == 405) {
- if (showErrorMessage) {
- void message.error({ content: "没有权限!", duration: 10 });
- }
- return Promise.reject(error);
- } else if (status == 502) {
- if (showErrorMessage) {
- void message.error({ content: "服务器异常(502)!", duration: 10 });
- }
- return Promise.reject(error);
- }
- if (status != 200) {
- const data = error.response.data;
- if (data && data.message) {
- if (showErrorMessage) {
- void message.error({ content: data.message, duration: 10 });
- }
- } else {
- if (showErrorMessage) {
- void message.error({
- content: "未定义异常: " + JSON.stringify(data, null, 2),
- duration: 10,
- });
- }
- }
- return Promise.reject(error);
- }
- }
- );
- // eslint-disable-next-line
- loadProgressBar(null, _axiosApp);
- export const httpApp = _axiosApp;
|