style:首页
This commit is contained in:
146
src/api/request.js
Normal file
146
src/api/request.js
Normal file
@@ -0,0 +1,146 @@
|
||||
import axios from 'axios'
|
||||
import qs from 'qs'
|
||||
import router from '@/router'
|
||||
import { Message } from 'element-ui'
|
||||
|
||||
const CODE_MESSAGE = {
|
||||
200: '服务器成功返回请求数据',
|
||||
201: '新建或修改数据成功',
|
||||
202: '一个请求已经进入后台排队(异步任务)',
|
||||
204: '删除数据成功',
|
||||
400: '发出信息有误',
|
||||
401: '用户没有权限(令牌失效、用户名、密码错误、登录过期)',
|
||||
402: '令牌过期',
|
||||
403: '用户得到授权,但是访问是被禁止的',
|
||||
404: '访问资源不存在',
|
||||
406: '请求格式不可得',
|
||||
410: '请求资源被永久删除,且不会被看到',
|
||||
500: '服务器发生错误',
|
||||
502: '网关错误',
|
||||
503: '服务不可用,服务器暂时过载或维护',
|
||||
504: '网关超时'
|
||||
}
|
||||
|
||||
/**
|
||||
* axios响应拦截器
|
||||
* @param config 请求配置
|
||||
* @param data response数据
|
||||
* @param status HTTP status
|
||||
* @param statusText HTTP status text
|
||||
* @returns {Promise<*|*>}
|
||||
*/
|
||||
const handleData = async ({ data, status, statusText }) => {
|
||||
// 若data.code存在,覆盖默认code
|
||||
let code = data && data['code'] ? data['code'] : status
|
||||
// 若code属于操作正常code,则status修改为200
|
||||
const codeVerificationArray = [200, 1, '200', '1']
|
||||
if (codeVerificationArray.indexOf(data['code']) + 1) code = 1
|
||||
switch (code) {
|
||||
case 1:
|
||||
// 业务层级错误处理,以下是假定restful有一套统一输出格式(指不管成功与否都有相应的数据格式)情况下进行处理
|
||||
// 例如响应内容:
|
||||
// 错误内容:{ code: 0, msg: '非法参数' }
|
||||
// 正确内容:{ code: 1, data: { }, msg: '操作正常' }
|
||||
// return data
|
||||
return data
|
||||
case 401:
|
||||
router
|
||||
.push({
|
||||
path: '/',
|
||||
replace: true
|
||||
})
|
||||
.then(() => {})
|
||||
break
|
||||
case 402:
|
||||
router
|
||||
.push({
|
||||
path: '/',
|
||||
replace: true
|
||||
})
|
||||
.then(() => {})
|
||||
break
|
||||
case 403:
|
||||
router
|
||||
.push({
|
||||
path: '/'
|
||||
})
|
||||
.then(() => {})
|
||||
break
|
||||
}
|
||||
// 异常处理
|
||||
// 若data.msg存在,覆盖默认提醒消息
|
||||
let errMsg = `${
|
||||
data && data['msg'] ? data['msg'] : CODE_MESSAGE[code] ? CODE_MESSAGE[code] : statusText
|
||||
}`
|
||||
if (code === 401) {
|
||||
errMsg = '您的登录信息已过期,请重新登录...'
|
||||
} else if (code == 500 && errMsg == '房间不存在') {
|
||||
console.log('') //大屏直播页面没有直播时做了轮询,如果没有房间,会一直报异常,这里把异常弹窗去掉
|
||||
} else {
|
||||
// 是否显示高亮错误(与errorHandler钩子触发逻辑一致)
|
||||
// $baseMessage(errMsg, 'error', 'vab-hey-message-error', false)
|
||||
Message({
|
||||
message: errMsg,
|
||||
type: 'error',
|
||||
duration: 5 * 1000
|
||||
})
|
||||
}
|
||||
return Promise.reject(data)
|
||||
}
|
||||
|
||||
/**
|
||||
* @description axios初始化
|
||||
*/
|
||||
const instance = axios.create({
|
||||
baseURL: '/dq_api',
|
||||
timeout: 100000,
|
||||
headers: {
|
||||
'Content-Type': 'application/json;charset=UTF-8'
|
||||
}
|
||||
})
|
||||
|
||||
/**
|
||||
* @description axios请求拦截器
|
||||
*/
|
||||
instance.interceptors.request.use(
|
||||
(config) => {
|
||||
// 规范写法 不可随意自定义
|
||||
let urlParams = {}
|
||||
if (config.params) {
|
||||
urlParams = {
|
||||
...config.params
|
||||
}
|
||||
}
|
||||
|
||||
config.url = config.url + '?' + qs.stringify(urlParams)
|
||||
if (
|
||||
config.data &&
|
||||
config.headers['Content-Type'] === 'application/x-www-form-urlencoded;charset=UTF-8'
|
||||
)
|
||||
config.data = qs.stringify(config.data)
|
||||
return config
|
||||
},
|
||||
(error) => {
|
||||
return Promise.reject(error)
|
||||
}
|
||||
)
|
||||
|
||||
/**
|
||||
* @description axios响应拦截器
|
||||
*/
|
||||
instance.interceptors.response.use(
|
||||
(response) => handleData(response),
|
||||
(error) => {
|
||||
const { response } = error
|
||||
if (response === undefined) {
|
||||
// Message({
|
||||
// message: '连接后台接口失败,可能由以下原因造成:后端不支持跨域CORS、接口地址不存在、请求超时等,请联系管理员排查后端接口问题',
|
||||
// type: 'error',
|
||||
// duration: 5 * 1000,
|
||||
// })
|
||||
return {}
|
||||
} else return handleData(response)
|
||||
}
|
||||
)
|
||||
|
||||
export default instance
|
||||
21
src/api/sys.js
Normal file
21
src/api/sys.js
Normal file
@@ -0,0 +1,21 @@
|
||||
// qrcode/service/qrcode/getQrcodeContent
|
||||
|
||||
import request from './request'
|
||||
|
||||
// 根据code获取二维码信息
|
||||
export function reqQrCodeInfo(data) {
|
||||
return request({
|
||||
url: `/qrcode/service/qrcode/getQrcodeContent/${data.code}`,
|
||||
method: 'get',
|
||||
data,
|
||||
})
|
||||
}
|
||||
|
||||
// 获取人员信息
|
||||
export function reqUserInfo(data) {
|
||||
return request({
|
||||
url: `/dq/goods/screen/getUserDetail`,
|
||||
method: 'post',
|
||||
data,
|
||||
})
|
||||
}
|
||||
Reference in New Issue
Block a user