zhoudw
2022-01-10 3755693be0be520deaf92d566f7e5e00d71fdcf5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import Vue from 'vue'
import Router from 'vue-router'
import Login from '@/views/login/login.vue'
import List from '@/views/voice/list.vue'
import User from '@/views/user/user.vue'
import Msg from '@/views/msg/msg.vue'
import Iframe from '@/views/iframe/iframe.vue'
import Vant from '@/views/vant.vue'
import store from '../store/index'
import {
    isEmpty,
    getCookieValue
} from '@/utils/utils.js'
 
Vue.use(Router)
 
let router = new Router({
    mode: "history",
    routes: [{
            path: '/login',
            name: 'login',
            component: Login
        },
        {
            path: '/list',
            name: 'list',
            meta: {
                requiresAuth: true,
 
            },
            component: List
        },
        {
            path: '/user',
            name: 'user',
            meta: {
                requiresAuth: true,
 
            },
            component: User
        },
        {
            path: '/msg',
            name: 'msg',
            meta: {
                requiresAuth: true,
 
            },
            component: Msg
        },
        {
            path: '/iframe',
            name: 'iframe',
            meta: {
                requiresAuth: true,
            },
            component: Iframe
        },
        {
            path: '/vant',
            name: 'vant',
            component: Vant
        },
        {
            path: "*",
            redirect: "login"
        }
    ]
})
router.beforeEach((to, from, next) => {
    const token = JSON.parse(localStorage.getItem("token"));
    const cookie = getCookieValue('ets-app');
    const requiresAuth = to.matched.some(record => record.meta.requiresAuth)
 
 
    // 页面title
    if (to.meta.title) { //判断是否有标题
        // console.log(to.meta.title)
        document.title = to.meta.title
    }
 
    if (isEmpty(cookie)) {
        localStorage.removeItem("token");
        store._actions.set_token[0]({});
    }
 
    // 需要登录
    if (requiresAuth) {
        // 判断cookie是否过期
        if (!isEmpty(cookie) && !isEmpty(token)) {
            next();
        } else {
            // 无token
            next({
                replace: true,
                path: '/login',
                query: {
                    redirect: to.path,
                    ...to.query
                }
            });
        }
    } else {
        // 无需登录
        next();
    }
})
export default router;