| 12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- import router from "./router"
- import { getToken } from "@/utils/auth"
- import { useUserStore } from "@/store/user.js"
- import { useSettingStore } from "@/store/settings.js"
- import { usePermissionStore } from "@/store/permission.js"
- import { dynamicRoutes } from "@/router/dynamicRoutes"
- const whiteList = ["/login", "/yh", "/ssoyh"]
- router.beforeEach((to, from, next) => {
- if (getToken()) {
- to.meta.title && useSettingStore().setTitle(to.meta.title)
- if (useUserStore().roles.length === 0) {
- useUserStore().RefreshInfo().then(res => {
- usePermissionStore().generateRoutes().then(accessRoutes => {
- accessRoutes.forEach(item => router.addRoute(item))
- router.addRoute({
- path: "/:pathMatch(.*)*",
- name: "notFound",
- redirect: "/notfound"
- })
- next({ ...to, replace: true }) // hack方法 确保addRoutes已完成
- })
- })
- } else {
- next()
- }
- } else { // 登录
- // 白名单放行
- if (whiteList.indexOf(to.path) !== -1) {
- next()
- } else {
- next(`/login?redirect=${to.fullPath}`) // 否则全部重定向到登录页
- }
- }
- })
- router.afterEach(() => {
- })
- router.onError((error) => {
- console.warn("路由错误", error.message)
- })
|