This commit is contained in:
@@ -9,14 +9,67 @@ import operations from "./views/operations.vue";
|
||||
import notfound from "./views/notfound.vue";
|
||||
|
||||
Vue.use(Router);
|
||||
/* Xeslint-disable */
|
||||
|
||||
// scrollBehavior:
|
||||
// - only available in html5 history mode
|
||||
// - defaults to no scroll behavior
|
||||
// - return false to prevent scroll
|
||||
const scrollBehavior = function(to, from, savedPosition) {
|
||||
if (savedPosition) {
|
||||
// savedPosition is only available for popstate navigations.
|
||||
return savedPosition;
|
||||
} else {
|
||||
const position = {};
|
||||
|
||||
// scroll to anchor by returning the selector
|
||||
if (to.hash) {
|
||||
position.selector = to.hash;
|
||||
|
||||
// specify offset of the element
|
||||
if (to.hash === "#anchor2") {
|
||||
position.offset = { y: 100 };
|
||||
}
|
||||
|
||||
if (document.querySelector(to.hash)) {
|
||||
return position;
|
||||
}
|
||||
|
||||
// if the returned position is falsy or an empty object,
|
||||
// will retain current scroll position.
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return new Promise(resolve => {
|
||||
// check if any matched route config has meta that requires scrolling to top
|
||||
if (to.matched.some(m => m.meta.scrollToTop)) {
|
||||
// coords will be used if no selector is provided,
|
||||
// or if the selector didn't match any element.
|
||||
position.x = 0;
|
||||
position.y = 0;
|
||||
}
|
||||
|
||||
// wait for the out transition to complete (if necessary)
|
||||
this.app.$root.$once("triggerScroll", () => {
|
||||
// if the resolved position is falsy or an empty object,
|
||||
// will retain current scroll position.
|
||||
|
||||
resolve(position);
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
export default new Router({
|
||||
mode: "history",
|
||||
base: process.env.BASE_URL,
|
||||
scrollBehavior,
|
||||
routes: [
|
||||
{
|
||||
path: "/login",
|
||||
name: "login",
|
||||
meta: { scrollToTop: true },
|
||||
component: () =>
|
||||
import(/* webpackChunkName: "login" */ "./views/login.vue")
|
||||
},
|
||||
@@ -24,7 +77,13 @@ export default new Router({
|
||||
{
|
||||
path: "/",
|
||||
name: "home",
|
||||
meta: { scrollToTop: true },
|
||||
component: Home
|
||||
// ,
|
||||
// beforeEnter(to, from, next) {
|
||||
// store.state.tempsessionsettings = false;//here is a way to reset the temp session settings, but I'll likely do it through logout proces instead, keeping this for example purposes
|
||||
// next();
|
||||
// }
|
||||
},
|
||||
{
|
||||
path: "/about",
|
||||
@@ -59,6 +118,7 @@ export default new Router({
|
||||
{
|
||||
path: "/accounting",
|
||||
name: "accounting",
|
||||
//meta: { scrollToTop: true },
|
||||
component: accounting
|
||||
},
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user