作者 朱兆平

精简main.js

  1 +import jsutil from "@/common/js/util";
  2 +import axios from "@/axios";
  3 +
  4 +var axois_init = {
  5 + init_axios: (message,router,axios) => {
  6 + axios.defaults.baseURL = '/api';
  7 + axios.interceptors.response.use(
  8 + res => {
  9 + //对响应数据做些事
  10 + if (res.data && res.status!==200) {
  11 + message({
  12 + // 饿了么的消息弹窗组件,类似toast
  13 + showClose: true,
  14 + message: 'res.data.error.message.message ? res.data.error.message.message : res.data.error.message',
  15 + type: "error"
  16 + });
  17 + return Promise.reject(res.data.error.message);
  18 + }
  19 + return res;
  20 + },
  21 + error => {
  22 + // 用户登录的时候会拿到一个基础信息,比如用户名,token,过期时间戳
  23 + // 直接丢sessionStorage
  24 + if (!sessionStorage.getItem("token")) {
  25 + // 若是接口访问的时候没有发现有鉴权的基础信息,直接返回登录页
  26 + router.push({
  27 + path: "/login"
  28 + });
  29 + }
  30 +
  31 + // 下面是接口回调的satus ,因为我做了一些错误页面,所以都会指向对应的报错页面
  32 + if (error.response.status === 401) {
  33 + message({
  34 + // 饿了么的消息弹窗组件
  35 + message: '授权超时,或访问未授权,请重新登录',
  36 + type: "error"
  37 + });
  38 + }
  39 +
  40 + // 下面是接口回调的satus ,因为我做了一些错误页面,所以都会指向对应的报错页面
  41 + if (error.response.status === 403) {
  42 + router.push({
  43 + path: "/error/403"
  44 + });
  45 + }
  46 + if (error.response.status === 500) {
  47 + message({
  48 + // 饿了么的消息弹窗组件
  49 + message: error.message,
  50 + type: "error"
  51 + });
  52 + // router.push({
  53 + // path: "/error/500"
  54 + // });
  55 + }
  56 + if (error.response.status === 502) {
  57 + router.push({
  58 + path: "/error/502"
  59 + });
  60 + }
  61 + if (error.response.status === 404) {
  62 + message({
  63 + // 饿了么的消息弹窗组件
  64 + message: "访问不存在",
  65 + type: "error"
  66 + });
  67 + }
  68 +
  69 + let errorInfo = "出错了";
  70 +
  71 + if(jsutil.checkNull(error.response)){
  72 + errorInfo = error.response.statusText
  73 + }else if(jsutil.checkNull(error.data) && jsutil.checkNull(error.data.error) && jsutil.checkNull(error.data.error.message)){
  74 + errorInfo = error.data.error.message;
  75 + }else if (jsutil.checkNull(error.message)){
  76 + errorInfo = error.message;
  77 + }else {
  78 + errorInfo = error;
  79 + }
  80 + // 返回 response 里的错误信息
  81 +
  82 + return Promise.reject(errorInfo);
  83 + }
  84 + );
  85 + },
  86 + init_router: (router,axios) => {
  87 + router.beforeEach((to, from, next) => {
  88 + //NProgress.start();
  89 + if (to.path == '/login') {
  90 + sessionStorage.removeItem('user');
  91 + sessionStorage.removeItem('menu');
  92 + sessionStorage.removeItem('token');
  93 + }
  94 + let user = JSON.parse(sessionStorage.getItem('user'));
  95 + if(sessionStorage.getItem('token')){
  96 + axios.defaults.headers.common['Authorization'] = sessionStorage.getItem('token');
  97 + }
  98 + if (jsutil.checkNull(user) && to.path != '/login' && !sessionStorage.getItem('menu') && !sessionStorage.getItem('token')) {
  99 + next({ path: '/login' })
  100 + } else {
  101 + next()
  102 + }
  103 + });
  104 + }
  105 +}
  106 +
  107 +export default axois_init;
