```
/**
* axios封裝
*/
import axios from "axios";
import config from "../config";
import { ElMessage } from 'element-plus'
import router from "../router";
const TOKEN_INVALID = 'token 認證失敗,請重新登陸!'
const ENTWORK_ERROR = '網(wǎng)絡(luò)請求異常西疤,請稍后重試屹耐!'
//創(chuàng)建axios實例對象,添加全局配置
const service = axios.create({
? baseURL:config.baseApi,
? timeout:8000
})
//請求攔截
service.interceptors.request.use((req)=>{
? const headers = req.headers
? if(!headers.Authorizantion) headers.Authorizantion = 'aurora yan'
? return req
})
service.interceptors.response.use((res)=>{
? const {data,code,msg} = res.data
? if(code === 200){
? ? return data
? }else if(code === 40001){
? ? ElMessage.error(TOKEN_INVALID)
? ? setTimeout(()=>{
? ? ? router.push('/login')
? ? },1500)
? ? return Promise.reject(TOKEN_INVALID )
? }else{
? ? ElMessage.error(msg || ENTWORK_ERROR)
? ? return Promise.reject(msg || ENTWORK_ERROR)
? }
})
/**
* 請求核心函數(shù)
* @param {*} options 請求配置
* @returns
*/
const request = (options) => {
? options.method = options.method || 'get'
? if(options.method.toLowerCase() === 'get'){
? ? options.params = options.data
? }
? if(config.env === 'prod'){
? ? service.defaults.baseURL = config.baseApi
? }else{
? ? service.defaults.baseURL = config.mock ? config.mockApi : config.baseApi
? }
? return? service(options)
}
['get', 'post', 'put', 'delete', 'patch'].forEach((item)=>{
? request[item] = (url, data, options) => {
? ? return request({
? ? ? url,
? ? ? data,
? ? ? method:item,
? ? ? ...options
? ? })
? }
})
export default request
```