You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
150 lines
4.1 KiB
150 lines
4.1 KiB
import {
|
|
resolve
|
|
} from 'patch-package/dist/path';
|
|
import Setting from '~/setting'
|
|
|
|
// import { Message } from "element-ui"
|
|
|
|
export default function ({
|
|
redirect,
|
|
$axios,
|
|
app
|
|
}) {
|
|
// 数据访问前缀
|
|
// $axios.defaults.baseURL = Setting.apiBaseURL;
|
|
if (process.server) {
|
|
// 获取服务端的token
|
|
// var token = getCookie.getcookiesInServer(req).token;
|
|
}
|
|
if (process.client) {
|
|
// 获取客户端token
|
|
// var token = getCookie.getcookiesInClient('token');
|
|
}
|
|
// 请求拦截器
|
|
$axios.interceptors.request.use(
|
|
config => {
|
|
if (config.data?.couponURL) {
|
|
config.baseURL = Setting.couponBaseURL
|
|
} else {
|
|
config.baseURL = Setting.apiBaseURL;
|
|
}
|
|
let local = localStorage.getItem('auth.strategy');
|
|
let token = localStorage.getItem(`auth._token.${local}`);
|
|
// let token = localStorage.getItem("token");
|
|
|
|
// if (token) {
|
|
// config.headers.common['token'] = token;
|
|
|
|
// }
|
|
|
|
if (config.method == 'get') {
|
|
if (typeof config.params == 'undefined') {
|
|
config.params = {}
|
|
}
|
|
config.params['app_type'] = 'pc';
|
|
config.params['app_type_name'] = 'PC';
|
|
if (token) {
|
|
|
|
config.params['token'] = token;
|
|
}
|
|
} else {
|
|
if (typeof config.data == 'undefined') {
|
|
config.data = {}
|
|
}
|
|
|
|
config.data['app_type'] = 'pc';
|
|
config.data['app_type_name'] = 'PC';
|
|
|
|
if (token) {
|
|
config.data['token'] = localStorage.getItem("token");
|
|
if (localStorage.getItem("drugstoreObj")) {
|
|
const drugstoreObj = JSON.parse(localStorage.getItem("drugstoreObj"))
|
|
if (drugstoreObj && drugstoreObj.id) {
|
|
config.data['store_id'] = drugstoreObj.id;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return config
|
|
},
|
|
error => {
|
|
// do something with request error
|
|
return Promise.reject(error)
|
|
}
|
|
)
|
|
// response拦截器,数据返回后,可以先在这里进行一个简单的判断
|
|
$axios.interceptors.response.use(
|
|
response => {
|
|
// 获取服务器类型
|
|
if (process.browser) {
|
|
if (!localStorage.getItem("SERVER_TYPE")) {
|
|
localStorage.setItem("SERVER_TYPE", response.headers['server']);
|
|
}
|
|
}
|
|
|
|
let res = {}
|
|
try {
|
|
res = JSON.parse(response.data)
|
|
} catch (err) {
|
|
|
|
}
|
|
let code = res.code;
|
|
|
|
|
|
switch (code) {
|
|
case 0:
|
|
return res
|
|
case 10067:
|
|
return res
|
|
case 400:
|
|
return Promise.reject(res.message)
|
|
case 401:
|
|
redirect('/login');
|
|
localStorage.clear();
|
|
return Promise.reject(res.message)
|
|
case 402:
|
|
return Promise.reject(res.message)
|
|
case -10009:
|
|
redirect('/login');
|
|
localStorage.clear();
|
|
return Promise.reject(res.message)
|
|
case -10010:
|
|
redirect('/login');
|
|
localStorage.clear();
|
|
return Promise.reject(res.message)
|
|
case 410000:
|
|
case 410001:
|
|
case 410002:
|
|
app.$cookies.set("fromPath", location.pathname + location.search);
|
|
let local = localStorage.getItem('auth.strategy');
|
|
app.$cookies.remove(`auth._token.${local}`);
|
|
localStorage.clear();
|
|
redirect('/login');
|
|
return Promise.reject(res.message)
|
|
// app.$auth.logout().then(res=>{
|
|
//
|
|
// })
|
|
break
|
|
default:
|
|
// Message({
|
|
// message: res.message || 'Error',
|
|
// type: 'error',
|
|
// duration: 2 * 1000
|
|
// })
|
|
return Promise.reject(res.message)
|
|
}
|
|
},
|
|
error => {
|
|
if (process.client) { }
|
|
// if(error.response.status == 500){
|
|
// // http状态500,服务器内部错误,重定向到500页面
|
|
// redirect("/500.htm")
|
|
// }
|
|
// if(error.response.status == 404){
|
|
// // http状态500,请求API找不到,重定向到404页面
|
|
// redirect("/404.html")
|
|
// }
|
|
return Promise.reject(error || error.message) // 返回接口返回的错误信息
|
|
})
|
|
}
|
|
|