refactor: refs #7869 merged changes with #8606
gitea/salix-front/pipeline/pr-dev This commit is unstable Details

This commit is contained in:
Jon Elias 2025-03-07 12:29:03 +01:00
parent 74692a6107
commit 268d723eb1
3 changed files with 52 additions and 27 deletions

View File

@ -83,7 +83,8 @@ const exclusionCreate = async () => {
const body = { const body = {
dated: dated.value, dated: dated.value,
}; };
for (const id of props.zoneIds) { const zoneIds = props.zoneIds?.length ? props.zoneIds : [route.params.id];
for (const id of zoneIds) {
const url = `Zones/${id}/exclusions`; const url = `Zones/${id}/exclusions`;
let today = moment(dated.value); let today = moment(dated.value);
let lastDay = today.clone().add(4, 'months').endOf('month'); let lastDay = today.clone().add(4, 'months').endOf('month');

View File

@ -3,6 +3,12 @@ import { ref, computed, onMounted } from 'vue';
import { useI18n } from 'vue-i18n'; import { useI18n } from 'vue-i18n';
import { useRoute } from 'vue-router'; import { useRoute } from 'vue-router';
import { useQuasar } from 'quasar'; import { useQuasar } from 'quasar';
import axios from 'axios';
import moment from 'moment';
import { useArrayData } from 'src/composables/useArrayData';
import { useWeekdayStore } from 'src/stores/useWeekdayStore';
import { useVnConfirm } from 'composables/useVnConfirm';
import VnRow from 'components/ui/VnRow.vue'; import VnRow from 'components/ui/VnRow.vue';
import FormPopup from 'components/FormPopup.vue'; import FormPopup from 'components/FormPopup.vue';
@ -10,10 +16,7 @@ import VnInputDate from 'src/components/common/VnInputDate.vue';
import VnWeekdayPicker from 'src/components/common/VnWeekdayPicker.vue'; import VnWeekdayPicker from 'src/components/common/VnWeekdayPicker.vue';
import VnInputTime from 'components/common/VnInputTime.vue'; import VnInputTime from 'components/common/VnInputTime.vue';
import VnInput from 'src/components/common/VnInput.vue'; import VnInput from 'src/components/common/VnInput.vue';
import { useArrayData } from 'src/composables/useArrayData'; import { toDateFormat } from 'src/filters/date';
import { useWeekdayStore } from 'src/stores/useWeekdayStore';
import { useVnConfirm } from 'composables/useVnConfirm';
import axios from 'axios';
const props = defineProps({ const props = defineProps({
date: { date: {
@ -79,6 +82,27 @@ 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 id of zoneIds) {
let today = moment(eventInclusionFormData.value.dated);
let lastDay = today.clone().add(4, 'months').endOf('month');
const { data } = await axios.get(`Zones/getEventsFiltered`, {
params: {
zoneFk: id,
started: today,
ended: lastDay,
},
});
const existsExclusion = data.exclusions.find(
(exclusion) =>
toDateFormat(exclusion.dated) ===
toDateFormat(eventInclusionFormData.value.dated),
);
if (existsExclusion) {
await axios.delete(
`Zones/${existsExclusion?.zoneFk}/exclusions/${existsExclusion?.id}`,
);
}
if (isNew.value) if (isNew.value)
await axios.post(`Zones/${id}/events`, eventInclusionFormData.value); await axios.post(`Zones/${id}/events`, eventInclusionFormData.value);
else else

View File

@ -213,6 +213,18 @@ const closeEventForm = () => {
</script> </script>
<template> <template>
<VnSection
:data-key="dataKey"
:columns="columns"
prefix="zone"
:array-data-props="{
url: 'Zones',
order: ['id ASC'],
userFilter: tableFilter,
exprBuilder,
}"
>
<template #body>
<VnSubToolbar> <VnSubToolbar>
<template #st-actions> <template #st-actions>
<QBtnGroup style="column-gap: 10px"> <QBtnGroup style="column-gap: 10px">
@ -235,18 +247,6 @@ const closeEventForm = () => {
</QBtnGroup> </QBtnGroup>
</template> </template>
</VnSubToolbar> </VnSubToolbar>
<VnSection
:data-key="dataKey"
:columns="columns"
prefix="zone"
:array-data-props="{
url: 'Zones',
order: ['id ASC'],
userFilter: tableFilter,
exprBuilder,
}"
>
<template #body>
<div class="table-container"> <div class="table-container">
<div class="column items-center"> <div class="column items-center">
<VnTable <VnTable