mirror of
https://github.com/Spythere/stacjownik.git
synced 2026-05-03 05:18:11 +00:00
statystyki DR
This commit is contained in:
@@ -3,7 +3,10 @@
|
|||||||
class="journal-stats dispatcher"
|
class="journal-stats dispatcher"
|
||||||
v-if="store.dispatcherStatsName && store.dispatcherStatsData"
|
v-if="store.dispatcherStatsName && store.dispatcherStatsData"
|
||||||
>
|
>
|
||||||
<span class="loading" v-if="!store.dispatcherStatsData._count._all">
|
<span
|
||||||
|
class="loading"
|
||||||
|
v-if="!store.dispatcherStatsData.issuedTimetables || !store.dispatcherStatsData.services"
|
||||||
|
>
|
||||||
Ten dyżurny nie ma jeszcze szczegółowych statystyk!
|
Ten dyżurny nie ma jeszcze szczegółowych statystyk!
|
||||||
</span>
|
</span>
|
||||||
|
|
||||||
@@ -18,22 +21,34 @@
|
|||||||
|
|
||||||
<hr class="header-separator" />
|
<hr class="header-separator" />
|
||||||
|
|
||||||
<div class="info-stats" v-if="store.dispatcherStatsData._count._all">
|
<div class="info-stats">
|
||||||
<span class="stat-badge">
|
<span class="stat-badge">
|
||||||
<span>LICZBA</span>
|
<span>DYŻURY</span>
|
||||||
<span>{{ store.dispatcherStatsData._count._all }}</span>
|
<span>{{ store.dispatcherStatsData.services.count }}</span>
|
||||||
</span>
|
</span>
|
||||||
<span class="stat-badge">
|
<span class="stat-badge">
|
||||||
<span>SUMA (KM)</span>
|
<span>WYSTAWIONE RJ</span>
|
||||||
<span>{{ store.dispatcherStatsData._sum.routeDistance.toFixed(2) }}km</span>
|
<span>{{ store.dispatcherStatsData.issuedTimetables.count }}</span>
|
||||||
</span>
|
</span>
|
||||||
<span class="stat-badge">
|
<span class="stat-badge">
|
||||||
<span>NAJDŁUŻSZY</span>
|
<span>MAKS. CZAS DYŻURU</span>
|
||||||
<span>{{ store.dispatcherStatsData._max.routeDistance.toFixed(2) }}km</span>
|
<span>{{ calculateDuration(store.dispatcherStatsData.services.durationMax) }}</span>
|
||||||
</span>
|
</span>
|
||||||
<span class="stat-badge">
|
<span class="stat-badge">
|
||||||
<span>ŚREDNIO</span>
|
<span>ŚREDNI CZAS DYŻURU</span>
|
||||||
<span>{{ store.dispatcherStatsData._avg.routeDistance.toFixed(2) }}km</span>
|
<span>{{ calculateDuration(store.dispatcherStatsData.services.durationAvg) }}</span>
|
||||||
|
</span>
|
||||||
|
<span class="stat-badge">
|
||||||
|
<span>SUMA WYSTAWIONYCH RJ</span>
|
||||||
|
<span>{{ store.dispatcherStatsData.issuedTimetables.distanceSum.toFixed(2) }}km</span>
|
||||||
|
</span>
|
||||||
|
<span class="stat-badge">
|
||||||
|
<span>NAJDŁUŻSZY WYSTAWIONY RJ</span>
|
||||||
|
<span>{{ store.dispatcherStatsData.issuedTimetables.distanceMax.toFixed(2) }}km</span>
|
||||||
|
</span>
|
||||||
|
<span class="stat-badge">
|
||||||
|
<span>ŚREDNIA WYSTAWIONYCH RJ</span>
|
||||||
|
<span>{{ store.dispatcherStatsData.issuedTimetables.distanceAvg.toFixed(2) }}km</span>
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</span>
|
</span>
|
||||||
@@ -43,10 +58,13 @@
|
|||||||
<script lang="ts">
|
<script lang="ts">
|
||||||
import { defineComponent } from 'vue';
|
import { defineComponent } from 'vue';
|
||||||
import { useMainStore } from '../../store/mainStore';
|
import { useMainStore } from '../../store/mainStore';
|
||||||
|
import dateMixin from '../../mixins/dateMixin';
|
||||||
|
|
||||||
export default defineComponent({
|
export default defineComponent({
|
||||||
name: 'journal-dispatcher-stats',
|
name: 'journal-dispatcher-stats',
|
||||||
|
|
||||||
|
mixins: [dateMixin],
|
||||||
|
|
||||||
setup() {
|
setup() {
|
||||||
const store = useMainStore();
|
const store = useMainStore();
|
||||||
|
|
||||||
|
|||||||
@@ -115,13 +115,15 @@ export default defineComponent({
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
const statsData: API.DispatcherStats.Response = await (
|
const statsData: API.DispatcherStats.Response = await (
|
||||||
await http.get('api/getDispatcherInfo', {
|
await http.get('api/getDispatcherStats', {
|
||||||
params: {
|
params: {
|
||||||
name: this.mainStore.dispatcherStatsName
|
name: this.mainStore.dispatcherStatsName
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
).data;
|
).data;
|
||||||
|
|
||||||
|
console.log(statsData);
|
||||||
|
|
||||||
this.mainStore.dispatcherStatsData = statsData;
|
this.mainStore.dispatcherStatsData = statsData;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.mainStore.dispatcherStatsData = undefined;
|
this.mainStore.dispatcherStatsData = undefined;
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
|
|
||||||
<router-link
|
<router-link
|
||||||
class="dispatcher_name"
|
class="dispatcher_name"
|
||||||
:to="`/journal/dispatchers?dispatcherName=${onlineScenery.dispatcherName}`"
|
:to="`/journal/dispatchers?search-dispatcher=${onlineScenery.dispatcherName}`"
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
class="text--donator"
|
class="text--donator"
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ hr.header-separator {
|
|||||||
.info-stats {
|
.info-stats {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-wrap: wrap;
|
flex-wrap: wrap;
|
||||||
|
justify-content: center;
|
||||||
gap: 0.5em;
|
gap: 0.5em;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+17
-6
@@ -31,7 +31,11 @@ export namespace API {
|
|||||||
|
|
||||||
export namespace DispatcherStats {
|
export namespace DispatcherStats {
|
||||||
export interface DistanceStat {
|
export interface DistanceStat {
|
||||||
routeDistance: number;
|
routeDistance: number | null;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface DurationStat {
|
||||||
|
currentDuration: number | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface Count {
|
export interface Count {
|
||||||
@@ -39,11 +43,18 @@ export namespace API {
|
|||||||
}
|
}
|
||||||
|
|
||||||
export interface Response {
|
export interface Response {
|
||||||
_sum: DistanceStat;
|
services: {
|
||||||
_max: DistanceStat;
|
count: number;
|
||||||
_min: DistanceStat;
|
durationMax: number;
|
||||||
_avg: DistanceStat;
|
durationAvg: number;
|
||||||
_count: Count;
|
} | null;
|
||||||
|
|
||||||
|
issuedTimetables: {
|
||||||
|
count: number;
|
||||||
|
distanceMax: number;
|
||||||
|
distanceAvg: number;
|
||||||
|
distanceSum: number;
|
||||||
|
} | null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user