|
|
|
@ -16,33 +16,26 @@ import Store from '../store/'; // vuex |
|
|
|
Vue.use(VueRouter) |
|
|
|
Vue.use(VueRouter) |
|
|
|
//创建路由
|
|
|
|
//创建路由
|
|
|
|
export const createRouter = () => new VueRouter({ |
|
|
|
export const createRouter = () => new VueRouter({ |
|
|
|
// https://router.vuejs.org/zh/guide/advanced/scroll-behavior.html#%E5%BC%82%E6%AD%A5%E6%BB%9A%E5%8A%A8
|
|
|
|
|
|
|
|
// 这个方法 是控制滚动条
|
|
|
|
|
|
|
|
// 如果 retuen falsy || {} ,则不发生滚动
|
|
|
|
|
|
|
|
scrollBehavior (to, from, savedPosition) { |
|
|
|
|
|
|
|
// savedPosition 这个参数当且仅当导航 (通过浏览器的 前进/后退 按钮触发) 时才可用 效果和 router.go() 或 router.back()
|
|
|
|
|
|
|
|
if (savedPosition) { |
|
|
|
|
|
|
|
// 返回savedPosition 其实就是 当用户点击 返回的话,保持之前游览的高度
|
|
|
|
|
|
|
|
return savedPosition |
|
|
|
|
|
|
|
} else { |
|
|
|
|
|
|
|
if (from.meta.keepAlive) { |
|
|
|
|
|
|
|
from.meta.savedPosition = document.body.scrollTop |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
return { |
|
|
|
|
|
|
|
x: 0, |
|
|
|
|
|
|
|
y: to.meta.savedPosition || 0 |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
routes: [...PageRouter, ...ViewsRouter] |
|
|
|
routes: [...PageRouter, ...ViewsRouter] |
|
|
|
}) |
|
|
|
}) |
|
|
|
const Router = createRouter() // 获得 route 实例
|
|
|
|
const Router = createRouter() // 获得 route 实例
|
|
|
|
AvueRouter.install(Vue, Router, Store, i18n); // 初始化和注册 AvueRouter
|
|
|
|
// 初始化和注册 AvueRouter
|
|
|
|
|
|
|
|
AvueRouter.install(Vue, { |
|
|
|
|
|
|
|
router: Router, |
|
|
|
|
|
|
|
store: Store, |
|
|
|
|
|
|
|
i18n: i18n, |
|
|
|
|
|
|
|
keepAlive: false, |
|
|
|
|
|
|
|
}); |
|
|
|
Router.$avueRouter.formatRoutes(Store.state.user.menuAll, true); // 动态路由核心方法
|
|
|
|
Router.$avueRouter.formatRoutes(Store.state.user.menuAll, true); // 动态路由核心方法
|
|
|
|
Router.addRoutes([...PageRouter, ...ViewsRouter]); |
|
|
|
Router.addRoutes([...PageRouter, ...ViewsRouter]); |
|
|
|
export function resetRouter () { // 重置路由 比如用于身份验证失败,需要重新登录时 先清空当前的路有权限
|
|
|
|
export function resetRouter () { // 重置路由 比如用于身份验证失败,需要重新登录时 先清空当前的路有权限
|
|
|
|
const newRouter = createRouter() |
|
|
|
const newRouter = createRouter() |
|
|
|
Router.matcher = newRouter.matcher // reset router
|
|
|
|
Router.matcher = newRouter.matcher // reset router
|
|
|
|
AvueRouter.install(Vue, Router, Store, i18n); |
|
|
|
AvueRouter.install(Vue, { |
|
|
|
|
|
|
|
router: Router, |
|
|
|
|
|
|
|
store: Store, |
|
|
|
|
|
|
|
i18n: i18n, |
|
|
|
|
|
|
|
keepAlive: false, |
|
|
|
|
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
export default Router |
|
|
|
export default Router |
|
|
|
|