39 lines
1.2 KiB
JavaScript
39 lines
1.2 KiB
JavaScript
import { setRouteEmitter } from "@/utils/route-listener"
|
|
import setupUserLoginInfoGuard from "./userLoginInfo"
|
|
import setupPermissionGuard from "@/router/guard/permisstion"
|
|
// 导入设置title的工具
|
|
import { setRouteTitle } from "@/utils/title"
|
|
// 为了已登录用户直接进入login
|
|
import { useUserStore } from "@/store"
|
|
import NProgress from "nprogress" // progress bar
|
|
import "nprogress/nprogress.css"
|
|
|
|
function setupPageGuard(router) {
|
|
router.beforeEach(async (to) => {
|
|
// 发出路由改变的事件
|
|
setRouteEmitter(to)
|
|
})
|
|
// 设置站点document.title
|
|
router.afterEach((to, from) => {
|
|
setRouteTitle(to.meta.title)
|
|
NProgress.done()
|
|
})
|
|
// 设置如果已登录用户进入login页面则直接进入工作台
|
|
router.beforeEach((to) => {
|
|
const userStore = useUserStore()
|
|
if (to.name === "login") {
|
|
if (userStore.isLogin()) {
|
|
return {
|
|
name: "workplace"
|
|
}
|
|
}
|
|
}
|
|
})
|
|
}
|
|
|
|
export default function createRouteGuard(router) {
|
|
setupPageGuard(router)
|
|
setupUserLoginInfoGuard(router)
|
|
setupPermissionGuard(router)
|
|
}
|