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
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()
|
|
}
|