index.ts 882 B

12345678910111213141516171819202122232425262728293031
  1. import type { RouteRecordRaw } from 'vue-router';
  2. import type { App } from 'vue';
  3. import { createRouter, createWebHashHistory } from 'vue-router';
  4. import { basicRoutes, LoginRoute } from './routes';
  5. import { REDIRECT_NAME } from './constant';
  6. const WHITE_NAME_LIST = [LoginRoute.name, REDIRECT_NAME];
  7. // app router
  8. export const router = createRouter({
  9. history: createWebHashHistory(import.meta.env.VITE_PUBLIC_PATH),
  10. routes: basicRoutes as unknown as RouteRecordRaw[],
  11. strict: true,
  12. scrollBehavior: () => ({ left: 0, top: 0 }),
  13. });
  14. // reset router
  15. export function resetRouter() {
  16. router.getRoutes().forEach((route) => {
  17. const { name } = route;
  18. if (name && !WHITE_NAME_LIST.includes(name as string)) {
  19. router.hasRoute(name) && router.removeRoute(name);
  20. }
  21. });
  22. }
  23. // config router
  24. export function setupRouter(app: App<Element>) {
  25. app.use(router);
  26. }