diff --git a/src/components/JournalView/JournalTimetablesList.vue b/src/components/JournalView/JournalTimetablesList.vue index ee08f29..b798f17 100644 --- a/src/components/JournalView/JournalTimetablesList.vue +++ b/src/components/JournalView/JournalTimetablesList.vue @@ -17,6 +17,13 @@ {{ timetable.trainNo }} | {{ timetable.driverName }} | #{{ timetable.id }} + + + | + + {{ timetable.driverLevel < 2 ? 'L' : `${timetable.driverLevel} lvl` }} + + @@ -140,6 +147,7 @@ import { defineComponent, PropType, ref } from 'vue'; import dateMixin from '../../mixins/dateMixin'; import imageMixin from '../../mixins/imageMixin'; import modalTrainMixin from '../../mixins/modalTrainMixin'; +import styleMixin from '../../mixins/styleMixin'; import { TimetableHistory } from '../../scripts/interfaces/api/TimetablesAPIData'; export default defineComponent({ @@ -150,7 +158,7 @@ export default defineComponent({ }, }, - mixins: [dateMixin, imageMixin, modalTrainMixin], + mixins: [dateMixin, imageMixin, modalTrainMixin, styleMixin], computed: { computedTimetableHistory() { diff --git a/src/components/TrainsView/TrainInfo.vue b/src/components/TrainsView/TrainInfo.vue index 59541d2..97d4585 100644 --- a/src/components/TrainsView/TrainInfo.vue +++ b/src/components/TrainsView/TrainInfo.vue @@ -14,8 +14,12 @@  {{ train.trainNo }} | - {{ train.driverName }} - + + {{ train.driverName }} | + + {{ train.driverLevel < 2 ? 'L' : `${train.driverLevel} lvl` }} + + ? @@ -94,6 +98,7 @@ diff --git a/src/mixins/styleMixin.ts b/src/mixins/styleMixin.ts index 396180f..f7d9073 100644 --- a/src/mixins/styleMixin.ts +++ b/src/mixins/styleMixin.ts @@ -4,13 +4,19 @@ export default defineComponent({ methods: { calculateExpStyle(exp: number, isSupporter = false): string { const bgColor = exp > -1 ? (exp < 2 ? '#26B0D9' : `hsl(${-exp * 5 + 100}, 85%, 50%)`) : '#666'; - + const fontColor = exp > 14 || exp == -1 ? 'white' : 'black'; const boxShadow = isSupporter ? `box-shadow: 0 0 10px 2px ${bgColor};` : ''; - + return `background-color: ${bgColor}; color: ${fontColor}; ${boxShadow}`; }, + calculateTextExpStyle(exp: number): string { + const textColor = exp > -1 ? (exp < 2 ? '#26B0D9' : `hsl(${-exp * 5 + 100}, 75%, 50%)`) : '#666'; + + return `color: ${textColor};`; + }, + statusClasses(occupiedTo: string) { let className = ''; @@ -41,6 +47,6 @@ export default defineComponent({ } return className; - } - } -}) + }, + }, +}); diff --git a/src/scripts/interfaces/Train.ts b/src/scripts/interfaces/Train.ts index a57c8d6..b4e4dfb 100644 --- a/src/scripts/interfaces/Train.ts +++ b/src/scripts/interfaces/Train.ts @@ -12,6 +12,7 @@ export default interface Train { driverId: number; trainNo: number; driverName: string; + driverLevel: number; currentStationName: string; currentStationHash: string; locoURL: string; diff --git a/src/scripts/interfaces/api/TimetablesAPIData.ts b/src/scripts/interfaces/api/TimetablesAPIData.ts index c64ebfc..da13061 100644 --- a/src/scripts/interfaces/api/TimetablesAPIData.ts +++ b/src/scripts/interfaces/api/TimetablesAPIData.ts @@ -4,8 +4,12 @@ export interface TimetableHistory { timetableId: number; trainNo: number; trainCategoryCode: string; + driverId: number; driverName: string; + driverLevel: number | null; + driverIsSupporter: boolean; + route: string; twr: number; skr: number; diff --git a/src/scripts/interfaces/api/TrainAPIData.ts b/src/scripts/interfaces/api/TrainAPIData.ts index f417ca4..3147114 100644 --- a/src/scripts/interfaces/api/TrainAPIData.ts +++ b/src/scripts/interfaces/api/TrainAPIData.ts @@ -13,6 +13,7 @@ export default interface TrainAPIData { driverName: string; driverId: number; driverIsSupporter: boolean; + driverLevel?: number; currentStationName: string; currentStationHash: string; diff --git a/src/store/store.ts b/src/store/store.ts index 85d7a1b..b72cdc8 100644 --- a/src/store/store.ts +++ b/src/store/store.ts @@ -101,6 +101,7 @@ export const useStore = defineStore('store', { isTimeout: train.isTimeout, isSupporter: train.driverIsSupporter, + driverLevel: train.driverLevel, timetableData: timetable ? {