@@ -15,6 +15,7 @@ import 'font-awesome/css/font-awesome.min.css' @@ -15,6 +15,7 @@ import 'font-awesome/css/font-awesome.min.css'
15 15
16 import * as socketApi from './api/socket' 16 import * as socketApi from './api/socket'
17 import '@/styles/index.scss' 17 import '@/styles/index.scss'
  18 +import sys_init from '@/common/init/sys_init'
18 19
19 20
20 //定义一个全局过滤器实现日期格式化 21 //定义一个全局过滤器实现日期格式化
@@ -45,94 +46,9 @@ Vue.prototype.$rout =router; @@ -45,94 +46,9 @@ Vue.prototype.$rout =router;
45 //本地存储系统初始化的router路由,用来处理用户退出后,把路由数据初始化 46 //本地存储系统初始化的router路由,用来处理用户退出后,把路由数据初始化
46 sessionStorage.setItem('sysMenu', JSON.stringify(rout.routes)); 47 sessionStorage.setItem('sysMenu', JSON.stringify(rout.routes));
47 48
48 -router.beforeEach((to, from, next) => {  
49 - //NProgress.start();  
50 - if (to.path == '/login') {  
51 - sessionStorage.removeItem('user');  
52 - sessionStorage.removeItem('menu');  
53 - sessionStorage.removeItem('token');  
54 - }  
55 - let user = JSON.parse(sessionStorage.getItem('user'));  
56 - if(sessionStorage.getItem('token')){  
57 - axios.defaults.headers.common['Authorization'] = sessionStorage.getItem('token');  
58 - }  
59 - if (!user && to.path != '/login' && !sessionStorage.getItem('menu') && !sessionStorage.getItem('token')) {  
60 - next({ path: '/login' })  
61 - } else {  
62 - next()  
63 - }  
64 -});  
65 -  
66 const message = Vue.prototype.$message; 49 const message = Vue.prototype.$message;
67 -axios.defaults.baseURL = '/api';  
68 -axios.interceptors.response.use(  
69 - res => {  
70 - //对响应数据做些事  
71 - if (res.data && res.status!==200) {  
72 - message({  
73 - // 饿了么的消息弹窗组件,类似toast  
74 - showClose: true,  
75 - message: 'res.data.error.message.message ? res.data.error.message.message : res.data.error.message',  
76 - type: "error"  
77 - });  
78 - return Promise.reject(res.data.error.message);  
79 - }  
80 - return res;  
81 - },  
82 - error => {  
83 - // 用户登录的时候会拿到一个基础信息,比如用户名,token,过期时间戳  
84 - // 直接丢sessionStorage  
85 - if (!sessionStorage.getItem("token")) {  
86 - // 若是接口访问的时候没有发现有鉴权的基础信息,直接返回登录页  
87 - router.push({  
88 - path: "/login"  
89 - });  
90 - } else {  
91 -  
92 - // 下面是接口回调的satus ,因为我做了一些错误页面,所以都会指向对应的报错页面  
93 - if (error.response.status === 401) {  
94 - message({  
95 - // 饿了么的消息弹窗组件  
96 - message: '授权超时,或访问未授权,请重新登录',  
97 - type: "error"  
98 - });  
99 - }  
100 -  
101 - // 下面是接口回调的satus ,因为我做了一些错误页面,所以都会指向对应的报错页面  
102 - if (error.response.status === 403) {  
103 - router.push({  
104 - path: "/error/403"  
105 - });  
106 - }  
107 - if (error.response.status === 500) {  
108 - message({  
109 - // 饿了么的消息弹窗组件  
110 - message: error.message,  
111 - type: "error"  
112 - });  
113 - // router.push({  
114 - // path: "/error/500"  
115 - // });  
116 - }  
117 - if (error.response.status === 502) {  
118 - router.push({  
119 - path: "/error/502"  
120 - });  
121 - }  
122 - if (error.response.status === 404) {  
123 - message({  
124 - // 饿了么的消息弹窗组件  
125 - message: error.message,  
126 - type: "error"  
127 - });  
128 - }  
129 - }  
130 - // 返回 response 里的错误信息  
131 - let errorInfo = error.response ? error.response.statusText : (error.data.error ? error.data.error.message : error.message);  
132 - return Promise.reject(errorInfo);  
133 - }  
134 -);  
135 - 50 +sys_init.init_axios(message,router,axios);
  51 +sys_init.init_router(router,axios);
