| import axios from 'axios'; | 
| import { Toast } from 'vant'; | 
| import router from "@/router"; | 
|   | 
| // 创建一个 axios 实例 | 
| const service = axios.create({ | 
|     baseURL: process.env.VUE_APP_API_PREFIX, | 
|     timeout: 50000, | 
|     withCredentials: true, | 
|     headers: { 'Content-Type': 'application/json' } | 
| }) | 
|   | 
| let loading: any;   // 控制加载动画 | 
| let interfaces: Array<string> = ['ext/routeCardExt/getListByWorkOrderId']   // 不需要错误提示的接口数组 | 
|   | 
| // 添加请求拦截器 | 
| service.interceptors.request.use( | 
|     (config) => { | 
|         if (config.url?.indexOf('/lingyang/login') == -1 && config.url?.indexOf('/edgp/loginDemo') == -1 && config.url?.indexOf('/lingyang/loginDemo') == -1 &&config.url?.indexOf('/edgp/login') == -1) { | 
|             loading = Toast.loading({ message: '加载中...', forbidClick: true, duration: 0 }); | 
|         } | 
|         return config; | 
|     }, | 
|     (error) => { | 
|         return Promise.reject(error); | 
|     } | 
| ) | 
|   | 
| // 添加响应拦截器 | 
| service.interceptors.response.use( | 
|     (response) => { | 
|   | 
|         if (response.config.url?.indexOf('/lingyang/login') == -1 && response.config.url?.indexOf('/edgp/loginDemo') == -1 && response.config.url?.indexOf('/lingyang/loginDemo') == -1 && response.config.url?.indexOf('/edgp/login') == -1) { | 
|             loading.clear(); | 
|         } | 
|         if (response.data.code === 401) {     // 处理登录过期 | 
|             Toast.fail({ message: '登录过期,准备自动重新登录', duration: 2000, forbidClick: true }) | 
|             setTimeout(() => { | 
|                 router.push({ name: 'logInAgain' }) | 
|             }, 2000) | 
|             return | 
|         } | 
|         // @ts-ignore | 
|         if (response.data.code !== 200 && !interfaces.includes(response.config.url)) {     // 请求报错 | 
|             Toast.fail({ message: response.data.message, duration: 2000 }) | 
|         } | 
|         return response.data || false; | 
|     }, | 
|     (error) => { | 
|         loading.clear(); | 
|         let code: number; | 
|         if (error.code === "ECONNABORTED") { | 
|             code = 999 | 
|         } else { | 
|             code = error.response.status | 
|         } | 
|         switch (code) { | 
|             case 404: | 
|                 Toast.fail({ message: '请求资源不存在', duration: 2000 }) | 
|                 break; | 
|             case 500: | 
|                 Toast.fail({ message: '服务器资源错误', duration: 2000 }) | 
|                 break; | 
|             case 999: | 
|                 Toast.fail({ message: '请求超时', duration: 2000 }) | 
|                 break; | 
|         } | 
|         return Promise.reject(error); | 
|     } | 
| ) | 
|   | 
| export default service; |