import Vue from "vue"; import VueRouter from "vue-router"; import {getToken} from "./token"; Vue.use(VueRouter) const routes = [ {path: '/login', component: () => import('@/pages/Login')}, { path: '/admin', component: () => import('@/layout/Layout'), redirect: '/admin/home', children: [ {path: 'home', component: () => import('@/pages/Home')}, {path: 'set/system', component: () => import('@/pages/set/System')}, {path: 'set/soft', component: () => import('@/pages/set/Soft')}, {path: 'set/other', component: () => import('@/pages/set/Other')}, {path: 'set/audit', component: () => import('@/pages/set/Audit')}, {path: 'user/list', component: () => import('@/pages/user/List')}, {path: 'user/policy', component: () => import('@/pages/user/Policy')}, {path: 'user/online', component: () => import('@/pages/user/Online')}, {path: 'user/ip_map', component: () => import('@/pages/user/IpMap')}, {path: 'group/list', component: () => import('@/pages/group/List')}, ], }, {path: '*', redirect: '/admin/home'}, ] // 3. 创建 router 实例,然后传 `routes` 配置 // 你还可以传别的配置参数, 不过先这么简单着吧。 const router = new VueRouter({ routes }) // 路由守卫 router.beforeEach((to, from, next) => { // 判断要进入的路由是否需要认证 const token = getToken(); console.log("beforeEach", from.path, to.path, token) // console.log(from) // 没有token,全都跳转到login if (!token) { if (to.path === "/login") { next(); return; } next({ path: '/login', query: { redirect: to.path } }); return; } if (to.path === "/login") { next({path: '/admin/home'}); return; } // 有token情况下 next(); }); export default router;