mirror of
https://github.com/Spythere/pragotron-td2.git
synced 2026-05-03 13:38:14 +00:00
chore: added train number shuffling; made code more clear
This commit is contained in:
+13
-4
@@ -1,11 +1,20 @@
|
|||||||
|
export enum RowIndex {
|
||||||
|
HourLeading = 0,
|
||||||
|
HourSecondary = 1,
|
||||||
|
MinuteLeading = 2,
|
||||||
|
MinuteSecondary = 3,
|
||||||
|
TrainNumber = 4,
|
||||||
|
RouteVia = 5,
|
||||||
|
RouteTo = 6,
|
||||||
|
}
|
||||||
|
|
||||||
interface ITableRowValues {
|
interface ITableRowValues {
|
||||||
routeTo: string;
|
routeTo: string;
|
||||||
routeVia: string;
|
routeVia: string;
|
||||||
|
|
||||||
// routeTo, routeVia, date1, date2, date3, date4
|
|
||||||
currentRowIndexes: [number, number, number, number, number, number];
|
|
||||||
|
|
||||||
dateDigits: string[];
|
dateDigits: string[];
|
||||||
|
trainNumber: string;
|
||||||
|
// routeTo, routeVia, date1, date2, date3, date4, trainNumber
|
||||||
|
currentRowIndexes: [number, number, number, number, number, number, number];
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface ITableRow {
|
export interface ITableRow {
|
||||||
|
|||||||
+34
-17
@@ -42,8 +42,8 @@
|
|||||||
</span>
|
</span>
|
||||||
<span class="train-class">
|
<span class="train-class">
|
||||||
<transition name="slot-anim" mode="out-in">
|
<transition name="slot-anim" mode="out-in">
|
||||||
<div class="slider-slot" :key="departure.trainNumber">
|
<div class="slider-slot" :key="departure.tableValues.trainNumber">
|
||||||
{{ departure.trainNumber }}
|
{{ departure.tableValues.trainNumber }}
|
||||||
</div>
|
</div>
|
||||||
</transition>
|
</transition>
|
||||||
</span>
|
</span>
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent } from 'vue';
|
import { defineComponent } from 'vue';
|
||||||
|
|
||||||
import { ITableRow } from '../types/ITableRow';
|
import { ITableRow, RowIndex } from '../types/ITableRow';
|
||||||
import { useMainStore } from '../stores/mainStore';
|
import { useMainStore } from '../stores/mainStore';
|
||||||
import { useApiStore } from '../stores/apiStore';
|
import { useApiStore } from '../stores/apiStore';
|
||||||
|
|
||||||
@@ -109,9 +109,9 @@ const departureInfoEmptyObj: ITableRow = {
|
|||||||
tableValues: {
|
tableValues: {
|
||||||
routeTo: '',
|
routeTo: '',
|
||||||
routeVia: '',
|
routeVia: '',
|
||||||
|
trainNumber: '',
|
||||||
|
|
||||||
currentRowIndexes: [0, 0, 0, 0, 0, 0],
|
currentRowIndexes: [0, 0, 0, 0, 0, 0, 0],
|
||||||
|
|
||||||
dateDigits: ['', '', '', '']
|
dateDigits: ['', '', '', '']
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -144,6 +144,7 @@ export default defineComponent({
|
|||||||
departureTable: new Array(7).fill(0).map(() => ({ ...departureInfoEmptyObj })) as ITableRow[],
|
departureTable: new Array(7).fill(0).map(() => ({ ...departureInfoEmptyObj })) as ITableRow[],
|
||||||
departureRoutes: [''],
|
departureRoutes: [''],
|
||||||
dateDigits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ''],
|
dateDigits: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', ''],
|
||||||
|
trainNumbersSet: new Set<string>(['']),
|
||||||
|
|
||||||
currentRouteIndex: 0,
|
currentRouteIndex: 0,
|
||||||
currentDateDigitIndex: 0,
|
currentDateDigitIndex: 0,
|
||||||
@@ -188,7 +189,8 @@ export default defineComponent({
|
|||||||
this.departureTable[i] = { ...updateInfo };
|
this.departureTable[i] = { ...updateInfo };
|
||||||
this.departureTable[i].tableValues.routeTo = existingInfo.routeTo;
|
this.departureTable[i].tableValues.routeTo = existingInfo.routeTo;
|
||||||
this.departureTable[i].tableValues.routeVia = existingInfo.routeVia;
|
this.departureTable[i].tableValues.routeVia = existingInfo.routeVia;
|
||||||
// this.departureTable[i].dateDigits = [...existingInfo.tableValues.dateDigits];
|
this.departureTable[i].tableValues.trainNumber = existingInfo.trainNumber;
|
||||||
|
|
||||||
this.departureTable[i].tableValues.dateDigits = [
|
this.departureTable[i].tableValues.dateDigits = [
|
||||||
...existingInfo.tableValues.dateDigits
|
...existingInfo.tableValues.dateDigits
|
||||||
];
|
];
|
||||||
@@ -297,14 +299,18 @@ export default defineComponent({
|
|||||||
tableValues: {
|
tableValues: {
|
||||||
routeTo: '',
|
routeTo: '',
|
||||||
routeVia: '',
|
routeVia: '',
|
||||||
|
trainNumber: '',
|
||||||
dateDigits: ['', '', '', ''],
|
dateDigits: ['', '', '', ''],
|
||||||
currentRowIndexes: [0, 0, 0, 0, 0, 0]
|
currentRowIndexes: [0, 0, 0, 0, 0, 0, 0]
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
if (!this.departureRoutes.includes(routeVia)) this.departureRoutes.push(routeVia);
|
if (!this.departureRoutes.includes(routeVia)) this.departureRoutes.push(routeVia);
|
||||||
if (!this.departureRoutes.includes(routeTo)) this.departureRoutes.push(routeTo);
|
if (!this.departureRoutes.includes(routeTo)) this.departureRoutes.push(routeTo);
|
||||||
|
|
||||||
|
|
||||||
|
this.trainNumbersSet.add(`${timetable.category} ${train.trainNo}`);
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}, [] as ITableRow[])
|
}, [] as ITableRow[])
|
||||||
.filter(
|
.filter(
|
||||||
@@ -361,33 +367,44 @@ export default defineComponent({
|
|||||||
const dep = this.departureTable[i];
|
const dep = this.departureTable[i];
|
||||||
|
|
||||||
if (dep.tableValues.routeTo.toLowerCase() != dep.routeTo.toLowerCase()) {
|
if (dep.tableValues.routeTo.toLowerCase() != dep.routeTo.toLowerCase()) {
|
||||||
dep.tableValues.routeTo = this.departureRoutes[dep.tableValues.currentRowIndexes[0]];
|
dep.tableValues.routeTo =
|
||||||
|
this.departureRoutes[dep.tableValues.currentRowIndexes[RowIndex.RouteTo]];
|
||||||
|
|
||||||
dep.tableValues.currentRowIndexes[0] =
|
dep.tableValues.currentRowIndexes[RowIndex.RouteTo] =
|
||||||
(dep.tableValues.currentRowIndexes[0] + 1) % this.departureRoutes.length;
|
(dep.tableValues.currentRowIndexes[RowIndex.RouteTo] + 1) % this.departureRoutes.length;
|
||||||
|
|
||||||
isCurrentTickAnimating = true;
|
isCurrentTickAnimating = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (dep.tableValues.routeVia.toLowerCase() != dep.routeVia.toLowerCase()) {
|
if (dep.tableValues.routeVia.toLowerCase() != dep.routeVia.toLowerCase()) {
|
||||||
dep.tableValues.routeVia = this.departureRoutes[dep.tableValues.currentRowIndexes[1]];
|
dep.tableValues.routeVia =
|
||||||
|
this.departureRoutes[dep.tableValues.currentRowIndexes[RowIndex.RouteVia]];
|
||||||
|
|
||||||
dep.tableValues.currentRowIndexes[1] =
|
dep.tableValues.currentRowIndexes[RowIndex.RouteVia] =
|
||||||
(dep.tableValues.currentRowIndexes[1] + 1) % this.departureRoutes.length;
|
(dep.tableValues.currentRowIndexes[RowIndex.RouteVia] + 1) %
|
||||||
|
this.departureRoutes.length;
|
||||||
|
|
||||||
isCurrentTickAnimating = true;
|
isCurrentTickAnimating = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
dep.tableValues.dateDigits.forEach((digit, j) => {
|
dep.tableValues.dateDigits.forEach((digit, j) => {
|
||||||
if (dep.dateDigits[j] != digit) {
|
if (dep.dateDigits[j] != digit) {
|
||||||
dep.tableValues.dateDigits[j] =
|
dep.tableValues.dateDigits[j] = this.dateDigits[dep.tableValues.currentRowIndexes[j]];
|
||||||
this.dateDigits[dep.tableValues.currentRowIndexes[j + 2]];
|
dep.tableValues.currentRowIndexes[j] =
|
||||||
dep.tableValues.currentRowIndexes[j + 2] =
|
(dep.tableValues.currentRowIndexes[j] + 1) % this.dateDigits.length;
|
||||||
(dep.tableValues.currentRowIndexes[j + 2] + 1) % this.dateDigits.length;
|
|
||||||
|
|
||||||
isCurrentTickAnimating = true;
|
isCurrentTickAnimating = true;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (dep.trainNumber != dep.tableValues.trainNumber) {
|
||||||
|
dep.tableValues.trainNumber = Array.from(this.trainNumbersSet)[dep.tableValues.currentRowIndexes[RowIndex.TrainNumber]]
|
||||||
|
|
||||||
|
dep.tableValues.currentRowIndexes[RowIndex.TrainNumber] =
|
||||||
|
(dep.tableValues.currentRowIndexes[RowIndex.TrainNumber] + 1) % this.trainNumbersSet.size;
|
||||||
|
|
||||||
|
isCurrentTickAnimating = true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
this.animatingStatus = isCurrentTickAnimating ? 'running' : 'complete';
|
this.animatingStatus = isCurrentTickAnimating ? 'running' : 'complete';
|
||||||
|
|||||||
Reference in New Issue
Block a user