初始化
This commit is contained in:
@@ -0,0 +1,98 @@
|
||||
import axios from 'axios'
|
||||
import { useRoute, useRouter } from 'vue-router'
|
||||
import { useStore } from 'vuex';
|
||||
import { Toast, Dialog } from 'vant';
|
||||
// import { getItem, setItem, removeItem, dalert } from '@/com/index'
|
||||
const errorCode = {
|
||||
'401': '登录状态已过期,即将返回首页重新登录。',
|
||||
'403': '当前操作没有权限',
|
||||
'404': '访问资源不存在',
|
||||
'default': '系统未知错误,请反馈给管理员'
|
||||
}
|
||||
const route = useRoute()
|
||||
const router = useRouter()
|
||||
const store = useStore()
|
||||
const loadNoCloseArr = ['/upload/face', ]
|
||||
// 判断当前的运行环境 process.env.NODE_ENV
|
||||
// isDev 为真 开发环境 --- npm run serve
|
||||
// isDev 为假 非开发环境(测试环境,生产环境)- npm run build
|
||||
const isDev = process.env.NODE_ENV === 'development'
|
||||
const request = axios.create({
|
||||
// 根据环境 设置不同的baseURL
|
||||
// 如果配置了单个的反向代理 --- 字符串模式
|
||||
// 如果配置了多个的反向代理 --- 对象模式
|
||||
// baseURL: isDev ? 'http://visitor.scdswj.cn/prod-api' : 'http://visitor.scdswj.cn/prod-api'
|
||||
baseURL: isDev ? 'http://visitor.scdswj.cn/prod-api' : 'http://visitor.scdswj.cn/prod-api'
|
||||
})
|
||||
// 'http://rap2api.taobao.org/app/mock/297766/example/1643070528065'
|
||||
|
||||
// 请求拦截器 - 所有的请求开始之前先到此处
|
||||
request.interceptors.request.use((config) => {
|
||||
// 可以设置 加载的动画效果 的展示
|
||||
// 在必要的路由设置一些额外的参数 ---- token信息携带放在此处
|
||||
console.log(config)
|
||||
return config
|
||||
}, (error) => {
|
||||
return Promise.reject(error)
|
||||
})
|
||||
|
||||
// 响应拦截器 --- 所有请求的相应先到此处
|
||||
request.interceptors.response.use((response) => {
|
||||
// 可以设置 加载的动画效果 的隐藏
|
||||
const code = response.data.code || 200;
|
||||
const message = errorCode[code] || response.data.msg || errorCode['default']
|
||||
if(code == 200){
|
||||
if(loadNoCloseArr.includes(response.config.url)){ // 设置请求不关闭加载动画接口
|
||||
}else{
|
||||
Toast.clear()
|
||||
}
|
||||
}else{
|
||||
Toast.clear()
|
||||
}
|
||||
if (code === 401) {
|
||||
Toast.fail(message)
|
||||
setTimeout(()=>{
|
||||
localStorage.removeItem('token');
|
||||
localStorage.removeItem('user');
|
||||
localStorage.removeItem('userToken');
|
||||
|
||||
const redirectUrl = localStorage.getItem('redirect')
|
||||
if(redirectUrl){
|
||||
window.location.href = redirectUrl
|
||||
}else{
|
||||
window.location.href = '/userHome'
|
||||
}
|
||||
},2000)
|
||||
return Promise.reject('登录状态已过期,即将返回首页重新登录。')
|
||||
} else if (code === 500) {
|
||||
// Message({ message: msg, type: 'error' })
|
||||
Toast.fail(message)
|
||||
return Promise.reject(response.data)
|
||||
} else if (code === 601) {
|
||||
// Message({ message: msg, type: 'warning' })
|
||||
Toast.fail(message)
|
||||
return Promise.reject('error')
|
||||
} else if (code != 200) {
|
||||
Toast.fail(message)
|
||||
return Promise.reject('error')
|
||||
} else {
|
||||
return response.data
|
||||
}
|
||||
}, error => {
|
||||
Toast.clear()
|
||||
console.log(error.message)
|
||||
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) + "异常";
|
||||
}
|
||||
console.log(message)
|
||||
Toast.fail(message)
|
||||
return Promise.reject(error.response)
|
||||
|
||||
})
|
||||
|
||||
export default request
|
||||
Reference in New Issue
Block a user