|
|
|
@ -16,11 +16,11 @@ const service = axios.create({ |
|
|
|
|
// 服务端api地址
|
|
|
|
|
// baseURL: process.env.NODE_ENV === 'production' ? publicConfig.BASE_API : process.env.VUE_APP_API_BASE_URL,
|
|
|
|
|
baseURL: publicConfig.BASE_API, |
|
|
|
|
timeout: 60 * 1000 // 请求超时时间,60秒, 如果上传大文件需要更长
|
|
|
|
|
timeout: 60 * 1000, // 请求超时时间,60秒, 如果上传大文件需要更长
|
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
// 接口请求拦截
|
|
|
|
|
service.interceptors.request.use(config => { |
|
|
|
|
service.interceptors.request.use((config) => { |
|
|
|
|
// 设置每个请求的Content-Type
|
|
|
|
|
// config.headers['Content-Type'] = 'application/json;charset=utf-8'
|
|
|
|
|
|
|
|
|
@ -36,54 +36,54 @@ service.interceptors.request.use(config => { |
|
|
|
|
let notLoggedMessage = false |
|
|
|
|
|
|
|
|
|
// 接口响应拦截
|
|
|
|
|
service.interceptors.response.use((response) => { |
|
|
|
|
const result = response.data |
|
|
|
|
if (!isObject(result)) { |
|
|
|
|
const error = { message: '服务端api返回的数据格式不正确' } |
|
|
|
|
return Promise.reject(error) |
|
|
|
|
} |
|
|
|
|
// result.status [ 200正常 500有错误 401未登录 403没有权限访问 ]
|
|
|
|
|
// api报错信息
|
|
|
|
|
if (result.status === 500) { |
|
|
|
|
message.error(result.message, 1.8) |
|
|
|
|
return Promise.reject(result) |
|
|
|
|
} |
|
|
|
|
// 鉴权失败: 未登录
|
|
|
|
|
if (result.status === 401) { |
|
|
|
|
if (!notLoggedMessage) { |
|
|
|
|
notLoggedMessage = true |
|
|
|
|
store.dispatch('Logout').then(() => { |
|
|
|
|
notification.error({ |
|
|
|
|
key: 'notLoggedMessage', |
|
|
|
|
message: '错误', |
|
|
|
|
description: result.message, |
|
|
|
|
duration: 3 |
|
|
|
|
service.interceptors.response.use( |
|
|
|
|
(response) => { |
|
|
|
|
const result = response.data |
|
|
|
|
if (!isObject(result)) { |
|
|
|
|
const error = { message: '服务端api返回的数据格式不正确' } |
|
|
|
|
return Promise.reject(error) |
|
|
|
|
} |
|
|
|
|
// result.status [ 200正常 500有错误 401未登录 403没有权限访问 ]
|
|
|
|
|
// api报错信息
|
|
|
|
|
if (result.status === 500) { |
|
|
|
|
message.error(result.message, 1.8) |
|
|
|
|
return Promise.reject(result) |
|
|
|
|
} |
|
|
|
|
// 鉴权失败: 未登录
|
|
|
|
|
if (result.status === 401) { |
|
|
|
|
if (!notLoggedMessage) { |
|
|
|
|
notLoggedMessage = true |
|
|
|
|
store.dispatch('Logout').then(() => { |
|
|
|
|
notification.error({ |
|
|
|
|
key: 'notLoggedMessage', |
|
|
|
|
message: '错误', |
|
|
|
|
description: result.message, |
|
|
|
|
duration: 3, |
|
|
|
|
}) |
|
|
|
|
setTimeout(() => window.location.reload(), 1500) |
|
|
|
|
}) |
|
|
|
|
setTimeout(() => window.location.reload(), 1500) |
|
|
|
|
}) |
|
|
|
|
} |
|
|
|
|
return Promise.reject(result) |
|
|
|
|
} |
|
|
|
|
return Promise.reject(result) |
|
|
|
|
return result |
|
|
|
|
}, |
|
|
|
|
(error) => { |
|
|
|
|
// 网络请求出错
|
|
|
|
|
const errMsg = ((error.response || {}).data || {}).message || '请求出现错误,请稍后再试' |
|
|
|
|
notification.error({ |
|
|
|
|
message: '网络请求出错', |
|
|
|
|
description: errMsg, |
|
|
|
|
duration: 3, |
|
|
|
|
}) |
|
|
|
|
return Promise.reject(error) |
|
|
|
|
} |
|
|
|
|
return result |
|
|
|
|
}, (error) => { |
|
|
|
|
// 网络请求出错
|
|
|
|
|
const errMsg = ((error.response || {}).data || {}).message || '请求出现错误,请稍后再试' |
|
|
|
|
notification.error({ |
|
|
|
|
message: '网络请求出错', |
|
|
|
|
description: errMsg, |
|
|
|
|
duration: 3 |
|
|
|
|
}) |
|
|
|
|
return Promise.reject(error) |
|
|
|
|
}) |
|
|
|
|
) |
|
|
|
|
|
|
|
|
|
const installer = { |
|
|
|
|
vm: {}, |
|
|
|
|
install (Vue) { |
|
|
|
|
install(Vue) { |
|
|
|
|
Vue.use(VueAxios, service) |
|
|
|
|
} |
|
|
|
|
}, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
export { |
|
|
|
|
installer as VueAxios, |
|
|
|
|
service as axios |
|
|
|
|
} |
|
|
|
|
export { installer as VueAxios, service as axios } |
|
|
|
|