Skip to content

Commit 75bc71d

Browse files
authored
DAVE-640 (#416)
* load and set data of last request in gesamtauswertung * fix typo
1 parent d5a43e3 commit 75bc71d

File tree

4 files changed

+59
-7
lines changed

4 files changed

+59
-7
lines changed

frontend/src/components/messstelle/gesamtauswertung/stepper/AuswertungStepper.vue

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,10 @@
1313
:subtitle="selectedJahresintervallAsSummary"
1414
:error="!isJahresintervallSelected()"
1515
>
16-
<zeitintervall-step-content v-model="auswertungOptions" />
16+
<zeitintervall-step-content
17+
v-model="auswertungOptions"
18+
:preset-data="presetData"
19+
/>
1720
</v-stepper-vertical-item>
1821
<v-stepper-vertical-item
1922
:complete="activeStep > 2 && isJahreSelected()"
@@ -81,6 +84,7 @@ import { useGesamtauswertungUtils } from "@/util/GesamtauswertungUtils";
8184
interface Props {
8285
height: string;
8386
allVisibleMessstellen: Array<MessstelleAuswertungDTO>;
87+
presetData: boolean;
8488
}
8589
8690
defineProps<Props>();

frontend/src/components/messstelle/gesamtauswertung/stepper/ZeitintervallStepContent.vue

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,12 @@ const auswertungOptions = defineModel<MessstelleAuswertungOptionsDTO>({
5454
required: true,
5555
});
5656
57+
interface Props {
58+
presetData: boolean;
59+
}
60+
61+
const properties = defineProps<Props>();
62+
5763
const categories = [
5864
ZeitintervallCategories.JAHRE,
5965
ZeitintervallCategories.HALBJAHRE,
@@ -135,6 +141,13 @@ watch(selectedCategory, () => {
135141
previuosSelectedCategory.value = selectedCategory.value;
136142
});
137143
144+
watch(
145+
() => properties.presetData,
146+
() => {
147+
preSetSelectedCategory();
148+
}
149+
);
150+
138151
function preSetSelectedCategory() {
139152
const zeitintervalle = auswertungOptions.value.zeitraum;
140153
if (zeitintervalle.length === 0) {

frontend/src/store/GesamtauswertungStore.ts

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
import type MessstelleAuswertungOptionsDTO from "@/types/messstelle/auswertung/MessstelleAuswertungOptionsDTO";
2+
import type LadeZaehldatenSteplineDTO from "@/types/zaehlung/zaehldaten/LadeZaehldatenSteplineDTO";
23

34
import { cloneDeep } from "lodash";
45
import { defineStore } from "pinia";
@@ -12,17 +13,31 @@ export const useGesamtauswertungStore = defineStore(
1213
const auswertungMessstelleOptions = ref<MessstelleAuswertungOptionsDTO>(
1314
DefaultObjectCreator.createDefaultMessstelleAuswertungOptions()
1415
);
16+
const zaehldatenMessstellen = ref<LadeZaehldatenSteplineDTO>(
17+
DefaultObjectCreator.createDefaultLadeZaehldatenSteplineDTO()
18+
);
1519

1620
const getAuswertungMessstelleOptions = computed(
1721
() => auswertungMessstelleOptions.value
1822
);
23+
const getZaehldatenMessstellen = computed(
24+
() => zaehldatenMessstellen.value
25+
);
1926

2027
function setAuswertungMessstelleOptions(
2128
payload: MessstelleAuswertungOptionsDTO
2229
) {
2330
auswertungMessstelleOptions.value = cloneDeep(payload);
2431
}
32+
function setZaehldatenMessstellen(payload: LadeZaehldatenSteplineDTO) {
33+
zaehldatenMessstellen.value = cloneDeep(payload);
34+
}
2535

26-
return { getAuswertungMessstelleOptions, setAuswertungMessstelleOptions };
36+
return {
37+
getAuswertungMessstelleOptions,
38+
getZaehldatenMessstellen,
39+
setAuswertungMessstelleOptions,
40+
setZaehldatenMessstellen,
41+
};
2742
}
2843
);

frontend/src/views/AuswertungView.vue

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
v-model="auswertungsOptions"
1515
:height="stepperHeightVh"
1616
:all-visible-messstellen="allVisibleMessstellen"
17+
:preset-data="presetData"
1718
/>
1819
<v-spacer />
1920
<v-card-actions>
@@ -92,10 +93,11 @@ import type MessstelleAuswertungIdDTO from "@/types/messstelle/auswertung/Messst
9293
import type MessstelleAuswertungOptionsDTO from "@/types/messstelle/auswertung/MessstelleAuswertungOptionsDTO";
9394
import type LadeZaehldatenSteplineDTO from "@/types/zaehlung/zaehldaten/LadeZaehldatenSteplineDTO";
9495
95-
import { cloneDeep, head, isNil, toArray, valuesIn } from "lodash";
96+
import { cloneDeep, head, isEmpty, isNil, toArray, valuesIn } from "lodash";
9697
import { computed, onMounted, ref } from "vue";
9798
import { useDisplay } from "vuetify";
9899
100+
import { ApiError, Levels } from "@/api/error";
99101
import GeneratePdfService from "@/api/service/GeneratePdfService";
100102
import MessstelleAuswertungService from "@/api/service/MessstelleAuswertungService";
101103
import ProgressLoader from "@/components/common/ProgressLoader.vue";
@@ -129,6 +131,7 @@ const chartDataLoading = ref(false);
129131
const steplineCard = ref<InstanceType<typeof StepLineCard> | null>();
130132
const allVisibleMessstellen = ref<Array<MessstelleAuswertungDTO>>([]);
131133
const pdfReportDialog = ref(false);
134+
const presetData = ref(false);
132135
133136
const zaehldatenMessstellen = ref<LadeZaehldatenSteplineDTO>(
134137
DefaultObjectCreator.createDefaultLadeZaehldatenSteplineDTO()
@@ -140,6 +143,13 @@ const auswertungsOptions = ref<MessstelleAuswertungOptionsDTO>(
140143
141144
onMounted(() => {
142145
loadAllVisibleMessstellen();
146+
auswertungsOptions.value = cloneDeep(
147+
gesamtauswertungStore.getAuswertungMessstelleOptions
148+
);
149+
zaehldatenMessstellen.value = cloneDeep(
150+
gesamtauswertungStore.getZaehldatenMessstellen
151+
);
152+
presetData.value = !isEmpty(auswertungsOptions.value.zeitraum);
143153
});
144154
145155
const textForNonShownDiagram = computed(() => {
@@ -251,6 +261,7 @@ function resetAuswertungsOptions() {
251261
);
252262
zaehldatenMessstellen.value =
253263
DefaultObjectCreator.createDefaultLadeZaehldatenSteplineDTO();
264+
gesamtauswertungStore.setZaehldatenMessstellen(zaehldatenMessstellen.value);
254265
}
255266
256267
function auswertungStarten() {
@@ -279,6 +290,9 @@ function auswertungStarten() {
279290
zaehldatenMessstellen.value =
280291
DefaultObjectCreator.createDefaultLadeZaehldatenSteplineDTO();
281292
}
293+
gesamtauswertungStore.setZaehldatenMessstellen(
294+
zaehldatenMessstellen.value
295+
);
282296
});
283297
}
284298
@@ -408,11 +422,17 @@ function getFilenameSingleMessstelleAndMessquerschnitte(
408422
}
409423
410424
function loadAllVisibleMessstellen(): void {
411-
MessstelleAuswertungService.getAllVisibleMessstellen().then(
412-
(messstellen: Array<MessstelleAuswertungDTO>) => {
425+
MessstelleAuswertungService.getAllVisibleMessstellen()
426+
.then((messstellen: Array<MessstelleAuswertungDTO>) => {
413427
allVisibleMessstellen.value = messstellen;
414-
}
415-
);
428+
})
429+
.catch((error) => {
430+
throw new ApiError(
431+
Levels.ERROR,
432+
`Beim Laden aller auswählbaren Messstellen ist ein Fehler aufgetreten.`,
433+
error
434+
);
435+
});
416436
}
417437
function openPdfReportDialog(): void {
418438
pdfReportDialog.value = true;

0 commit comments

Comments
 (0)