index.js 818 B

123456789101112131415161718192021222324252627282930313233
  1. import { createRouter } from 'vue-router'
  2. import * as vueRouter from 'vue-router'
  3. import navStore from '../store/nav.js'
  4. import keepAliveStore from '../store/keepAlive.js'
  5. import generatedRoutes from '~pages'
  6. import { setupLayouts } from 'layouts-generated'
  7. // 导出路由
  8. const routes = setupLayouts(generatedRoutes)
  9. const router = createRouter({
  10. history: vueRouter.createWebHistory(),
  11. routes
  12. })
  13. router.beforeEach((to, from, next) => {
  14. if (to.path !== '/login') {
  15. console.log(to)
  16. const nav = navStore()
  17. nav.updateMenu(to)
  18. }
  19. if (to.meta.keepAlive) {
  20. const keepAlive = keepAliveStore()
  21. keepAlive.add(to.name) // 将路由名称添加到 keepAlive 集合中
  22. }
  23. if (to.matched.length) {
  24. console.log(to.fullPath)
  25. next()
  26. } else {
  27. next('/404')
  28. }
  29. })
  30. export default router