136 52
137 //router.afterEach(transition => { 53 //router.afterEach(transition => {
138 //NProgress.done(); 54 //NProgress.done();
@@ -90,10 +90,10 @@ export default { @@ -90,10 +90,10 @@ export default {
90 } 90 }
91 }, 91 },
92 legend: { 92 legend: {
93 - data: ['expected', 'actual'] 93 + data: ['当日总量', '当日完成']
94 }, 94 },
95 series: [{ 95 series: [{
96 - name: 'expected', itemStyle: { 96 + name: '当日总量', itemStyle: {
97 normal: { 97 normal: {
98 color: '#FF005A', 98 color: '#FF005A',
99 lineStyle: { 99 lineStyle: {
@@ -109,7 +109,7 @@ export default { @@ -109,7 +109,7 @@ export default {
109 animationEasing: 'cubicInOut' 109 animationEasing: 'cubicInOut'
110 }, 110 },
111 { 111 {
112 - name: 'actual', 112 + name: '当日完成',
113 smooth: true, 113 smooth: true,
114 type: 'line', 114 type: 'line',
115 itemStyle: { 115 itemStyle: {
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 </div> 9 </div>
10 <div class="card-panel-description"> 10 <div class="card-panel-description">
11 <div class="card-panel-text"> 11 <div class="card-panel-text">
12 - New Visits 12 + 今日出港总申报量
13 </div> 13 </div>
14 <count-to :start-val="0" :end-val="102400" :duration="2600" class="card-panel-num" /> 14 <count-to :start-val="0" :end-val="102400" :duration="2600" class="card-panel-num" />
15 </div> 15 </div>
@@ -25,7 +25,7 @@ @@ -25,7 +25,7 @@
25 </div> 25 </div>
26 <div class="card-panel-description"> 26 <div class="card-panel-description">
27 <div class="card-panel-text"> 27 <div class="card-panel-text">
28 - Messages 28 + 今日出港申报完成
29 </div> 29 </div>
30 <count-to :start-val="0" :end-val="81212" :duration="3000" class="card-panel-num" /> 30 <count-to :start-val="0" :end-val="81212" :duration="3000" class="card-panel-num" />
31 </div> 31 </div>
@@ -40,7 +40,7 @@ @@ -40,7 +40,7 @@
40 </div> 40 </div>
41 <div class="card-panel-description"> 41 <div class="card-panel-description">
42 <div class="card-panel-text"> 42 <div class="card-panel-text">
43 - Purchases 43 + 今日进港总申报量
44 </div> 44 </div>
45 <count-to :start-val="0" :end-val="9280" :duration="3200" class="card-panel-num" /> 45 <count-to :start-val="0" :end-val="9280" :duration="3200" class="card-panel-num" />
46 </div> 46 </div>
@@ -54,7 +54,7 @@ @@ -54,7 +54,7 @@
54 </div> 54 </div>
55 <div class="card-panel-description"> 55 <div class="card-panel-description">
56 <div class="card-panel-text"> 56 <div class="card-panel-text">
57 - Shoppings 57 + 今日进港申报完成
58 </div> 58 </div>
59 <count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" /> 59 <count-to :start-val="0" :end-val="13600" :duration="3600" class="card-panel-num" />
60 </div> 60 </div>