index.ts 899 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. // src/router/index.ts
  2. import { createRouter, createWebHistory } from 'vue-router'
  3. import { routes } from './routes'
  4. import { useUserStoreWithOut } from '@/stores/modules/user'
  5. // 创建 Router 实例
  6. const router = createRouter({
  7. history: createWebHistory(import.meta.env.BASE_URL),
  8. routes,
  9. })
  10. // 路由守卫
  11. router.beforeEach((to, from, next) => {
  12. const userStore = useUserStoreWithOut()
  13. const token = userStore.access_token
  14. if (to.meta.requiresAuth && !token) {
  15. // 未登录时跳转登录页
  16. next({
  17. path: '/login',
  18. })
  19. } else {
  20. next()
  21. }
  22. if (to.meta && to.meta.title) {
  23. document.title = to.meta.title as string
  24. } else {
  25. // 可设置默认标题
  26. document.title = '默认标题'
  27. }
  28. })
  29. // 可选:设置页面标题
  30. router.afterEach((to) => {
  31. if (to.meta.title) {
  32. document.title = to.meta.title as string
  33. }
  34. })
  35. export default router