Poprawki statystyk

This commit is contained in:
2022-06-27 21:32:00 +02:00
parent b91e58f9af
commit 4e80e73949
10 changed files with 172 additions and 137 deletions
+15 -7
View File
@@ -8,31 +8,32 @@
</h2>
<div class="loading" v-if="!store.dispatcherStatsData">Ładowanie...</div>
<div class="loading" v-else-if="!store.dispatcherStatsData._count._all">Ten dyżurny nie ma jeszcze szczegółowych statystyk!</div>
<div v-else>
<h3>STATYSTYKI WYSTAWIONYCH ROZKŁADÓW</h3>
<div class="info-stats">
<div class="info-stats" v-if="store.dispatcherStatsData._count._all">
<span class="stat-badge">
<span>LICZBA</span>
<span>{{ store.dispatcherStatsData.count }}</span>
<span>{{ store.dispatcherStatsData._count._all }}</span>
</span>
<span class="stat-badge">
<span>SUMA (KM)</span>
<span>{{ store.dispatcherStatsData.sumDistance.toFixed(2) }}km</span>
<span>{{ store.dispatcherStatsData._sum.routeDistance.toFixed(2) }}km</span>
</span>
<span class="stat-badge">
<span>NAJDŁUŻSZY</span>
<span>{{ store.dispatcherStatsData.maxTimetableDistance }}km</span>
<span>{{ store.dispatcherStatsData._max.routeDistance.toFixed(2) }}km</span>
</span>
<span class="stat-badge">
<span>ŚREDNIO</span>
<span>{{ store.dispatcherStatsData.avgTimetableDistance }}km</span>
<span>{{ store.dispatcherStatsData._avg.routeDistance.toFixed(2) }}km</span>
</span>
</div>
<h3>OSTATNIE WYSTAWIONE ROZKŁADY</h3>
<div class="last-timetables">
<div class="timetable-row" v-for="timetable in store.dispatcherStatsData.timetables">
<div class="timetable-row" v-for="timetable in timetables">
<span>#{{ timetable.timetableId }}</span>
<span>{{ timetable.routeDistance }}km</span>
<span>
@@ -49,6 +50,7 @@
<script lang="ts">
import { DispatcherStatsAPIData } from '@/scripts/interfaces/api/DispatcherStatsAPIData';
import { TimetableHistory } from '@/scripts/interfaces/api/TimetablesAPIData';
import { URLs } from '@/scripts/utils/apiURLs';
import { useStore } from '@/store/store';
import axios from 'axios';
@@ -67,6 +69,7 @@ export default defineComponent({
data() {
return {
lastDispatcherName: '',
timetables: [] as TimetableHistory[],
};
},
@@ -82,7 +85,12 @@ export default defineComponent({
await axios.get(`${URLs.stacjownikAPI}/api/getDispatcherInfo?name=${this.store.dispatcherStatsName}`)
).data;
this.store.dispatcherStatsData = statsData.response;
const timetables: TimetableHistory[] = await (
await axios.get(`${URLs.stacjownikAPI}/api/getTimetables?authorName=${this.store.dispatcherStatsName}`)
).data;
this.timetables = timetables;
this.store.dispatcherStatsData = statsData;
},
closeCard() {
+12 -9
View File
@@ -10,36 +10,39 @@
<div class="loading" v-if="!store.driverStatsData">Ładowanie...</div>
<div v-else>
<div class="info-stats">
<div class="info-stats" v-if="store.driverStatsData._sum.routeDistance != null">
<span class="stat-badge">
<span>PRZEBYTO</span>
<span>{{ store.driverStatsData.confirmedDistance.toFixed(2) }}km</span>
<span>{{ store.driverStatsData._sum.routeDistance.toFixed(2) }}km</span>
</span>
<span class="stat-badge">
<span>PORZUCONO</span>
<span>
{{ (store.driverStatsData.totalDistance - store.driverStatsData.confirmedDistance).toFixed(2) }}km
{{ (store.driverStatsData._sum.routeDistance - store.driverStatsData._sum.currentDistance).toFixed(2) }}km
</span>
</span>
<span class="stat-badge">
<span>WYPEŁNIONO</span>
<span>{{ store.driverStatsData.fulfilled }} RJ</span>
<span>{{ store.driverStatsData._count.fulfilled }} RJ</span>
</span>
<span class="stat-badge">
<span>PORZUCONO</span>
<span>{{ store.driverStatsData.abandoned }} RJ</span>
<span>{{ store.driverStatsData._count._all - store.driverStatsData._count.fulfilled }} RJ</span>
</span>
<span class="stat-badge">
<span>ZATWIERDZONO</span>
<span>{{ store.driverStatsData.confirmedStops }} stacji</span>
<span>{{ store.driverStatsData._sum.confirmedStopsCount }} stacji</span>
</span>
<span class="stat-badge">
<span>PORZUCONO</span>
<span>{{ store.driverStatsData.totalStops - store.driverStatsData.confirmedStops }} stacji</span>
<span>
{{ store.driverStatsData._sum.allStopsCount - store.driverStatsData._sum.confirmedStopsCount }}
stacji
</span>
</span>
</div>
</div>
@@ -87,10 +90,10 @@ export default defineComponent({
).data;
const recentTimetablesData: TimetableHistory[] = await (
await axios.get(`${URLs.stacjownikAPI}/api/getTimetables?driver=${this.store.driverStatsName}`)
await axios.get(`${URLs.stacjownikAPI}/api/getTimetables?driverName=${this.store.driverStatsName}`)
).data;
this.store.driverStatsData = statsData.response;
this.store.driverStatsData = statsData;
this.lastTimetables = recentTimetablesData || [];
},
@@ -14,7 +14,7 @@
:filters="journalTimetableFilters"
/>
<button
<!-- <button
class="btn btn--option"
:disabled="store.driverStatsName == ''"
@click="() => (statsCardOpen = !statsCardOpen)"
@@ -23,7 +23,7 @@
Statystyki maszynisty <b>{{ store.driverStatsName }}</b>
</span>
<span v-else>Statystyki maszynisty niedostępne</span>
</button>
</button> -->
</div>
<div class="journal-list">
+16 -3
View File
@@ -9,8 +9,8 @@
v-model="option.value"
@change="handleChange"
/>
<span :class="option.section + (option.value ? ' checked' : '')"
>{{ $t(`filters.${option.id}`) }}
<span v-if="option.id != 'troll'" :class="option.section + (option.value ? ' checked' : '')"
>{{ option.id != 'troll' ? $t(`filters.${option.id}`) : 'ARKADIA ZDRÓJ' }}
</span>
</label>
</div>
@@ -37,6 +37,11 @@ export default defineComponent({
emits: ['optionChange'],
methods: {
handleChange() {
if (this.option.name == 'troll') {
location.href = 'https://www.youtube.com/watch?v=HIcSWuKMwOw';
return;
}
this.$emit('optionChange', {
name: this.option.name,
value: this.option.value,
@@ -50,7 +55,7 @@ export default defineComponent({
</script>
<style lang="scss" scoped>
@import "../../styles/option.scss";
@import '../../styles/option.scss';
$accessCol: #e03b07;
$controlCol: #0085ff;
@@ -110,6 +115,14 @@ $routesCol: #9049c0;
}
}
&.troll {
background-color: firebrick;
&::before {
box-shadow: 0 0 6px 1px firebrick;
}
}
&.mode {
background-color: lightgreen;
color: black;