index.js 919 B

123456789101112131415161718192021222324252627282930313233343536
  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. console.log(routes)
  10. const router = createRouter({
  11. history: vueRouter.createWebHistory(),
  12. routes
  13. })
  14. router.beforeEach((to, from, next) => {
  15. if (to.path !== '/login') {
  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.path === '/') {
  24. const menu = { active: 0, subActive: 0 }
  25. localStorage.setItem('index', JSON.stringify(menu))
  26. }
  27. if (to.matched.length) {
  28. next()
  29. } else {
  30. next('/404')
  31. }
  32. })
  33. export default router