123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- import axios from 'axios'
- import Vue from 'vue'
- import router from '../router'
- var isProduction = process.env.NODE_ENV === 'production'
- const vue = new Vue()
- let loading = ''
- // 配置请求域名
- let layoutBoxIsShow
- const serverName = isProduction ? '/zhoushan' : 'http://192.168.0.135:8017/zhoushan'
- // http://192.168.0.135:8017
- const exceptUrls = ['/login']
- axios.defaults.baseURL = serverName
- axios.defaults.headers['X-Requested-with'] = 'XMLHttpRequest'
- axios.interceptors.request.use(function (config) {
- for (let i = 0; i < exceptUrls.length; i++) {
- let url = exceptUrls[i]
- if (config.url.indexOf(url) > -1) {
- config.baseURL = serverName.replace('/zhoushan', '')
- }
- }
- config.headers['token'] = window.localStorage.getItem('token')
- loading = vue.$loading({
- lock: true,
- text: 'Loading',
- spinner: 'el-icon-loading',
- background: 'rgba(0, 0, 0, 0.7)'
- })
- return config
- }, function (error) {
- // 对请求错误做些什么
- return Promise.reject(error)
- })
- // 配置response拦截器
- axios.interceptors.response.use(
- response => {
- loading.close()
- let data = response.data
- let code = Number(response.data.code)
- switch (code) {
- case -1:
- break
- case 102:
- break
- case 5001:
- if (!layoutBoxIsShow) {
- layoutBoxIsShow = true
- window.localStorage.setItem('token', '')
- vue.$alert('登录状态失效,请重新登录', '提示', {
- confirmButtonText: '确定',
- callback: function () {
- layoutBoxIsShow = false
- router.push('/login')
- }
- })
- }
- break
- case 0:
- break
- }
- return data
- },
- error => {
- loading.close()
- // if (error.response) {
- // switch (error.response.code) {
- // case 5001:
- // window.localStorage.setItem('token', '')
- // vue.$alert('登录状态失效,请重新登录', '提示', {
- // confirmButtonText: '确定',
- // callback: function () {
- // router.push('/login')
- // }
- // })
- // break
- // }
- // }
- return Promise.reject(error)
- }
- )
- export { serverName, axios }
|