router.js 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. /**
  2. * 全站路由配置
  3. *
  4. * meta参数说明
  5. * keepAlive是否缓冲页面
  6. * isTab是否加入到tag导航
  7. * isAuth是否需要授权
  8. */
  9. import Vue from 'vue';
  10. import VueRouter from 'vue-router';
  11. import PageRouter from './page/' // 页面路由
  12. import ViewsRouter from './views/' // 页面路由
  13. import AvueRouter from './avue-router'; //封装的路由控制方法
  14. import i18n from '@/lang' // Internationalization 国际化 多语言
  15. import Store from '../store/'; // vuex
  16. Vue.use(VueRouter)
  17. //创建路由
  18. export const createRouter = () => new VueRouter({
  19. routes: [...PageRouter, ...ViewsRouter]
  20. })
  21. const Router = createRouter() // 获得 route 实例
  22. // 初始化和注册 AvueRouter
  23. AvueRouter.install(Vue, {
  24. router: Router,
  25. store: Store,
  26. i18n: i18n,
  27. keepAlive: false,
  28. });
  29. Router.$avueRouter.formatRoutes(Store.state.user.menuAll, true); // 动态路由核心方法
  30. Router.addRoutes([...PageRouter, ...ViewsRouter]);
  31. export function resetRouter () { // 重置路由 比如用于身份验证失败,需要重新登录时 先清空当前的路有权限
  32. const newRouter = createRouter()
  33. Router.matcher = newRouter.matcher // reset router
  34. AvueRouter.install(Vue, {
  35. router: Router,
  36. store: Store,
  37. i18n: i18n,
  38. keepAlive: false,
  39. });
  40. }
  41. export default Router