import axios from 'axios';
import store from '@/store'
import { Mseeage,Loading } from 'element-ui'
let reqCount = 0
let tokenFail = null
let loading;
const service = axios.create({
baseURL:process.env.VUE_API,
timeout:6000,
})
service.interceptors.request.use(
requset => {
reqCount++
loading = Loading.service({
fullScreen:true,
background:'transparent' ,
})
if(store.user.token){
request.headers.token = store.user.token
request.headers.userName = store.user.userName
}
return request
},
error => {
loading.close()
return Promise.reject(error)
}
)
service.interceptors.response.use(
response => {
reqCount--
if(reqCount === 0) loading.close()
if(response.data.respCode === 111){
if(!tokenFail){
tokenFail = setTimeOut(() => {
store.dispatch('user/logout')
Message.error(response.data.message)
tokenFail = null
return new Promise.reject(new Error('token已失效'))
},200)
}
}
return response.data
},
error => {
loading.close()
reqCount--
return Promise.reject(error)
}
)
export default service
import requset from '@/api/request.js'
export const getData = (data) => {
return requset({
url:'xxx/xxx',
methods:'POST/GET',
data
})
}