This commit is contained in:
闫晓茹 2023-04-27 17:20:08 +08:00
parent b17e17e63b
commit 39ab955be4

View File

@ -12,7 +12,7 @@ let downloadLoadingInstance;
export let isRelogin = { show: false }; export let isRelogin = { show: false };
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8' axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
// 创建axios实例 // 创建axios实例
const service = axios.create({ const service = axios.create({
// axios中请求配置有baseURL选项表示请求URL公共部分 // axios中请求配置有baseURL选项表示请求URL公共部分
baseURL: process.env.VUE_APP_BASE_API, baseURL: process.env.VUE_APP_BASE_API,
@ -24,7 +24,7 @@ const service = axios.create({
service.interceptors.request.use(config => { service.interceptors.request.use(config => {
// 是否需要设置 token // 是否需要设置 token
const isToken = (config.headers || {}).isToken === false const isToken = (config.headers || {}).isToken === false
// 是否需要防止数据重复提交 // 是否需要防止数据重复提交
const isRepeatSubmit = (config.headers || {}).repeatSubmit === false const isRepeatSubmit = (config.headers || {}).repeatSubmit === false
if (getToken() && !isToken) { if (getToken() && !isToken) {
config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改 config.headers['Authorization'] = 'Bearer ' + getToken() // 让每个请求携带自定义token 请根据实际情况自行修改
@ -67,48 +67,48 @@ service.interceptors.request.use(config => {
// 响应拦截器 // 响应拦截器
service.interceptors.response.use(res => { service.interceptors.response.use(res => {
// 未设置状态码则默认成功状态 // 未设置状态码则默认成功状态
const code = res.data.code || 200; const code = res.data.code || 200;
// 获取错误信息 // 获取错误信息
const msg = errorCode[code] || res.data.msg || errorCode['default'] const msg = errorCode[code] || res.data.msg || errorCode['default']
// 二进制数据则直接返回 // 二进制数据则直接返回
if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') { if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
return res.data return res.data
}
if (code === 401) {
if (!isRelogin.show) {
isRelogin.show = true;
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', {
confirmButtonText: '重新登录',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
isRelogin.show = false;
store.dispatch('LogOut').then(() => {
location.href = '/index';
})
}).catch(() => {
isRelogin.show = false;
});
} }
if (code === 401) { return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
if (!isRelogin.show) { } else if (code === 500) {
isRelogin.show = true; Message({
MessageBox.confirm('登录状态已过期,您可以继续留在该页面,或者重新登录', '系统提示', { message: msg,
confirmButtonText: '重新登录', type: 'error'
cancelButtonText: '取消', })
type: 'warning' return res.data & Promise.reject(new Error(msg))
}).then(() => { } else if (code === 600) {
isRelogin.show = false; return Promise.reject(new Error(msg))
store.dispatch('LogOut').then(() => { } else if (code !== 200) {
location.href = '/index'; Notification.error({
}) title: msg
}).catch(() => { })
isRelogin.show = false; return Promise.reject('error')
}); } else {
} return res.data
return Promise.reject('无效的会话,或者会话已过期,请重新登录。') }
} else if (code === 500) { },
Message({
message: msg,
type: 'error'
})
return Promise.reject(new Error(msg))
} else if (code === 600) {
return Promise.reject(new Error(msg))
} else if (code !== 200) {
Notification.error({
title: msg
})
return Promise.reject('error')
} else {
return res.data
}
},
error => { error => {
console.log('err' + error) console.log('err' + error)
let { message } = error; let { message } = error;
@ -135,7 +135,7 @@ export function download(url, params, filename) {
transformRequest: [(params) => { return tansParams(params) }], transformRequest: [(params) => { return tansParams(params) }],
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }, headers: { 'Content-Type': 'application/x-www-form-urlencoded' },
responseType: 'blob' responseType: 'blob'
}).then(async(data) => { }).then(async (data) => {
const isLogin = await blobValidate(data); const isLogin = await blobValidate(data);
if (isLogin) { if (isLogin) {
const blob = new Blob([data]) const blob = new Blob([data])