mirror of
https://github.com/Spythere/stacjownik.git
synced 2026-05-03 21:38:13 +00:00
Aktualizacja schedule indicatorów (w.i.p.)
This commit is contained in:
@@ -1,19 +1,11 @@
|
|||||||
<template>
|
<template>
|
||||||
<div
|
<div class="train-schedule" @click="toggleShowState">
|
||||||
class="train-schedule"
|
|
||||||
@click="this.$emit('click')"
|
|
||||||
>
|
|
||||||
<div class="schedule-wrapper">
|
<div class="schedule-wrapper">
|
||||||
<ul class="stop_list">
|
<ul class="stop_list">
|
||||||
<li
|
<li
|
||||||
v-for="(stop, i) in followingStops"
|
v-for="(stop, i) in followingStops"
|
||||||
:key="i"
|
:key="i"
|
||||||
:class="{
|
:class="addClasses(stop, i)"
|
||||||
confirmed: stop.confirmed,
|
|
||||||
stopped: stop.stopped,
|
|
||||||
beginning: stop.beginsHere,
|
|
||||||
delayed: stop.departureDelay > 0,
|
|
||||||
}"
|
|
||||||
>
|
>
|
||||||
<span class="stop_info">
|
<span class="stop_info">
|
||||||
<div class="indicator"></div>
|
<div class="indicator"></div>
|
||||||
@@ -22,17 +14,11 @@
|
|||||||
|
|
||||||
<div class="stop-bar"></div>
|
<div class="stop-bar"></div>
|
||||||
|
|
||||||
<span
|
<span class="distance" v-if="stop.stopDistance">
|
||||||
class="distance"
|
|
||||||
v-if="stop.stopDistance"
|
|
||||||
>
|
|
||||||
{{ Math.floor(stop.stopDistance) }}
|
{{ Math.floor(stop.stopDistance) }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
<span
|
<span class="stop-name" v-html="stop.stopName"></span>
|
||||||
class="stop-name"
|
|
||||||
v-html="stop.stopName"
|
|
||||||
></span>
|
|
||||||
<span class="stop-date">
|
<span class="stop-date">
|
||||||
<span
|
<span
|
||||||
class="date arrival"
|
class="date arrival"
|
||||||
@@ -46,8 +32,8 @@
|
|||||||
{{
|
{{
|
||||||
stylizeTime(
|
stylizeTime(
|
||||||
stop.confirmed
|
stop.confirmed
|
||||||
? stop.arrivalRealTimeString
|
? stop.arrivalRealTimeString || ""
|
||||||
: stop.arrivalTimeString,
|
: stop.arrivalTimeString || "",
|
||||||
stop.arrivalDelay,
|
stop.arrivalDelay,
|
||||||
stop.confirmed
|
stop.confirmed
|
||||||
)
|
)
|
||||||
@@ -74,8 +60,8 @@
|
|||||||
{{
|
{{
|
||||||
stylizeTime(
|
stylizeTime(
|
||||||
stop.confirmed
|
stop.confirmed
|
||||||
? stop.departureRealTimeString
|
? stop.departureRealTimeString || ""
|
||||||
: stop.departureTimeString,
|
: stop.departureTimeString || "",
|
||||||
stop.departureDelay,
|
stop.departureDelay,
|
||||||
stop.confirmed
|
stop.confirmed
|
||||||
)
|
)
|
||||||
@@ -88,7 +74,9 @@
|
|||||||
<div class="progress-bar"></div>
|
<div class="progress-bar"></div>
|
||||||
|
|
||||||
<span v-if="i < followingStops.length - 1">
|
<span v-if="i < followingStops.length - 1">
|
||||||
<span v-if="stop.departureLine == followingStops[i + 1].arrivalLine">
|
<span
|
||||||
|
v-if="stop.departureLine == followingStops[i + 1].arrivalLine"
|
||||||
|
>
|
||||||
{{ stop.departureLine }}
|
{{ stop.departureLine }}
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
@@ -105,10 +93,16 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
|
import TrainStop from "@/scripts/interfaces/TrainStop";
|
||||||
import { defineComponent } from "@vue/runtime-core";
|
import { defineComponent } from "@vue/runtime-core";
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
props: ["followingStops", "currentStationName"],
|
props: {
|
||||||
|
followingStops: {
|
||||||
|
type: Array as () => TrainStop[],
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
emits: ["click"],
|
emits: ["click"],
|
||||||
|
|
||||||
methods: {
|
methods: {
|
||||||
@@ -120,11 +114,38 @@ export default defineComponent({
|
|||||||
: "")
|
: "")
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
|
|
||||||
|
toggleShowState() {
|
||||||
|
this.$emit("click");
|
||||||
|
},
|
||||||
|
|
||||||
|
addClasses(stop: TrainStop, index: number) {
|
||||||
|
return {
|
||||||
|
confirmed: stop.confirmed,
|
||||||
|
stopped: stop.stopped,
|
||||||
|
beginning: stop.beginsHere,
|
||||||
|
delayed: stop.departureDelay > 0,
|
||||||
|
"minor-stop":
|
||||||
|
this.followingStops[index - 1]?.confirmed &&
|
||||||
|
stop.stopNameRAW.includes("po"),
|
||||||
|
"last-confirmed":
|
||||||
|
stop.confirmed && !this.followingStops[index + 1]?.confirmed,
|
||||||
|
};
|
||||||
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@keyframes blink {
|
||||||
|
from {
|
||||||
|
background-color: white;
|
||||||
|
}
|
||||||
|
to {
|
||||||
|
background-color: lime;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.train-schedule {
|
.train-schedule {
|
||||||
max-height: 600px;
|
max-height: 600px;
|
||||||
margin-top: 2em;
|
margin-top: 2em;
|
||||||
@@ -158,6 +179,22 @@ ul.stop_list > li {
|
|||||||
|
|
||||||
padding: 0 0.5em;
|
padding: 0 0.5em;
|
||||||
|
|
||||||
|
&.minor-stop {
|
||||||
|
.stop_info > .progress-bar {
|
||||||
|
animation: 0.5s ease-in-out alternate infinite blink;
|
||||||
|
}
|
||||||
|
|
||||||
|
.stop_line > .progress-bar {
|
||||||
|
animation: 0.5s ease-in-out alternate infinite blink;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
&.last-confirmed {
|
||||||
|
& > .stop_line > .progress-bar {
|
||||||
|
animation: 0.5s ease-in-out alternate infinite blink;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
&.confirmed {
|
&.confirmed {
|
||||||
& > .stop_line > .progress-bar {
|
& > .stop_line > .progress-bar {
|
||||||
background-color: lime;
|
background-color: lime;
|
||||||
|
|||||||
@@ -168,7 +168,6 @@
|
|||||||
>
|
>
|
||||||
<TrainSchedule
|
<TrainSchedule
|
||||||
:followingStops="train.timetableData.followingStops"
|
:followingStops="train.timetableData.followingStops"
|
||||||
:currentStationName="train.currentStationName"
|
|
||||||
@click="changeScheduleShowState(train.timetableData?.timetableId)"
|
@click="changeScheduleShowState(train.timetableData?.timetableId)"
|
||||||
/>
|
/>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user