|
|
@@ -1,129 +1,129 @@
|
|
|
-import Vue from 'vue'
|
|
|
-import axios from 'axios'
|
|
|
-import {
|
|
|
- // baseURL,
|
|
|
- contentType,
|
|
|
- debounce,
|
|
|
- messageName,
|
|
|
- requestTimeout,
|
|
|
- statusName,
|
|
|
- successCode,
|
|
|
- /* tokenName, */
|
|
|
-} from '@/config'
|
|
|
-import store from '@/store'
|
|
|
-import qs from 'qs'
|
|
|
-import router from '@/router'
|
|
|
-import { isArray } from '@/utils/validate'
|
|
|
-import { needErrorLog, addErrorLog } from '@/vab/plugins/errorLog'
|
|
|
+// import Vue from 'vue'
|
|
|
+// import axios from 'axios'
|
|
|
+// import {
|
|
|
+// // baseURL,
|
|
|
+// contentType,
|
|
|
+// debounce,
|
|
|
+// messageName,
|
|
|
+// requestTimeout,
|
|
|
+// statusName,
|
|
|
+// successCode,
|
|
|
+// /* tokenName, */
|
|
|
+// } from '@/config'
|
|
|
+// import store from '@/store'
|
|
|
+// import qs from 'qs'
|
|
|
+// import router from '@/router'
|
|
|
+// import { isArray } from '@/utils/validate'
|
|
|
+// import { needErrorLog, addErrorLog } from '@/vab/plugins/errorLog'
|
|
|
|
|
|
-let loadingInstance
|
|
|
+// let loadingInstance
|
|
|
|
|
|
-// 操作正常Code数组
|
|
|
-const codeVerificationArray = isArray(successCode) ? [...successCode] : [...[successCode]]
|
|
|
+// // 操作正常Code数组
|
|
|
+// const codeVerificationArray = isArray(successCode) ? [...successCode] : [...[successCode]]
|
|
|
|
|
|
-const CODE_MESSAGE = {
|
|
|
- 0: '未可知错误,可能是因为后端不支持跨域CORS、接口地址不存在等问题引起',
|
|
|
- 200: '服务器成功返回请求数据',
|
|
|
- 201: '新建或修改数据成功',
|
|
|
- 202: '一个请求已经进入后台排队(异步任务)',
|
|
|
- 204: '删除数据成功',
|
|
|
- 400: '发出信息有误',
|
|
|
- 401: '用户没有权限(令牌失效、用户名、密码错误、登录过期)',
|
|
|
- 402: '令牌过期',
|
|
|
- 403: '用户得到授权,但是访问是被禁止的',
|
|
|
- 404: '访问资源不存在',
|
|
|
- 406: '请求格式不可得',
|
|
|
- 410: '请求资源被永久删除,且不会被看到',
|
|
|
- 500: '服务器发生错误',
|
|
|
- 502: '网关错误',
|
|
|
- 503: '服务不可用,服务器暂时过载或维护',
|
|
|
- 504: '网关超时',
|
|
|
-}
|
|
|
+// const CODE_MESSAGE = {
|
|
|
+// 0: '未可知错误,可能是因为后端不支持跨域CORS、接口地址不存在等问题引起',
|
|
|
+// 200: '服务器成功返回请求数据',
|
|
|
+// 201: '新建或修改数据成功',
|
|
|
+// 202: '一个请求已经进入后台排队(异步任务)',
|
|
|
+// 204: '删除数据成功',
|
|
|
+// 400: '发出信息有误',
|
|
|
+// 401: '用户没有权限(令牌失效、用户名、密码错误、登录过期)',
|
|
|
+// 402: '令牌过期',
|
|
|
+// 403: '用户得到授权,但是访问是被禁止的',
|
|
|
+// 404: '访问资源不存在',
|
|
|
+// 406: '请求格式不可得',
|
|
|
+// 410: '请求资源被永久删除,且不会被看到',
|
|
|
+// 500: '服务器发生错误',
|
|
|
+// 502: '网关错误',
|
|
|
+// 503: '服务不可用,服务器暂时过载或维护',
|
|
|
+// 504: '网关超时',
|
|
|
+// }
|
|
|
|
|
|
-/**
|
|
|
- * axios响应拦截器
|
|
|
- * @param data response数据
|
|
|
- * @param status HTTP status
|
|
|
- * @param statusText HTTP status text
|
|
|
- * @returns {Promise<*|*>}
|
|
|
- */
|
|
|
-const handleData = async ({ data, status = 0, statusText }) => {
|
|
|
- if (loadingInstance) loadingInstance.close()
|
|
|
- // 若data.code存在,覆盖默认code
|
|
|
- let code = data && data[statusName] ? data[statusName] : status
|
|
|
- // 若code属于操作正常code,则code修正为200
|
|
|
- if (codeVerificationArray.indexOf(code) + 1) code = 200
|
|
|
- switch (code) {
|
|
|
- case 200:
|
|
|
- // 业务层级错误处理,以下是假定restful有一套统一输出格式(指不管成功与否都有相应的数据格式)情况下进行处理
|
|
|
- // 例如响应内容:
|
|
|
- // 错误内容:{ code: 1, msg: '非法参数' }
|
|
|
- // 正确内容:{ code: 200, data: { }, msg: '操作正常' }
|
|
|
- // return data
|
|
|
- return data
|
|
|
- case 401:
|
|
|
- store.dispatch('user/resetAll').then(() => router.push({ path: '/login', replace: true }).then(() => {}))
|
|
|
- break
|
|
|
- case 403:
|
|
|
- router.push({ path: '/403' }).then(() => {})
|
|
|
- break
|
|
|
- }
|
|
|
- // 异常处理
|
|
|
- // 若data.msg存在,覆盖默认提醒消息
|
|
|
- const errMsg = `${
|
|
|
- data && data[messageName] ? data[messageName] : CODE_MESSAGE[code] ? CODE_MESSAGE[code] : statusText
|
|
|
- }`
|
|
|
- Vue.prototype.$baseMessage(errMsg, 'error', 'vab-hey-message-error')
|
|
|
- // 是否添加错误日志(与errorHandler钩子触发逻辑一致)
|
|
|
- if (needErrorLog()) addErrorLog({ message: errMsg, stack: data, isRequest: true })
|
|
|
- return Promise.reject(data)
|
|
|
-}
|
|
|
+// /**
|
|
|
+// * axios响应拦截器
|
|
|
+// * @param data response数据
|
|
|
+// * @param status HTTP status
|
|
|
+// * @param statusText HTTP status text
|
|
|
+// * @returns {Promise<*|*>}
|
|
|
+// */
|
|
|
+// const handleData = async ({ data, status = 0, statusText }) => {
|
|
|
+// if (loadingInstance) loadingInstance.close()
|
|
|
+// // 若data.code存在,覆盖默认code
|
|
|
+// let code = data && data[statusName] ? data[statusName] : status
|
|
|
+// // 若code属于操作正常code,则code修正为200
|
|
|
+// if (codeVerificationArray.indexOf(code) + 1) code = 200
|
|
|
+// switch (code) {
|
|
|
+// case 200:
|
|
|
+// // 业务层级错误处理,以下是假定restful有一套统一输出格式(指不管成功与否都有相应的数据格式)情况下进行处理
|
|
|
+// // 例如响应内容:
|
|
|
+// // 错误内容:{ code: 1, msg: '非法参数' }
|
|
|
+// // 正确内容:{ code: 200, data: { }, msg: '操作正常' }
|
|
|
+// // return data
|
|
|
+// return data
|
|
|
+// case 401:
|
|
|
+// store.dispatch('user/resetAll').then(() => router.push({ path: '/login', replace: true }).then(() => {}))
|
|
|
+// break
|
|
|
+// case 403:
|
|
|
+// router.push({ path: '/403' }).then(() => {})
|
|
|
+// break
|
|
|
+// }
|
|
|
+// // 异常处理
|
|
|
+// // 若data.msg存在,覆盖默认提醒消息
|
|
|
+// const errMsg = `${
|
|
|
+// data && data[messageName] ? data[messageName] : CODE_MESSAGE[code] ? CODE_MESSAGE[code] : statusText
|
|
|
+// }`
|
|
|
+// Vue.prototype.$baseMessage(errMsg, 'error', 'vab-hey-message-error')
|
|
|
+// // 是否添加错误日志(与errorHandler钩子触发逻辑一致)
|
|
|
+// if (needErrorLog()) addErrorLog({ message: errMsg, stack: data, isRequest: true })
|
|
|
+// return Promise.reject(data)
|
|
|
+// }
|
|
|
|
|
|
-/**
|
|
|
- * @description axios初始化
|
|
|
- */
|
|
|
-const instance = axios.create({
|
|
|
- // baseURL,
|
|
|
- // eslint-disable-next-line no-undef
|
|
|
- baseURL: $GlobalConfig.baseUrl,
|
|
|
- timeout: requestTimeout,
|
|
|
- headers: {
|
|
|
- 'Content-Type': contentType,
|
|
|
- },
|
|
|
-})
|
|
|
+// /**
|
|
|
+// * @description axios初始化
|
|
|
+// */
|
|
|
+// const instance = axios.create({
|
|
|
+// // baseURL,
|
|
|
+// // eslint-disable-next-line no-undef
|
|
|
+// baseURL: $GlobalConfig.baseUrl,
|
|
|
+// timeout: requestTimeout,
|
|
|
+// headers: {
|
|
|
+// 'Content-Type': contentType,
|
|
|
+// },
|
|
|
+// })
|
|
|
|
|
|
-/**
|
|
|
- * @description axios请求拦截器
|
|
|
- */
|
|
|
-instance.interceptors.request.use(
|
|
|
- (config) => {
|
|
|
- const token = store.getters['user/token']
|
|
|
+// /**
|
|
|
+// * @description axios请求拦截器
|
|
|
+// */
|
|
|
+// instance.interceptors.request.use(
|
|
|
+// (config) => {
|
|
|
+// const token = store.getters['user/token']
|
|
|
|
|
|
- // 不规范写法 可根据setting.config.js tokenName配置随意自定义headers
|
|
|
- // if (token) config.headers[tokenName] = token
|
|
|
+// // 不规范写法 可根据setting.config.js tokenName配置随意自定义headers
|
|
|
+// // if (token) config.headers[tokenName] = token
|
|
|
|
|
|
- // 规范写法 不可随意自定义
|
|
|
- if (token) config.headers['Authorization'] = `Bearer ${token}`
|
|
|
+// // 规范写法 不可随意自定义
|
|
|
+// if (token) config.headers['Authorization'] = `Bearer ${token}`
|
|
|
|
|
|
- if (config.data && config.headers['Content-Type'] === 'application/x-www-form-urlencoded;charset=UTF-8')
|
|
|
- config.data = qs.stringify(config.data)
|
|
|
- if (debounce.some((item) => config.url.includes(item))) loadingInstance = Vue.prototype.$baseLoading()
|
|
|
- return config
|
|
|
- },
|
|
|
- (error) => {
|
|
|
- return Promise.reject(error)
|
|
|
- }
|
|
|
-)
|
|
|
+// if (config.data && config.headers['Content-Type'] === 'application/x-www-form-urlencoded;charset=UTF-8')
|
|
|
+// config.data = qs.stringify(config.data)
|
|
|
+// if (debounce.some((item) => config.url.includes(item))) loadingInstance = Vue.prototype.$baseLoading()
|
|
|
+// return config
|
|
|
+// },
|
|
|
+// (error) => {
|
|
|
+// return Promise.reject(error)
|
|
|
+// }
|
|
|
+// )
|
|
|
|
|
|
-/**
|
|
|
- * @description axios响应拦截器
|
|
|
- */
|
|
|
-instance.interceptors.response.use(
|
|
|
- (response) => handleData(response),
|
|
|
- (error) => {
|
|
|
- const { response = {} } = error
|
|
|
- return handleData(response)
|
|
|
- }
|
|
|
-)
|
|
|
+// /**
|
|
|
+// * @description axios响应拦截器
|
|
|
+// */
|
|
|
+// instance.interceptors.response.use(
|
|
|
+// (response) => handleData(response),
|
|
|
+// (error) => {
|
|
|
+// const { response = {} } = error
|
|
|
+// return handleData(response)
|
|
|
+// }
|
|
|
+// )
|
|
|
|
|
|
-export default instance
|
|
|
+// export default instance
|