index.ts 1.1 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import type { RouteRecordRaw } from 'vue-router'
  2. import type { App } from 'vue'
  3. import { createRouter, createWebHashHistory, createWebHistory } from 'vue-router'
  4. // import { createRouter, createWebHashHistory, createWebHistory } from "vue-router/auto";
  5. import { basicRoutes } from './routes'
  6. import { RouterModeEnum } from '/@/enums/router.enum'
  7. import { overWriteRouter } from '../plugins/router'
  8. // 路由守卫
  9. import { setupRouterGuard } from '/@/router/guard'
  10. // 决定路由模式
  11. const getHistoryMode = (path: string) => {
  12. if (import.meta.env.VITE_ROUTER_MODE === RouterModeEnum.HISTORY) {
  13. return createWebHistory(path)
  14. }
  15. return createWebHashHistory(path)
  16. }
  17. // app router
  18. export const router = createRouter({
  19. history: getHistoryMode(import.meta.env.VITE_PUBLIC_PATH),
  20. routes: basicRoutes as unknown as RouteRecordRaw[],
  21. strict: true,
  22. scrollBehavior: () => ({ left: 0, top: 0 })
  23. })
  24. // use router
  25. export function setupRouter(app: App<Element>) {
  26. app.use(router)
  27. // router guard
  28. console.log(router)
  29. setupRouterGuard(router)
  30. // overwrite
  31. overWriteRouter(router)
  32. }