123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- "use strict";
- import axios from "axios";
- import router from "@/router";
- import { showLoadingToast,showToast,closeToast } from "vant";
- // Full config: https://github.com/axios/axios#request-config
- // axios.defaults.baseURL = process.env.baseURL || process.env.apiUrl || '';
- // axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
- // axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
- // 请求数
- let LOADINGCOUNT = 0;
- let LOADING;
- let config = {
- baseURL: import.meta.env.VITE_APP_API_URL,
- timeout: 10*60 * 1000, // Timeout
- // withCredentials: true, // Check cross-site Access-Control
- };
- const _axios = axios.create(config);
- _axios.interceptors.request.use(
- function (config) {
- // Do something before request is sent
- if (LOADINGCOUNT === 0) {
- LOADING = showLoadingToast ({
- message: "loading...",
- duration: 0,
- forbidClick: true,
- });
- }
- LOADINGCOUNT++;
- config.headers.Authorization=localStorage.getItem('token')||''
- return config;
- },
- function (error) {
- // Do something with request error
- return Promise.reject(error);
- }
- );
- // Add a response interceptor
- _axios.interceptors.response.use(
- function (response) {
- // Do something with response data
- const data=response.data
- //关闭loading
- LOADINGCOUNT--;
- if (LOADINGCOUNT === 0) {
- // closeToast()
- LOADING.close()
- }
- if(response.status!==200){
- setTimeout(() => {
- showToast('网络异常')
- }, 100);
- }
- if(!data){
- setTimeout(() => {
- showToast('服务器开了个小差')
- }, 100);
- }
- if(data.Ret===408){//token失效
- showToast(data.Msg)
- router.replace('/login')
- }
- if(data.Ret===403){
- setTimeout(() => {
- showToast(data.Msg)
- }, 100);
- }
- return data;
- },
- function (error) {
- // Do something with response error
- return Promise.reject(error);
- }
- );
- /**
- * 导出get请求方法
- * @url 请求地址
- * @params get请求参数
- */
- export const get = (url, params) => {
- return _axios.get(url, { params });
- };
- /**
- * 导出post请求方法
- * @url 请求地址
- * @params post请求参数
- */
- export const post = (url, params) => {
- return _axios.post(url, params);
- };
|