...
|
...
|
@@ -15,6 +15,7 @@ import 'font-awesome/css/font-awesome.min.css' |
|
|
|
|
|
import * as socketApi from './api/socket'
|
|
|
import '@/styles/index.scss'
|
|
|
import sys_init from '@/common/init/sys_init'
|
|
|
|
|
|
|
|
|
//定义一个全局过滤器实现日期格式化
|
...
|
...
|
@@ -45,94 +46,9 @@ Vue.prototype.$rout =router; |
|
|
//本地存储系统初始化的router路由,用来处理用户退出后,把路由数据初始化
|
|
|
sessionStorage.setItem('sysMenu', JSON.stringify(rout.routes));
|
|
|
|
|
|
router.beforeEach((to, from, next) => {
|
|
|
//NProgress.start();
|
|
|
if (to.path == '/login') {
|
|
|
sessionStorage.removeItem('user');
|
|
|
sessionStorage.removeItem('menu');
|
|
|
sessionStorage.removeItem('token');
|
|
|
}
|
|
|
let user = JSON.parse(sessionStorage.getItem('user'));
|
|
|
if(sessionStorage.getItem('token')){
|
|
|
axios.defaults.headers.common['Authorization'] = sessionStorage.getItem('token');
|
|
|
}
|
|
|
if (!user && to.path != '/login' && !sessionStorage.getItem('menu') && !sessionStorage.getItem('token')) {
|
|
|
next({ path: '/login' })
|
|
|
} else {
|
|
|
next()
|
|
|
}
|
|
|
});
|
|
|
|
|
|
const message = Vue.prototype.$message;
|
|
|
axios.defaults.baseURL = '/api';
|
|
|
axios.interceptors.response.use(
|
|
|
res => {
|
|
|
//对响应数据做些事
|
|
|
if (res.data && res.status!==200) {
|
|
|
message({
|
|
|
// 饿了么的消息弹窗组件,类似toast
|
|
|
showClose: true,
|
|
|
message: 'res.data.error.message.message ? res.data.error.message.message : res.data.error.message',
|
|
|
type: "error"
|
|
|
});
|
|
|
return Promise.reject(res.data.error.message);
|
|
|
}
|
|
|
return res;
|
|
|
},
|
|
|
error => {
|
|
|
// 用户登录的时候会拿到一个基础信息,比如用户名,token,过期时间戳
|
|
|
// 直接丢sessionStorage
|
|
|
if (!sessionStorage.getItem("token")) {
|
|
|
// 若是接口访问的时候没有发现有鉴权的基础信息,直接返回登录页
|
|
|
router.push({
|
|
|
path: "/login"
|
|
|
});
|
|
|
} else {
|
|
|
|
|
|
// 下面是接口回调的satus ,因为我做了一些错误页面,所以都会指向对应的报错页面
|
|
|
if (error.response.status === 401) {
|
|
|
message({
|
|
|
// 饿了么的消息弹窗组件
|
|
|
message: '授权超时,或访问未授权,请重新登录',
|
|
|
type: "error"
|
|
|
});
|
|
|
}
|
|
|
|
|
|
// 下面是接口回调的satus ,因为我做了一些错误页面,所以都会指向对应的报错页面
|
|
|
if (error.response.status === 403) {
|
|
|
router.push({
|
|
|
path: "/error/403"
|
|
|
});
|
|
|
}
|
|
|
if (error.response.status === 500) {
|
|
|
message({
|
|
|
// 饿了么的消息弹窗组件
|
|
|
message: error.message,
|
|
|
type: "error"
|
|
|
});
|
|
|
// router.push({
|
|
|
// path: "/error/500"
|
|
|
// });
|
|
|
}
|
|
|
if (error.response.status === 502) {
|
|
|
router.push({
|
|
|
path: "/error/502"
|
|
|
});
|
|
|
}
|
|
|
if (error.response.status === 404) {
|
|
|
message({
|
|
|
// 饿了么的消息弹窗组件
|
|
|
message: error.message,
|
|
|
type: "error"
|
|
|
});
|
|
|
}
|
|
|
}
|
|
|
// 返回 response 里的错误信息
|
|
|
let errorInfo = error.response ? error.response.statusText : (error.data.error ? error.data.error.message : error.message);
|
|
|
return Promise.reject(errorInfo);
|
|
|
}
|
|
|
);
|
|
|
|
|
|
sys_init.init_axios(message,router,axios);
|
|
|
sys_init.init_router(router,axios);
|
|
|
|
|
|
//router.afterEach(transition => {
|
|
|
//NProgress.done();
|
...
|
...
|
|