import type { App } from 'vue' import type { RouteRecordRaw } from 'vue-router' import { createRouter, createWebHistory } from 'vue-router' import remainingRouter from './modules/remaining' // 创建路由实例 const router = createRouter({ history: createWebHistory(import.meta.env.VITE_BASE_PATH), // createWebHashHistory URL带#,createWebHistory URL不带# strict: true, routes: remainingRouter as RouteRecordRaw[], scrollBehavior: () => { // 新开标签时、返回标签时,滚动条回到顶部,否则会保留上次标签的滚动位置。 const scrollbarWrap = document.querySelector('.v-layout-content-scrollbar .el-scrollbar__wrap') if (scrollbarWrap) { // scrollbarWrap.scrollTo({ left: 0, top: 0, behavior: 'auto' }) scrollbarWrap.scrollTop = 0 } return { left: 0, top: 0 } } }) export const resetRouter = (): void => { const resetWhiteNameList = ['Redirect', 'Login', 'NoFound', 'Home'] router.getRoutes().forEach((route) => { const { name } = route if (name && !resetWhiteNameList.includes(name as string)) { router.hasRoute(name) && router.removeRoute(name) } }) } export const setupRouter = (app: App) => { app.use(router) } export default router