|
@@ -2,6 +2,8 @@ import axios from 'axios'
|
|
|
import { Message, MessageBox, Notification } from 'element-ui'
|
|
|
import auth from '@/utils/auth'
|
|
|
import errorCode from '@/utils/errorCode'
|
|
|
+import store from '@/store'
|
|
|
+let handling_405 = false
|
|
|
|
|
|
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'
|
|
|
axios.defaults.headers['accessFrom'] = 'front'
|
|
@@ -21,7 +23,7 @@ service.interceptors.request.use(config => {
|
|
|
}
|
|
|
|
|
|
// 映射params参数
|
|
|
- if ((config.method == 'get' || config['paramsAsGet']) && config.params) {
|
|
|
+ if ((config.method === 'get' || config['paramsAsGet']) && config.params) {
|
|
|
let url = config.url + '?'
|
|
|
for (const propName of Object.keys(config.params)) {
|
|
|
const value = config.params[propName]
|
|
@@ -29,7 +31,7 @@ service.interceptors.request.use(config => {
|
|
|
if (value !== null && typeof (value) !== 'undefined') {
|
|
|
if (typeof value === 'object') {
|
|
|
for (const key of Object.keys(value)) {
|
|
|
- let params = propName + '[' + key + ']'
|
|
|
+ const params = propName + '[' + key + ']'
|
|
|
var subPart = encodeURIComponent(params) + '='
|
|
|
url += subPart + encodeURIComponent(value[key]) + '&'
|
|
|
}
|
|
@@ -50,68 +52,74 @@ service.interceptors.request.use(config => {
|
|
|
|
|
|
// 响应拦截器
|
|
|
service.interceptors.response.use(res => {
|
|
|
- // 未设置状态码则默认成功状态
|
|
|
- const code = res.data.code || 200
|
|
|
- // 获取错误信息
|
|
|
- const msg = errorCode[code] || res.data.msg || errorCode['default']
|
|
|
- if (code === 401 || code === 402) {
|
|
|
- const defaultMsg = '登录状态已过期,您可以继续留在该页面,或者重新登录'
|
|
|
- const customMsg = code === 402 ? res.data.msg : defaultMsg
|
|
|
- MessageBox.confirm(customMsg || defaultMsg, '系统提示', {
|
|
|
- confirmButtonText: '重新登录',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning'
|
|
|
- }
|
|
|
- ).then(() => {
|
|
|
- auth.removeToken()
|
|
|
- location.href = '/login'
|
|
|
- })
|
|
|
- return Promise.reject('error')
|
|
|
- } else if (code === 403) {
|
|
|
- const defaultMsg = '卡号已过期或已关卡状态,您可以选择续费以重新激活账号'
|
|
|
- const customMsg = res.data.msg || defaultMsg
|
|
|
- MessageBox.confirm(customMsg, '系统提示', {
|
|
|
- confirmButtonText: '续费',
|
|
|
- cancelButtonText: '取消',
|
|
|
- type: 'warning'
|
|
|
- }).then(() => {
|
|
|
- const { cardNo, mobile } = res.data
|
|
|
- location.href = `/renew?cardNo=${cardNo}&mobile=${mobile}`
|
|
|
- })
|
|
|
- return Promise.reject('error')
|
|
|
- } else if (code === 500) {
|
|
|
- Message({
|
|
|
- message: msg,
|
|
|
- type: 'error'
|
|
|
- })
|
|
|
- return Promise.reject(new Error(msg))
|
|
|
- } else if (code !== 200) {
|
|
|
- Notification.error({
|
|
|
- title: msg
|
|
|
- })
|
|
|
- return Promise.reject('error')
|
|
|
- } else {
|
|
|
- // blob类型的文件流因为后续还要处理文件其它信息,所以不做处理
|
|
|
- return (res.data instanceof Blob) ? res : res.data
|
|
|
- }
|
|
|
- },
|
|
|
- error => {
|
|
|
- console.log('err' + error)
|
|
|
- let { message } = error
|
|
|
- if (message == 'Network Error') {
|
|
|
- message = '网络连接异常'
|
|
|
- } else if (message.includes('timeout')) {
|
|
|
- message = '网络请求超时'
|
|
|
- } else if (message.includes('Request failed with status code')) {
|
|
|
- message = '系统接口' + message.substr(message.length - 3) + '异常'
|
|
|
- }
|
|
|
+ // if (res.config.url.includes('zytb/save')) {
|
|
|
+ // debugger
|
|
|
+ // store.getters.currentUser.scoreLock = -1
|
|
|
+ // res.data.code = 405
|
|
|
+ // res.data.msg = '模拟数据,测试405码'
|
|
|
+ // }
|
|
|
+ // 未设置状态码则默认成功状态
|
|
|
+ const code = res.data.code || 200
|
|
|
+ // 获取错误信息
|
|
|
+ const msg = errorCode[code] || res.data.msg || errorCode['default']
|
|
|
+ if (code === 401 || code === 402) {
|
|
|
+ const defaultMsg = '登录状态已过期,您可以继续留在该页面,或者重新登录'
|
|
|
+ const customMsg = code === 402 ? res.data.msg : defaultMsg
|
|
|
+ MessageBox.confirm(customMsg || defaultMsg, '系统提示', {
|
|
|
+ confirmButtonText: '重新登录',
|
|
|
+ cancelButtonText: '取消',
|
|
|
+ type: 'warning'
|
|
|
+ }).then(() => {
|
|
|
+ auth.removeToken()
|
|
|
+ location.href = '/login'
|
|
|
+ })
|
|
|
+ return Promise.reject('error')
|
|
|
+ } else if (code === 405) {
|
|
|
+ if (handling_405) return Promise.reject()
|
|
|
+ handling_405 = true
|
|
|
+ const defaultMsg = '检测到系统数据更新,请稍后重试'
|
|
|
+ const customMsg = msg || defaultMsg
|
|
|
+ MessageBox.confirm(customMsg, '系统提示', {
|
|
|
+ showCancelButton: false,
|
|
|
+ type: 'warning'
|
|
|
+ }).then(async() => {
|
|
|
+ await store.dispatch('GetInfo')
|
|
|
+ location.href = '/'
|
|
|
+ }).finally(() => handling_405 = false)
|
|
|
+ return Promise.reject()
|
|
|
+ } else if (code === 500) {
|
|
|
Message({
|
|
|
- message: message,
|
|
|
- type: 'error',
|
|
|
- duration: 5 * 1000
|
|
|
+ message: msg,
|
|
|
+ type: 'error'
|
|
|
+ })
|
|
|
+ return Promise.reject(new Error(msg))
|
|
|
+ } else if (code !== 200) {
|
|
|
+ Notification.error({
|
|
|
+ title: msg
|
|
|
})
|
|
|
- return Promise.reject(error)
|
|
|
+ return Promise.reject('error')
|
|
|
+ } else {
|
|
|
+ // blob类型的文件流因为后续还要处理文件其它信息,所以不做处理
|
|
|
+ return (res.data instanceof Blob) ? res : res.data
|
|
|
+ }
|
|
|
+},
|
|
|
+error => {
|
|
|
+ console.log('err' + error)
|
|
|
+ let { message } = error
|
|
|
+ if (message === 'Network Error') {
|
|
|
+ message = '网络连接异常'
|
|
|
+ } else if (message.includes('timeout')) {
|
|
|
+ message = '网络请求超时'
|
|
|
+ } else if (message.includes('Request failed with status code')) {
|
|
|
+ message = '系统接口' + message.substr(message.length - 3) + '异常'
|
|
|
}
|
|
|
+ Message({
|
|
|
+ message: message,
|
|
|
+ type: 'error',
|
|
|
+ duration: 5 * 1000
|
|
|
+ })
|
|
|
+ return Promise.reject(error)
|
|
|
+}
|
|
|
)
|
|
|
|
|
|
export default service
|