作者 朱兆平

精简main.js

import jsutil from "@/common/js/util";
import axios from "@/axios";
var axois_init = {
init_axios: (message,router,axios) => {
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"
});
}
// 下面是接口回调的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: "访问不存在",
type: "error"
});
}
let errorInfo = "出错了";
if(jsutil.checkNull(error.response)){
errorInfo = error.response.statusText
}else if(jsutil.checkNull(error.data) && jsutil.checkNull(error.data.error) && jsutil.checkNull(error.data.error.message)){
errorInfo = error.data.error.message;
}else if (jsutil.checkNull(error.message)){
errorInfo = error.message;
}else {
errorInfo = error;
}
// 返回 response 里的错误信息
return Promise.reject(errorInfo);
}
);
},
init_router: (router,axios) => {
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 (jsutil.checkNull(user) && to.path != '/login' && !sessionStorage.getItem('menu') && !sessionStorage.getItem('token')) {
next({ path: '/login' })
} else {
next()
}
});
}
}
export default axois_init;
\ No newline at end of file
... ...
... ... @@ -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();
... ...
... ... @@ -90,10 +90,10 @@ export default {
}
},
legend: {
data: ['expected', 'actual']
data: ['当日总量', '当日完成']
},
series: [{
name: 'expected', itemStyle: {
name: '当日总量', itemStyle: {
normal: {
color: '#FF005A',
lineStyle: {
... ... @@ -109,7 +109,7 @@ export default {
animationEasing: 'cubicInOut'
},
{
name: 'actual',
name: '当日完成',
smooth: true,
type: 'line',
itemStyle: {
... ...
... ... @@ -9,7 +9,7 @@
</div>
<div class="card-panel-description">
<div class="card-panel-text">
New Visits
今日出港总申报量
</div>
<count-to :start-val="0" :end-val="102400" :duration="2600" class="card-panel-num" />
</div>
... ... @@ -25,7 +25,7 @@
</div>
<div class="card-panel-description">
<div class="card-panel-text">
Messages
今日出港申报完成
</div>
<count-to :start-val="0" :end-val="81212" :duration="3000" class="card-panel-num" />
</div>
... ... @@ -40,7 +40,7 @@
</div>
<div class="card-panel-description">
<div class="card-panel-text">
Purchases
今日进港总申报量
</div>
<count-to :start-val="0" :end-val="9280" :duration="3200" class="card-panel-num" />
</div>
... ... @@ -54,7 +54,7 @@
</div>
<div class="card-panel-description">
<div class="card-panel-text">
Shoppings
今日进港申报完成
</div>
<count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" />
</div>
... ...