| import axios from "axios" | 
| import { Message } from "element-ui" | 
|   | 
| // import router from '@/router' | 
|   | 
| // 开发环境下将自己的token复制到这里, 也可以在浏览器中手动添加token到cookie中,cookie中的token优先 | 
| const DEV_TOKEN =  '' | 
|   | 
| function environmentType(){ | 
|     let type | 
|     if (location.href.includes('192.168.20.119')) { | 
|         type = 'test' | 
|     } else if (location.href.includes('192.168') || location.href.includes('localhost')) { | 
|         type = 'dev' | 
|     } else { | 
|         type = 'prod' | 
|     } | 
|   | 
|     return type | 
| } | 
|   | 
| const isDev = environmentType() === 'dev' | 
|   | 
|   | 
| const Axios = axios.create({ | 
|   responseType: "json", | 
|   withCredentials: true // 是否允许带cookie这些 | 
| }) | 
|   | 
| const getApsPage = () => { | 
|     // 首页部署在各个环境的端口 | 
|     const loginPathMap = { | 
|         prod:`//${window.location.hostname}:9080`, | 
|         test:`//192.168.20.119:9080`, | 
|         // 想跳到本地启动的登录页的话需要把dev改成你本地项目路径 | 
|         dev: `//192.168.20.124:8081` | 
|     } | 
|   | 
|     return loginPathMap[environmentType()] | 
| } | 
|   | 
| /* //POST传参序列化(添加请求拦截器) */ | 
| Axios.interceptors.request.use( | 
|   (config) => { | 
|       let token = document.cookie.replace( | 
|           /(?:(?:^|.*;\s*)token\s*\=\s*([^;]*).*$)|^.*$/, | 
|           "$1", | 
|       ); | 
|       if (isDev){ | 
|           token = token || DEV_TOKEN | 
|       } | 
|       if (token) { | 
|           config.headers.Authorization = "Bearer " + token; | 
|       } | 
|       return config | 
|   }, | 
|   (error) => { | 
|     return Promise.reject(error) | 
|   } | 
| ) | 
|   | 
| /* //返回状态判断(添加响应拦截器) */ | 
| Axios.interceptors.response.use( | 
|   (res) => { | 
|     /* //对响应数据做些事 */ | 
|     if (res.data.code === 200) { | 
|       return res.data ? res.data : {} | 
|     } else if (res.data.code === 700001 || res.data.code === 700005) { | 
|       console.log("客户名称重复") | 
|       return res | 
|     } else if([2012,2013,2014,2015].includes(res.data.code)){ | 
|       if (isDev){ | 
|           alert("JWT失效") | 
|       }else { | 
|         //   JWT鉴权失效 跳转到登录页 | 
|         window.location = getApsPage()+'/login' | 
|       } | 
|       return Promise.reject(res.data) | 
|     } else { | 
|       Message({ | 
|         message: res.data.msg, | 
|         type: "error", | 
|         duration: 5 * 1000 | 
|       }) | 
|       return Promise.reject(res.data) | 
|     } | 
|   }, | 
|   (error) => { | 
|     if (error.response.status === 401){ | 
|       if (isDev){ | 
|           alert("JWT失效") | 
|       }else { | 
|         //   JWT鉴权失效 跳转到登录页 | 
|         window.location = getApsPage()+'/login' | 
|       } | 
|     } | 
|   | 
|     let { message } = error | 
|     if (message === "Network Error") { | 
|       message = "后端接口连接异常" | 
|     } else if (message.includes("timeout")) { | 
|       message = "系统接口请求超时" | 
|     } else if (message.includes("Request failed with status code")) { | 
|       message = "系统接口" + message.substr(message.length - 3) + "异常" | 
|     } | 
|     Message({ | 
|       message: message, | 
|       type: "error", | 
|       duration: 5 * 1000 | 
|     }) | 
|     return Promise.reject(error) | 
|   } | 
| ) | 
|   | 
| export default Axios |