fix: fixed event inclusion duplicateKey because of props assignment in onMounted
gitea/salix-front/pipeline/pr-master Something is wrong with the build of this commit Details

This commit is contained in:
Jon Elias 2025-04-15 08:46:31 +02:00
parent b524a6d8eb
commit 0f7bb9cfe1
1 changed files with 14 additions and 22 deletions

View File

@ -56,6 +56,7 @@ const isNew = computed(() => props.isNewMode);
const eventInclusionFormData = ref({ wdays: [] }); const eventInclusionFormData = ref({ wdays: [] });
const dated = ref(props.date || Date.vnNew()); const dated = ref(props.date || Date.vnNew());
const _inclusionType = ref('indefinitely'); const _inclusionType = ref('indefinitely');
const hasDeletedEvent = ref(false);
const inclusionType = computed({ const inclusionType = computed({
get: () => _inclusionType.value, get: () => _inclusionType.value,
set: (val) => { set: (val) => {
@ -84,7 +85,7 @@ const createEvent = async () => {
} }
const zoneIds = props.zoneIds?.length ? props.zoneIds : [route.params.id]; const zoneIds = props.zoneIds?.length ? props.zoneIds : [route.params.id];
for (const id of zoneIds) { for (const zoneId of zoneIds) {
let today = eventInclusionFormData.value.dated let today = eventInclusionFormData.value.dated
? moment(eventInclusionFormData.value.dated) ? moment(eventInclusionFormData.value.dated)
: moment(dated.value); : moment(dated.value);
@ -92,7 +93,7 @@ const createEvent = async () => {
const { data } = await axios.get(`Zones/getEventsFiltered`, { const { data } = await axios.get(`Zones/getEventsFiltered`, {
params: { params: {
zoneFk: id, zoneFk: zoneId,
started: today, started: today,
ended: lastDay, ended: lastDay,
}, },
@ -106,28 +107,19 @@ const createEvent = async () => {
await axios.delete( await axios.delete(
`Zones/${existsExclusion?.zoneFk}/exclusions/${existsExclusion?.id}`, `Zones/${existsExclusion?.zoneFk}/exclusions/${existsExclusion?.id}`,
); );
await refetchEvents();
hasDeletedEvent.value = true;
} }
const {
dated: formDated,
started,
ended,
type,
weekDays,
wdays,
} = eventInclusionFormData.value;
const payload = { delete eventInclusionFormData.value.id;
dated: formDated, if (isNew.value || hasDeletedEvent.value)
started, await axios.post(`Zones/${zoneId}/events`, eventInclusionFormData.value);
ended, else
type, await axios.put(
weekDays, `Zones/${zoneId}/events/${props.event?.id}`,
wdays, eventInclusionFormData.value,
}; );
hasDeletedEvent.value = false;
if (isNew.value || props.eventType === 'exclusion')
await axios.post(`Zones/${id}/events`, payload);
else await axios.put(`Zones/${id}/events/${props.event?.id}`, payload);
} }
quasar.notify({ quasar.notify({
message: t('globals.dataSaved'), message: t('globals.dataSaved'),