You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

28 lines
764 B
TypeScript

import type { Router } from 'vue-router'
import { createRouter, createWebHistory } from 'vue-router'
import { setupLayouts } from 'virtual:generated-layouts'
import { createNProgressGuard } from './nprogress'
import { createTabsGuard } from './tabs'
import { setRouteChange } from '~/utils'
// eslint-disable-next-line import/no-mutable-exports
export let router: Router
export function initRouter(path: string): Router {
router = createRouter({
history: createWebHistory(path),
routes: setupLayouts(getRoutes()),
strict: false,
scrollBehavior: () => ({ left: 0, top: 0 }),
})
return router
}
export function setupRouterGuards() {
createNProgressGuard(router)
createTabsGuard(router, setRouteChange)
// 暂时的
useMenuStore()
}