1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- /* eslint-disable no-const-assign */
- import axios from 'axios'
- import router from '../../src/router/index'
- import { Message, Loading } from 'element-ui'
- // 构建axios实例
- axios.create({
- baseURL: process.env.BASE_API,
- timeout: 10000
- })
- let loadingInstance = null
- axios.interceptors.request.use(config => {
- const dom = document.getElementById('content')
- if (loadingInstance == null) loadingInstance = Loading.service({ target: dom })
- const token = sessionStorage.getItem('token')
- if (token) {
- config.headers.Authorization = 'Bearer ' + token
- }
- return config
- },
- err => {
- return Promise.reject(err)
- })
- axios.interceptors.response.use(
- response => {
- if (loadingInstance !== null) {
- loadingInstance.close()
- loadingInstance = null
- }
- if (response.data.errcode !== 0 || response.data.errcode === 403) {
- if (response.data.errmsg.cmd) {
- Message.error(response.data.errmsg.cmd)
- return false
- }
- Message.error(response.data.errmsg)
- return false
- }
- return response.data
- },
- error => {
- const { status, data } = error.response
- if (loadingInstance !== null) {
- loadingInstance.close()
- loadingInstance = null
- }
- if (status === 401) {
- Message.error('请重新登录')
- sessionStorage.clear()
- router.push('/login')
- return false
- }
- if (status === 500) {
- if (data.cmd) {
- Message.error(data.cmd)
- return false
- }
- if (data.errmsg) {
- Message.error(data.errmsg)
- return false
- }
- }
- Message.error(data.errmsg)
- return data
- }
- )
- export default axios
|