mirror of
https://github.com/Spythere/stacjownik.git
synced 2026-05-04 05:48:11 +00:00
Use <router-link> instead of a @click handler in SceneryTimetable
This commit is contained in:
@@ -63,14 +63,13 @@
|
|||||||
{{ $t('scenery.no-timetables') }}
|
{{ $t('scenery.no-timetables') }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div
|
<router-link
|
||||||
class="timetable-item"
|
class="timetable-item block-link"
|
||||||
v-else
|
v-else
|
||||||
v-for="(row, i) in sceneryTimetables"
|
v-for="(row, i) in sceneryTimetables"
|
||||||
:key="row.train.id + i"
|
:key="row.train.id + i"
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
@click.prevent.stop="driverMixin_showDriverView(row.train.id)"
|
:to="row.train.driverRouteLocation"
|
||||||
@keydown.enter.prevent="driverMixin_showDriverView(row.train.id)"
|
|
||||||
>
|
>
|
||||||
<span class="timetable-general">
|
<span class="timetable-general">
|
||||||
<span class="general-info">
|
<span class="general-info">
|
||||||
@@ -169,7 +168,7 @@
|
|||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</router-link>
|
||||||
</transition-group>
|
</transition-group>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
@@ -196,7 +195,7 @@ export default defineComponent({
|
|||||||
|
|
||||||
components: { Loading, ScheduledTrainStatus },
|
components: { Loading, ScheduledTrainStatus },
|
||||||
|
|
||||||
mixins: [dateMixin, routerMixin, trainCategoryMixin, driverViewMixin],
|
mixins: [dateMixin, routerMixin, trainCategoryMixin],
|
||||||
|
|
||||||
props: {
|
props: {
|
||||||
station: {
|
station: {
|
||||||
@@ -391,7 +390,6 @@ export default defineComponent({
|
|||||||
|
|
||||||
background: #353535;
|
background: #353535;
|
||||||
|
|
||||||
cursor: pointer;
|
|
||||||
z-index: 10;
|
z-index: 10;
|
||||||
|
|
||||||
&.empty {
|
&.empty {
|
||||||
|
|||||||
@@ -18,7 +18,7 @@
|
|||||||
v-for="train in trains"
|
v-for="train in trains"
|
||||||
:key="train.id"
|
:key="train.id"
|
||||||
>
|
>
|
||||||
<router-link class="block-link" :to="getTrainRoute(train.id)">
|
<router-link class="block-link" :to="train.driverRouteLocation">
|
||||||
<TrainInfo :train="train" :extended="false" />
|
<TrainInfo :train="train" :extended="false" />
|
||||||
</router-link>
|
</router-link>
|
||||||
</li>
|
</li>
|
||||||
@@ -64,17 +64,6 @@ export default defineComponent({
|
|||||||
};
|
};
|
||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
|
||||||
getTrainRoute(trainId: string) {
|
|
||||||
return {
|
|
||||||
name: 'DriverView',
|
|
||||||
query: {
|
|
||||||
trainId,
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
computed: {
|
computed: {
|
||||||
dataStatus() {
|
dataStatus() {
|
||||||
if (this.store.isOffline) return Status.Data.Offline;
|
if (this.store.isOffline) return Status.Data.Offline;
|
||||||
|
|||||||
+2
-2
@@ -7,7 +7,7 @@ const routes: Array<RouteRecordRaw> = [
|
|||||||
component: () => import('../views/StationsView.vue'),
|
component: () => import('../views/StationsView.vue'),
|
||||||
props: (route) => ({
|
props: (route) => ({
|
||||||
region: route.query.region
|
region: route.query.region
|
||||||
})
|
}),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/trains',
|
path: '/trains',
|
||||||
@@ -55,7 +55,7 @@ const routes: Array<RouteRecordRaw> = [
|
|||||||
component: () => import('../views/JournalDispatchers.vue'),
|
component: () => import('../views/JournalDispatchers.vue'),
|
||||||
props: (route) => ({
|
props: (route) => ({
|
||||||
region: route.query.region
|
region: route.query.region
|
||||||
})
|
}),
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
path: '/:catchAll(.*)',
|
path: '/:catchAll(.*)',
|
||||||
|
|||||||
@@ -86,6 +86,13 @@ export const useMainStore = defineStore('mainStore', {
|
|||||||
isSupporter: train.driverIsSupporter,
|
isSupporter: train.driverIsSupporter,
|
||||||
driverLevel: train.driverLevel,
|
driverLevel: train.driverLevel,
|
||||||
|
|
||||||
|
driverRouteLocation: {
|
||||||
|
name: 'DriverView',
|
||||||
|
query: {
|
||||||
|
trainId: train.id
|
||||||
|
}
|
||||||
|
},
|
||||||
|
|
||||||
timetableData: timetable
|
timetableData: timetable
|
||||||
? {
|
? {
|
||||||
timetableId: timetable.timetableId,
|
timetableId: timetable.timetableId,
|
||||||
|
|||||||
@@ -1,3 +1,5 @@
|
|||||||
|
import { RouteLocationRaw } from 'vue-router';
|
||||||
|
|
||||||
export type Availability = 'default' | 'unavailable' | 'nonPublic' | 'abandoned' | 'nonDefault';
|
export type Availability = 'default' | 'unavailable' | 'nonPublic' | 'abandoned' | 'nonDefault';
|
||||||
export type ScenerySpawnType = 'passenger' | 'freight' | 'loco' | 'all';
|
export type ScenerySpawnType = 'passenger' | 'freight' | 'loco' | 'all';
|
||||||
|
|
||||||
@@ -70,6 +72,8 @@ export interface Train {
|
|||||||
isTimeout: boolean;
|
isTimeout: boolean;
|
||||||
isSupporter: boolean;
|
isSupporter: boolean;
|
||||||
|
|
||||||
|
driverRouteLocation: RouteLocationRaw,
|
||||||
|
|
||||||
timetableData?: {
|
timetableData?: {
|
||||||
timetableId: number;
|
timetableId: number;
|
||||||
category: string;
|
category: string;
|
||||||
|
|||||||
Reference in New Issue
Block a user