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;