axios结合ElementUi结合封装

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 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值