齐采药WEB端项目
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

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) // 返回接口返回的错误信息
})
}