123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109 |
- import axios from "axios";
- import history from "./history";
- import { getTokenInfo, removeTokenInfo } from "./storage";
- import store from "@/store";
- import { MessageFu } from "./message";
- import { domShowFu } from "./domShow";
- // 请求基地址
- export const baseURL =
- // 线下的图片地址需要加上/api/
- // process.env.NODE_ENV === "development"
- // ? "http://192.168.20.61:8057/api/"
- // : "";
- process.env.NODE_ENV === "development" ? "https://sit-chaozhoubwg.4dage.com" : ""; //测试环境
- // 处理 类型“AxiosResponse<any, any>”上不存在属性“code”
- declare module "axios" {
- interface AxiosResponse {
- code: number;
- timestamp:string
- // 这里追加你的参数
- }
- }
- // 创建 axios 实例
- const http = axios.create({
- // --------线下的地址不用加/api/
- // baseURL: baseURL,
- // --------打包或线上环境接口需要加上api/
- baseURL: baseURL + "/api/",
- timeout: 5000,
- });
- let axajInd = 0;
- // 请求拦截器
- http.interceptors.request.use(
- function (config: any) {
- // 发请求前打开加载提示
- domShowFu("#AsyncSpinLoding", true);
- axajInd++;
- const { token } = getTokenInfo();
- if (token) config.headers.token = token;
- return config;
- },
- function (err) {
- return Promise.reject(err);
- }
- );
- let timeId = -1;
- // 响应拦截器
- http.interceptors.response.use(
- function (response) {
- // 请求回来的关闭加载提示
- axajInd--;
- if (axajInd === 0) {
- domShowFu("#AsyncSpinLoding", false);
- }
- if (response.data.code === 5001 || response.data.code === 5002) {
- removeTokenInfo();
- history.push("/login");
- clearTimeout(timeId);
- timeId = window.setTimeout(() => {
- MessageFu.warning("登录失效!");
- }, 200);
- } else if (response.data.code === 0) {
- // MessageFu.success(response.data.msg);
- } else if (response.data.code !== 3014)
- MessageFu.warning(response.data.msg);
- return response.data;
- },
- async function (err) {
- clearTimeout(timeId);
- timeId = window.setTimeout(() => {
- axajInd = 0;
- domShowFu("#AsyncSpinLoding", false);
- // 如果因为网络原因,response没有,给提示消息
- if (!err.response) {
- if (store.getState().A0Layout.closeUpFile.state)
- MessageFu.warning("取消上传!");
- else MessageFu.error("网络繁忙,请稍后重试!");
- } else {
- if (
- err.response &&
- err.response.data &&
- err.response.data.msg &&
- err.response.data.msg.length < 30
- ) {
- MessageFu.error(err.response.data.msg);
- // 没有权限
- if (err.response.data.code === 5003) {
- removeTokenInfo();
- history.push("/login");
- }
- } else MessageFu.error("响应错误,请联系管理员!");
- }
- }, 100);
- return Promise.reject(err);
- }
- );
- // 导出 axios 实例
- export default http;
|