1234567891011121314151617181920212223242526272829303132333435363738394041 |
- /**
- * 全站路由配置
- *
- * meta参数说明
- * keepAlive是否缓冲页面
- * isTab是否加入到tag导航
- * isAuth是否需要授权
- */
- import Vue from 'vue';
- import VueRouter from 'vue-router';
- import PageRouter from './page/' // 页面路由
- import ViewsRouter from './views/' // 页面路由
- import AvueRouter from './avue-router'; //封装的路由控制方法
- import i18n from '@/lang' // Internationalization 国际化 多语言
- import Store from '../store/'; // vuex
- Vue.use(VueRouter)
- //创建路由
- export const createRouter = () => new VueRouter({
- routes: [...PageRouter, ...ViewsRouter]
- })
- const Router = createRouter() // 获得 route 实例
- // 初始化和注册 AvueRouter
- AvueRouter.install(Vue, {
- router: Router,
- store: Store,
- i18n: i18n,
- keepAlive: false,
- });
- Router.$avueRouter.formatRoutes(Store.state.user.menuAll, true); // 动态路由核心方法
- Router.addRoutes([...PageRouter, ...ViewsRouter]);
- export function resetRouter () { // 重置路由 比如用于身份验证失败,需要重新登录时 先清空当前的路有权限
- const newRouter = createRouter()
- Router.matcher = newRouter.matcher // reset router
- AvueRouter.install(Vue, {
- router: Router,
- store: Store,
- i18n: i18n,
- keepAlive: false,
- });
- }
- export default Router
|