Dodano animację listy w widoku pociągów

This commit is contained in:
2022-01-10 21:15:24 +01:00
parent 9fb6454d75
commit ca6387f121
+21 -21
View File
@@ -4,14 +4,14 @@
{{ $t('trains.distance-exceeded') }} {{ $t('trains.distance-exceeded') }}
</div> </div>
<transition name="train-list-anim" mode="out-in">
<div :key="computedTrains.length+Number(timetableLoaded)">
<div class="table-info no-trains" v-if="computedTrains.length == 0 && timetableLoaded"> <div class="table-info no-trains" v-if="computedTrains.length == 0 && timetableLoaded">
{{ $t('trains.no-trains') }} {{ $t('trains.no-trains') }}
</div> </div>
<div class="table-info loading" v-if="computedTrains.length == 0 && !timetableLoaded"> <div class="table-info loading" v-if="computedTrains.length == 0 && !timetableLoaded">
{{ $t('trains.loading') }} {{ $t('trains.loading') }}
</div> </div>
<ul class="train-list"> <ul class="train-list">
<li <li
class="train-row" class="train-row"
@@ -33,7 +33,6 @@
</span> </span>
</div> </div>
</div> </div>
<div class="info_timetable" v-else> <div class="info_timetable" v-else>
<div class="timetable_general"> <div class="timetable_general">
<span class="timetable_hero"> <span class="timetable_hero">
@@ -45,41 +44,33 @@
SKR SKR
</span> </span>
</span> </span>
<span> <span>
<strong>{{ train.timetableData.category }}</strong> <strong>{{ train.timetableData.category }}</strong>
{{ train.trainNo }} | {{ train.trainNo }} |
<span style="color: gold"> {{ train.timetableData.routeDistance }} km </span> <span style="color: gold"> {{ train.timetableData.routeDistance }} km </span>
</span> </span>
</span> </span>
<span class="timetable_srjp g-tooltip"> <span class="timetable_srjp g-tooltip">
<span class="activator"> <span class="activator">
SRJP SRJP
<img <img
:src="showedSchedule == train.timetableData.timetableId ? icons.arrowAsc : icons.arrowDesc" :src="showedSchedule == train.timetableData.timetableId ? icons.arrowAsc : icons.arrowDesc"
alt="arrow-icon" alt="arrow-icon"
/> />
</span> </span>
<span class="content"> {{ $t('trains.detailed-timetable') }} {{ train.trainNo }} </span> <span class="content"> {{ $t('trains.detailed-timetable') }} {{ train.trainNo }} </span>
</span> </span>
</div> </div>
<div class="timetable_route"> <div class="timetable_route">
{{ train.timetableData.route.replace('|', ' - ') }} {{ train.timetableData.route.replace('|', ' - ') }}
</div> </div>
<div class="timetable_stops"> <div class="timetable_stops">
<span v-if="train.timetableData.followingStops.length > 2"> <span v-if="train.timetableData.followingStops.length > 2">
{{ $t('trains.via-title') }} {{ $t('trains.via-title') }}
<span v-html="displayStopList(train.timetableData.followingStops)"></span> <span v-html="displayStopList(train.timetableData.followingStops)"></span>
</span> </span>
</div> </div>
</div> </div>
<div class="info_comments" v-if="getSceneriesWithComments(train.timetableData).length > 0"> <div class="info_comments" v-if="getSceneriesWithComments(train.timetableData).length > 0">
<img <img
:src="icons.warning" :src="icons.warning"
@@ -89,7 +80,6 @@
/> />
</div> </div>
</span> </span>
<span class="driver"> <span class="driver">
<div class="driver-info"> <div class="driver-info">
<span class="driver-name"> <span class="driver-name">
@@ -102,17 +92,14 @@
{{ train.locoType }} {{ train.locoType }}
</span> </span>
</div> </div>
<span class="driver-loco"> <span class="driver-loco">
<div class="driver-cars"> <div class="driver-cars">
<span v-if="train.cars.length > 0"> <span v-if="train.cars.length > 0">
{{ $t('trains.cars') }}: {{ $t('trains.cars') }}:
<span class="count">{{ train.cars.length }}</span> <span class="count">{{ train.cars.length }}</span>
</span> </span>
<span v-else>{{ displayLocoInfo(train.locoType) }}</span> <span v-else>{{ displayLocoInfo(train.locoType) }}</span>
</div> </div>
<img <img
v-if="defaultVehicleIcons.includes(train.locoType)" v-if="defaultVehicleIcons.includes(train.locoType)"
class="train-image" class="train-image"
@@ -122,7 +109,6 @@
<img v-else class="train-image" :src="train.locoURL" :alt="train.locoType" @error="onImageError" /> <img v-else class="train-image" :src="train.locoURL" :alt="train.locoType" @error="onImageError" />
</span> </span>
</span> </span>
<span class="stats"> <span class="stats">
<div class="stats-main"> <div class="stats-main">
<span v-for="stat in stats.main" :key="stat.name"> <span v-for="stat in stats.main" :key="stat.name">
@@ -130,7 +116,6 @@
{{ `${~~(train[stat.name] * (stat.multiplier || 1))}${stat.unit}` }} {{ `${~~(train[stat.name] * (stat.multiplier || 1))}${stat.unit}` }}
</span> </span>
</div> </div>
<div class="stats-position"> <div class="stats-position">
<span v-for="stat in stats.position" :key="stat.name"> <span v-for="stat in stats.position" :key="stat.name">
<div> <div>
@@ -141,8 +126,7 @@
</div> </div>
</span> </span>
</div> </div>
<transition name="unfold-timetable-anim" @enter="enter" @afterEnter="afterEnter" @leave="leave">
<transition name="unfold" @enter="enter" @afterEnter="afterEnter" @leave="leave">
<TrainSchedule <TrainSchedule
v-if="showedSchedule === train.timetableData?.timetableId" v-if="showedSchedule === train.timetableData?.timetableId"
:followingStops="train.timetableData?.followingStops" :followingStops="train.timetableData?.followingStops"
@@ -150,12 +134,13 @@
/> />
</transition> </transition>
</li> </li>
<div class="table-info limit" v-if="timetableLoaded && computedTrains.length > 10"> <div class="table-info limit" v-if="timetableLoaded && computedTrains.length > 10">
{{ $t('trains.table-limit') }} {{ $t('trains.table-limit') }}
</div> </div>
</ul> </ul>
</div> </div>
</transition>
</div>
</template> </template>
<script lang="ts"> <script lang="ts">
@@ -371,7 +356,7 @@ export default defineComponent({
<style lang="scss" scoped> <style lang="scss" scoped>
@import '../../styles/responsive.scss'; @import '../../styles/responsive.scss';
.unfold { .unfold-timetable-anim {
&-leave-active, &-leave-active,
&-enter-active { &-enter-active {
transition: all 150ms ease-out; transition: all 150ms ease-out;
@@ -379,6 +364,21 @@ export default defineComponent({
} }
} }
.train-list-anim {
&-enter-from,
&-leave-to {
opacity: 0;
}
&-enter-active {
transition: all 100ms ease-out;
}
&-leave-active {
transition: all 100ms ease-out 100ms;
}
}
.table-info { .table-info {
text-align: center; text-align: center;