Fix routingu widoków i filtrowania scenerii

This commit is contained in:
2022-06-30 01:55:56 +02:00
parent 1a255e933c
commit b1f80104f0
13 changed files with 144 additions and 115 deletions
+44 -25
View File
@@ -1,46 +1,65 @@
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'
import JournalDispatchersVue from '@/components/JournalView/JournalDispatchers.vue';
import JournalTimetablesVue from '@/components/JournalView/JournalTimetables.vue';
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router';
const routes: Array<RouteRecordRaw> = [
{
path: '/',
name: 'StationsView',
component: () => import("@/views/StationsView.vue")
component: () => import('@/views/StationsView.vue'),
},
{
path: "/trains",
name: "TrainsView",
component: () => import("@/views/TrainsView.vue"),
props: route => ({ train: route.query.train, driver: route.query.driver })
path: '/trains',
name: 'TrainsView',
component: () => import('@/views/TrainsView.vue'),
props: (route) => ({ train: route.query.train, driver: route.query.driver }),
},
{
path: "/scenery",
name: "SceneryView",
component: () => import("@/views/SceneryView.vue"),
props: true
path: '/scenery',
name: 'SceneryView',
component: () => import('@/views/SceneryView.vue'),
props: true,
},
{
path: "/journal",
name: "JournalView",
component: () => import("@/views/JournalView.vue")
path: '/journal',
name: 'JournalView',
component: () => import('@/views/JournalView.vue'),
children: [
{
path: '',
redirect: '/journal/timetables',
component: JournalTimetablesVue,
},
{
path: 'dispatchers',
component: JournalDispatchersVue,
props: (route) => ({ sceneryName: route.query.sceneryName, dispatcherName: route.query.dispatcherName }),
},
{
path: 'timetables',
component: JournalTimetablesVue,
props: (route) => ({
trainNo: route.query.trainNo,
driverName: route.query.driverName,
timetableId: route.query.timetableId,
}),
},
],
},
{
path: '/:catchAll(.*)',
redirect: "/"
}
]
redirect: '/',
},
];
const router = createRouter({
scrollBehavior(to, from) {
if (to.name == "SceneryView" && from.name)
return { el: `.app_main` };
if (from.name == "SceneryView" && to.name == "StationsView")
return { el: `.last-selected`, top: 20 }
scrollBehavior(to, from) {
if (to.name == 'SceneryView' && from.name) return { el: `.app_main` };
if (from.name == 'SceneryView' && to.name == 'StationsView') return { el: `.last-selected`, top: 20 };
},
history: createWebHistory(),
routes,
})
});
export default router
export default router;