import { getCookie, delCookie } from ‘@/utils/cookie’
import router from ‘@/router’
import store from ‘@/store/index’
import { Message, MessageBox } from ‘element-ui’
const axios = require(‘axios’)
axios.default.withCredentials = true
// const url = ‘http://10.36.65.52:9528’
let baseUrl = window.globalDataWebbaseUrl
/* request 请求结束开始 */
axios.defaults.timeout = 10000
let baseRequest = axios.create({
baseURL: baseUrl,
headers: {
‘Content-Type’: ‘application/json; charset=utf-8’
}
})
baseRequest.interceptors.request.use(
config => {
if (getCookie(‘login_token’)) {
config.headers.common[‘X-Subject-Token’] = getCookie(‘login_token’)
config.headers.common[‘appAccessCode’] = window.globalData.appAccessCode
}
return config
},
err => {
return Promise.reject(err)
}
)
baseRequest.interceptors.response.use(
response => {
return response
},
error => {
if (error.message && error.message === ‘timeout of 10000ms exceeded’) {
debounce(() => {
Message.error({ message: ‘请求超时’, showClose: true, customClass: ‘loginalert’ })
})
return Promise.reject(error)
} else {
return permission(error.response)
}
}
)
let count = 0
let timeout = null
// 弹框防抖处理
function debounce(fn) {
if (count === 0) {
fn()
}
count++
if (timeout !== null) clearTimeout(timeout)
timeout = setTimeout(() => {
count = 0
timeout = null
clearTimeout(timeout)
}, 1000)
}
var permission = function(res) {
if (res && res.status) {
switch (res.status) {
case 400:
case 401:
debounce(() => {
Message.error({ message: res.data.message || res.data.msg, showClose: true, customClass: ‘loginalert’ })
})
if (res.data.code == 403) {
setTimeout(() => {
router.push(’/login’)
}, 2000)
}
break
case 402:
debounce(() => {
Message.error({ message: res.data.message || res.data.msg, showClose: true, customClass: ‘loginalert’ })
})
break
case 403:
delCookie(‘login_token’)
// if(res.data.code)
router.push(’/login’)
// if (!store.state.isFault) {
// store.commit(‘setFault’, true)
// Message.error({message: res.data.message, showClose: true, customClass: ‘loginalert’})
// }
debounce(() => {
Message.error({ message: res.data.message || res.data.msg, showClose: true, customClass: ‘loginalert’ })
})
break
case 404:
debounce(() => {
Message.error({ message: res.data.message || res.data.msg || 404, center: true, showClose: true, customClass: ‘loginalert’ })
})
router.push(’/404’)加粗样式
return
case 451:
// 不能直接判断code 是否为 451 除了code 就剩msg
console.log(res.data)
if (res.data.code == 1004 || res.data.code == 1005) {
MessageBox.alert(<p class="alertps">${res.data.msg}</p>
, ‘提示’, {
showCancelButton: false,
showConfirmButton: false,
dangerouslyUseHTMLString: true,
type: ‘warning’,
})
break
} else if (res.data.code === 99005001) {
MessageBox.alert(<p class="alertps">${res.data.msg}</p>
, ‘提示’, {
showCancelButton: false,
showConfirmButton: false,
dangerouslyUseHTMLString: true,
type: ‘warning’,
})
break
} else if (res.data.code === 1003) {
debounce(() => {
Message.error({ message: res.data.message || res.data.msg, showClose: true, customClass: ‘loginalert’ })
})
setTimeout(() => {
router.push(’/login’)
}, 2000)
} else {
debounce(() => {
Message.error({ message: res.data.message || res.data.msg, showClose: true })
})
}
break
default:
debounce(() => {
Message.error({ message: res.data.message || res.data.msg, showClose: true })
})
break
}
}
return Promise.reject(res) // 返回接口返回的错误信息
}
export { baseReques }