143
143
</template >
144
144
145
145
<script setup lang="ts">
146
- import { ref , computed , watch } from ' vue'
146
+ import { ref , computed , watch , onMounted } from ' vue'
147
147
import {
148
148
DocumentFormat ,
149
149
Location ,
@@ -201,17 +201,40 @@ const parameterQualifiers = ref<ParameterQualifiersHeader[]>([])
201
201
const selectedParameterQualifiers = ref <ParameterQualifiersHeader []>([])
202
202
const selectableAttributes = ref <string [][]>([])
203
203
const onlyDownloadMetaData = ref (false )
204
+ const errors = ref <string []>([])
204
205
205
- getLocations ().then ((locationsResponse ) => {
206
+ const selectedAttributes = ref <string [][]>([])
207
+
208
+ const startDate = ref <Date >(getStartDateValue ())
209
+ const endDate = ref <Date >(getEndDateValue ())
210
+ const DATE_FMT = ' yyyy-MM-dd HH:mm'
211
+ const startDateString = ref <string >(
212
+ DateTime .fromJSDate (getStartDateValue ()).toFormat (DATE_FMT ),
213
+ )
214
+ const endDateString = ref <string >(
215
+ DateTime .fromJSDate (getEndDateValue ()).toFormat (DATE_FMT ),
216
+ )
217
+
218
+ const parameterQualifiersHeaders: ParameterQualifiersHeader [] = []
219
+
220
+ const rules = {
221
+ required : (value : string ) => (value !== undefined && !! value ) || ' Required' ,
222
+ date : (value : string ) => {
223
+ const date = DateTime .fromFormat (value || ' ' , DATE_FMT )
224
+ return ! isNaN (date .valueOf ()) || ' Invalid date'
225
+ },
226
+ }
227
+
228
+ onMounted (async () => {
229
+ const locationsResponse = await getLocations ()
206
230
allLocations .value = locationsResponse
207
231
locations .value = locationsResponse
208
- selectedLocations .value = allLocations .value
209
- selectableAttributes .value = getAttributeValues (allLocations .value )
210
- })
232
+ selectedLocations .value = locationsResponse
233
+ selectableAttributes .value = getAttributeValues (locationsResponse )
211
234
212
- allParameters .value = await getParameters ()
213
- getTimeSeriesHeaders (). then (( headersResponse ) => {
214
- const parameterQualifiersHeaders : ParameterQualifiersHeader [] = []
235
+ allParameters .value = await getParameters ()
236
+
237
+ const headersResponse = await getTimeSeriesHeaders ()
215
238
headersResponse ?.forEach ((timeSeriesResult ) => {
216
239
const parameterQualifiersHeader: ParameterQualifiersHeader = {
217
240
parameterId: timeSeriesResult .header ?.parameterId ,
@@ -221,29 +244,11 @@ getTimeSeriesHeaders().then((headersResponse) => {
221
244
})
222
245
parameterQualifiers .value = uniqWith (parameterQualifiersHeaders , isEqual )
223
246
selectedParameterQualifiers .value = parameterQualifiers .value
247
+ if (attributes ) {
248
+ selectedAttributes .value = attributes .map (() => [])
249
+ }
224
250
})
225
251
226
- let errors = ref <string []>([])
227
- const startDate = ref <Date >(getStartDateValue ())
228
- const endDate = ref <Date >(getEndDateValue ())
229
- const selectedAttributes = ref <string [][]>([])
230
- const rules = {
231
- required : (value : string ) => (value !== undefined && !! value ) || ' Required' ,
232
- date : (value : string ) => {
233
- const date = DateTime .fromFormat (value || ' ' , DATE_FMT )
234
- return ! isNaN (date .valueOf ()) || ' Invalid date'
235
- },
236
- }
237
- attributes ?.forEach ((item ) => selectedAttributes .value .push ([]))
238
-
239
- const DATE_FMT = ' yyyy-MM-dd HH:mm'
240
- const startDateString = ref <string >(
241
- DateTime .fromJSDate (getStartDateValue ()).toFormat (DATE_FMT ),
242
- )
243
- const endDateString = ref <string >(
244
- DateTime .fromJSDate (getEndDateValue ()).toFormat (DATE_FMT ),
245
- )
246
-
247
252
watch (startDateString , (newValue ) => {
248
253
let newDateTime: DateTimeMaybeValid = DateTime .fromFormat (newValue , DATE_FMT )
249
254
if (! newDateTime .isValid ) {
0 commit comments