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.

32 lines
842 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 {
const routeStore = useRouteStore()
const routes = routeStore.initRoutes()
router = createRouter({
history: createWebHistory(path),
strict: false,
routes: setupLayouts(routes),
scrollBehavior: () => ({ left: 0, top: 0 }),
})
return router
}
export function setupRouterGuards() {
createNProgressGuard(router)
createTabsGuard(router, setRouteChange)
// 暂时的
// useMenuStore()
}