From 76d0ff88f1edc0e7a4cc16491ff3eb334845d7e3 Mon Sep 17 00:00:00 2001 From: Spythere Date: Thu, 1 Sep 2022 01:56:16 +0200 Subject: [PATCH] =?UTF-8?q?Zmiany=20w=20designie=20dziennika=20rozk=C5=82a?= =?UTF-8?q?d=C3=B3w=20jazdy?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../JournalView/JournalTimetables.vue | 130 ++++++---- .../SceneryView/SceneryTimetablesHistory.vue | 236 +++++++++--------- .../interfaces/api/TimetablesAPIData.ts | 75 +++--- 3 files changed, 236 insertions(+), 205 deletions(-) diff --git a/src/components/JournalView/JournalTimetables.vue b/src/components/JournalView/JournalTimetables.vue index ec37ebb..a945a43 100644 --- a/src/components/JournalView/JournalTimetables.vue +++ b/src/components/JournalView/JournalTimetables.vue @@ -46,6 +46,25 @@ #{{ item.timetableId }} + • + + + {{ + !item.terminated + ? $t('journal.timetable-active') + : item.fulfilled || item.currentDistance >= item.routeDistance * 0.9 + ? $t('journal.timetable-fulfilled') + : $t('journal.timetable-abandoned') + }} + +
{{ item.route.replace('|', ' - ') }}
@@ -58,49 +77,30 @@ :key="scenery.name" :class="{ confirmed: scenery.confirmed }" > - {{ i > 0 ? ' > ' : '' }} {{ scenery.name }} - - + > + {{ scenery.name }} -
- - {{ item.route.split('|')[0] }}: - - {{ localeTime(item.beginDate, $i18n.locale) }} - - {{ localeTime(item.scheduledBeginDate, $i18n.locale) }} • + + - - - {{ item.route.split('|').slice(-1)[0] }}: - - {{ $t('journal.timetable-abandoned') }} + + + - - {{ localeTime(item.fulfilled ? item.endDate : item.scheduledEndDate, $i18n.locale) }} - - {{ localeTime(item.fulfilled ? item.scheduledEndDate : item.endDate, $i18n.locale) }} + +
- - - {{ - !item.terminated - ? $t('journal.timetable-active') - : item.fulfilled || item.currentDistance >= item.routeDistance * 0.9 - ? $t('journal.timetable-fulfilled') - : $t('journal.timetable-abandoned') - }} -
@@ -120,17 +120,21 @@
-
+ {{ $t('journal.route-length') }} {{ !item.fulfilled ? item.currentDistance + ' /' : '' }} {{ item.routeDistance }} km -
- -
+ + • + {{ $t('journal.station-count') }} {{ item.confirmedStopsCount }} / {{ item.allStopsCount }} -
+ +
+ +
+
@@ -266,10 +270,35 @@ export default defineComponent({ this.statsCardOpen = false; }, - getSceneryList(historyItem: TimetableHistory) { - return historyItem.sceneriesString - .split('%') - .map((name, i) => ({ name, confirmed: i < historyItem.confirmedStopsCount })); + getSceneryList(item: TimetableHistory) { + return item.sceneriesString.split('%').map((name, i) => { + const beginDateHTML = + ' (o. ' + + (item.beginDate != item.scheduledBeginDate + ? `${this.localeTime(item.beginDate, this.$i18n.locale)} ` + : '') + + `${this.localeTime(item.scheduledBeginDate, this.$i18n.locale)})`; + + const endDateHTML = + ' (p. ' + + (item.endDate != item.scheduledEndDate && item.fulfilled + ? `${this.localeTime( + item.fulfilled ? item.endDate : item.scheduledEndDate, + this.$i18n.locale + )} ` + : '') + + `${this.localeTime( + item.fulfilled || (item.terminated && !item.fulfilled) ? item.scheduledEndDate : item.endDate, + this.$i18n.locale + )})`; + + const abandonedDateHTML = ` (porz. ${this.localeTime( + item.fulfilled ? item.scheduledEndDate : item.endDate, + this.$i18n.locale + )})`; + + return { name, confirmed: i < item.confirmedStopsCount, beginDateHTML, endDateHTML, abandonedDateHTML }; + }); }, handleScroll() { @@ -408,12 +437,9 @@ export default defineComponent({ padding: 0.2em 0; .scenery-list { - span { - color: #adadad; - - &.confirmed { - color: #a3eba3; - } + color: #adadad; + span.confirmed { + color: #a3eba3; } } } diff --git a/src/components/SceneryView/SceneryTimetablesHistory.vue b/src/components/SceneryView/SceneryTimetablesHistory.vue index b37282b..07f828b 100644 --- a/src/components/SceneryView/SceneryTimetablesHistory.vue +++ b/src/components/SceneryView/SceneryTimetablesHistory.vue @@ -1,118 +1,118 @@ - - - - - - + + + + + + diff --git a/src/scripts/interfaces/api/TimetablesAPIData.ts b/src/scripts/interfaces/api/TimetablesAPIData.ts index 48710a4..122da2a 100644 --- a/src/scripts/interfaces/api/TimetablesAPIData.ts +++ b/src/scripts/interfaces/api/TimetablesAPIData.ts @@ -1,35 +1,40 @@ -export interface TimetableHistory { - timetableId: number; - trainNo: number; - trainCategoryCode: string; - driverId: number; - driverName: string; - route: string; - twr: number; - skr: number; - sceneriesString: string; - - routeDistance: number; - currentDistance: number; - - confirmedStopsCount: number; - allStopsCount: number; - - beginDate: string; - endDate: string; - - scheduledBeginDate: string; - scheduledEndDate: string; - - terminated: boolean; - fulfilled: boolean; - - authorName?: string; - authorId?: number; -} - -export interface SceneryTimetableHistory { - sceneryTimetables: TimetableHistory[]; - totalCount: number; - sceneryName: string; -} +export interface TimetableHistory { + timetableId: number; + trainNo: number; + trainCategoryCode: string; + driverId: number; + driverName: string; + route: string; + twr: number; + skr: number; + sceneriesString: string; + + routeDistance: number; + currentDistance: number; + + confirmedStopsCount: number; + allStopsCount: number; + + beginDate: string; + endDate: string; + + scheduledBeginDate: string; + scheduledEndDate: string; + + terminated: boolean; + fulfilled: boolean; + + authorName?: string; + authorId?: number; + + stockString?: string; + stockMass?: number; + stockLength?: number; + maxSpeed?: number; +} + +export interface SceneryTimetableHistory { + sceneryTimetables: TimetableHistory[]; + totalCount: number; + sceneryName: string; +}