import axios from 'axios'
|
|
import { ctx } from '../../../electron/config'
|
import router from '@/router'
|
|
// 创建 axios 实例
|
const service = axios.create({
|
baseURL: ctx,
|
timeout: 300000 // 请求超时时间
|
})
|
|
// 请求拦截器
|
service.interceptors.request.use(
|
(config) => {
|
const token = localStorage.getItem('token')
|
if (token) config.headers['Authorization'] = `bearer ${token}`
|
return config
|
},
|
(error) => {
|
// 发送失败
|
Promise.reject(error)
|
}
|
)
|
|
// 响应拦截器
|
service.interceptors.response.use(
|
(response) => {
|
if (response.status == 200) {
|
if (response.request.responseURL.indexOf('/FileDownload') > -1) {
|
return response.data
|
}
|
return response.data.data
|
}
|
},
|
(error) => {
|
let msg = '请求发生错误'
|
if ((error.response && error.response.status == 401) || error.code == 'ERR_NETWORK') {
|
localStorage.removeItem('token')
|
localStorage.removeItem('userInfo')
|
if (localStorage.getItem('loginCtx')) {
|
window.open(localStorage.getItem('loginCtx'))
|
} else {
|
router.replace({
|
path: '/login'
|
})
|
}
|
} else {
|
if (error.response && error.response.data) {
|
msg = error.response.data.msg
|
}
|
}
|
throw msg
|
}
|
)
|
|
export default service
|