wwf
15 小时以前 a32100e31b93bc378b11ab93617a9c40b081ad70
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import { createRouter, createWebHistory } from 'vue-router'
import authPage from '@/router/auth/index.js'
import errorPage from '@/router/error/index.js'
import mainPage from '@/router/main/index.js'
import { useLoginStore } from '@/stores/login.js'
import { useSessionStore } from '@/stores/session.js'
const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [...mainPage, ...authPage, ...errorPage],
})
 
router.beforeEach((to, from, next) => {
  if (!to.matched.length) {
    if (to.path === '/') {
      next({ path: '/main/home' })
    } else {
      next({ path: '/error/404', query: { errorUrl: to.path } })
    }
  } else {
    if (to.meta.loginRequired) {
      const { userInfo } = useSessionStore()
      const { setLoginDialogVisible } = useLoginStore()
      if (userInfo.id) {
        next()
      } else {
        setLoginDialogVisible(true)
        next(false)
      }
    } else {
      next()
    }
  }
})
 
export default router