|
|
@@ -1,58 +1,68 @@
|
|
|
<template>
|
|
|
- <LayoutCommonSection>
|
|
|
- <v-row>
|
|
|
- <v-col cols="12" sm="12">
|
|
|
- <h4 class="mb-8">{{ $t('general_informations') }}</h4>
|
|
|
+ <LayoutCommonSection>
|
|
|
+ <v-row>
|
|
|
+ <v-col cols="12" sm="12">
|
|
|
+ <h4 class="mb-8">{{ $t('general_informations') }}</h4>
|
|
|
|
|
|
- <UiInputText
|
|
|
- v-model="entity.name"
|
|
|
- field="name"
|
|
|
- :rules="getAsserts('name')"
|
|
|
- />
|
|
|
+ <UiInputText
|
|
|
+ v-model="proxyEntity.name"
|
|
|
+ field="name"
|
|
|
+ :rules="getAsserts('name')"
|
|
|
+ />
|
|
|
|
|
|
- <span class="label">{{$t('datetimeStart')}}</span>
|
|
|
- <UiInputDateTimePicker
|
|
|
- v-model="entity.datetimeStart"
|
|
|
- field="datetimeStart"
|
|
|
- label="datetimeStart"
|
|
|
- :withTimePicker="true"
|
|
|
- class="my-2"
|
|
|
- :rules="getAsserts('datetimeStart')"
|
|
|
- validate-on-blur
|
|
|
- @update:model-value="onUpdateDateTimeStart(entity, $event)"
|
|
|
- />
|
|
|
+ <span class="label">{{ $t('datetimeStart') }}</span>
|
|
|
+ <UiInputDateTimePicker
|
|
|
+ :model-value="proxyEntity.datetimeStart"
|
|
|
+ field="datetimeStart"
|
|
|
+ label="datetimeStart"
|
|
|
+ :with-time-picker="true"
|
|
|
+ class="my-2"
|
|
|
+ :rules="getAsserts('datetimeStart')"
|
|
|
+ validate-on-blur
|
|
|
+ @update:model-value="onUpdateDateTimeStart(proxyEntity, $event)"
|
|
|
+ />
|
|
|
|
|
|
- <span class="label">{{$t('datetimeEnd')}}</span>
|
|
|
- <UiInputDateTimePicker
|
|
|
- v-model="entity.datetimeEnd"
|
|
|
- field="datetimeEnd"
|
|
|
- label="datetimeEnd"
|
|
|
- :withTimePicker="true"
|
|
|
- class="my-2"
|
|
|
- :rules="getAsserts('datetimeEnd')"
|
|
|
- @update:model-value="onUpdateDateTimeEnd(entity, $event)"
|
|
|
- />
|
|
|
+ <span class="label">{{ $t('datetimeEnd') }}</span>
|
|
|
+ <UiInputDateTimePicker
|
|
|
+ :model-value="proxyEntity.datetimeEnd"
|
|
|
+ field="datetimeEnd"
|
|
|
+ label="datetimeEnd"
|
|
|
+ :with-time-picker="true"
|
|
|
+ class="my-2"
|
|
|
+ :rules="getAsserts('datetimeEnd')"
|
|
|
+ @update:model-value="onUpdateDateTimeEnd(proxyEntity, $event)"
|
|
|
+ />
|
|
|
|
|
|
- <span class="label">{{$t('description')}}</span>
|
|
|
- <UiInputTextArea
|
|
|
- class="mt-3"
|
|
|
- v-model="entity.description"
|
|
|
- />
|
|
|
+ <span class="label">{{ $t('description') }}</span>
|
|
|
+ <UiInputTextArea v-model="proxyEntity.description" class="mt-3" />
|
|
|
|
|
|
- <UiInputTreeSelectEventCategories
|
|
|
- v-model="entity.categories"
|
|
|
- label="event_categories_choices"
|
|
|
- />
|
|
|
+ <UiInputAutocompleteApiResources
|
|
|
+ v-model="proxyEntity.gender"
|
|
|
+ field="gender"
|
|
|
+ label="gender_event"
|
|
|
+ :model="EventGender"
|
|
|
+ list-value="id"
|
|
|
+ list-label="name"
|
|
|
+ :rules="getAsserts('gender')"
|
|
|
+ :pagination="false"
|
|
|
+ :api-filters="queryConditions"
|
|
|
+ />
|
|
|
|
|
|
- <UiInputImage
|
|
|
- v-model="entity.image"
|
|
|
- field="image"
|
|
|
- :width="240"
|
|
|
- :cropping-enabled="true"
|
|
|
- />
|
|
|
- </v-col>
|
|
|
- </v-row>
|
|
|
- </LayoutCommonSection>
|
|
|
+ <UiInputTreeSelectEventCategories
|
|
|
+ v-model="proxyEntity.categories"
|
|
|
+ label="event_categories_choices"
|
|
|
+ />
|
|
|
+
|
|
|
+ <UiInputImage
|
|
|
+ v-model="proxyEntity.image"
|
|
|
+ field="image"
|
|
|
+ label="event_image"
|
|
|
+ :width="240"
|
|
|
+ :cropping-enabled="true"
|
|
|
+ />
|
|
|
+ </v-col>
|
|
|
+ </v-row>
|
|
|
+ </LayoutCommonSection>
|
|
|
|
|
|
<LayoutCommonSection>
|
|
|
<v-row>
|
|
|
@@ -60,158 +70,233 @@
|
|
|
<h4 class="mb-8">{{ $t('place_event') }}</h4>
|
|
|
|
|
|
<UiInputAutocompleteApiResources
|
|
|
- v-model="entity.place"
|
|
|
+ v-if="!newPlace"
|
|
|
+ v-model="proxyEntity.place"
|
|
|
field="place"
|
|
|
:model="PlaceSearchItem"
|
|
|
- listValue="id"
|
|
|
- listLabel="name"
|
|
|
- v-if="!newPlace"
|
|
|
- @update:model-value="getPlace(entity)"
|
|
|
+ list-value="id"
|
|
|
+ list-label="name"
|
|
|
+ @update:model-value="getPlace(proxyEntity)"
|
|
|
/>
|
|
|
|
|
|
- <v-row v-if="!newPlace" class="mb-6 justify-center">
|
|
|
+ <v-row class="mb-6 justify-center">
|
|
|
<v-col
|
|
|
- v-if="entity.place && !editPlace"
|
|
|
+ v-if="newPlace"
|
|
|
cols="12"
|
|
|
sm="6"
|
|
|
class="d-flex justify-center mb-2"
|
|
|
>
|
|
|
- <v-btn
|
|
|
- prepend-icon="fa-solid fa-pencil"
|
|
|
- @click="onEditPlaceClick(entity)"
|
|
|
- >
|
|
|
- {{ $t('edit_place') }}
|
|
|
- </v-btn>
|
|
|
+ <v-btn
|
|
|
+ prepend-icon="fa-solid fa-cancel"
|
|
|
+ @click="onCancelPlaceClick(proxyEntity)"
|
|
|
+ >
|
|
|
+ {{ $t('cancel') }}
|
|
|
+ </v-btn>
|
|
|
</v-col>
|
|
|
|
|
|
<v-col
|
|
|
+ v-if="proxyEntity.place && !editPlace"
|
|
|
+ cols="12"
|
|
|
+ sm="6"
|
|
|
+ class="d-flex justify-center mb-2"
|
|
|
+ >
|
|
|
+ <v-btn
|
|
|
+ prepend-icon="fa-solid fa-pencil"
|
|
|
+ @click="onEditPlaceClick(proxyEntity)"
|
|
|
+ >
|
|
|
+ {{ $t('edit_place') }}
|
|
|
+ </v-btn>
|
|
|
+ </v-col>
|
|
|
+
|
|
|
+ <v-col
|
|
|
+ v-if="!newPlace"
|
|
|
cols="12"
|
|
|
sm="6"
|
|
|
class="d-flex justify-center mb-2"
|
|
|
>
|
|
|
<v-btn
|
|
|
prepend-icon="fa-solid fa-plus"
|
|
|
- @click="onAddPlaceClick(entity)"
|
|
|
+ @click="onAddPlaceClick(proxyEntity)"
|
|
|
>
|
|
|
{{ $t('add_place') }}
|
|
|
</v-btn>
|
|
|
</v-col>
|
|
|
-
|
|
|
</v-row>
|
|
|
|
|
|
+ <div v-if="newPlace || editPlace">
|
|
|
+ <UiInputText
|
|
|
+ v-model="proxyEntity.placeName"
|
|
|
+ :readonly="!newPlace && !editPlace"
|
|
|
+ field="placeName"
|
|
|
+ />
|
|
|
|
|
|
+ <UiInputText
|
|
|
+ v-model="proxyEntity.streetAddress"
|
|
|
+ :readonly="!newPlace && !editPlace"
|
|
|
+ field="streetAddress"
|
|
|
+ />
|
|
|
|
|
|
- <UiInputText :readonly="!newPlace && !editPlace" v-model="entity.placeName" field="placeName" />
|
|
|
-
|
|
|
- <UiInputText :readonly="!newPlace && !editPlace" v-model="entity.streetAddress" field="streetAddress" />
|
|
|
-
|
|
|
- <UiInputText :readonly="!newPlace && !editPlace" v-model="entity.streetAddressSecond" field="streetAddressSecond" />
|
|
|
-
|
|
|
- <UiInputText :readonly="!newPlace && !editPlace" v-model="entity.streetAddressThird" field="streetAddressThird" />
|
|
|
+ <UiInputText
|
|
|
+ v-model="proxyEntity.streetAddressSecond"
|
|
|
+ :readonly="!newPlace && !editPlace"
|
|
|
+ field="streetAddressSecond"
|
|
|
+ />
|
|
|
|
|
|
- <UiInputText :readonly="!newPlace && !editPlace" v-model="entity.postalCode" field="postalCode" />
|
|
|
+ <UiInputText
|
|
|
+ v-model="proxyEntity.streetAddressThird"
|
|
|
+ :readonly="!newPlace && !editPlace"
|
|
|
+ field="streetAddressThird"
|
|
|
+ />
|
|
|
|
|
|
- <UiInputText :readonly="!newPlace && !editPlace" v-model="entity.addressCity" field="addressCity" />
|
|
|
+ <UiInputText
|
|
|
+ v-model="proxyEntity.postalCode"
|
|
|
+ :readonly="!newPlace && !editPlace"
|
|
|
+ field="postalCode"
|
|
|
+ />
|
|
|
|
|
|
- <UiInputAutocompleteApiResources
|
|
|
- :readonly="!newPlace && !editPlace"
|
|
|
- v-model="entity.addressCountry"
|
|
|
- field="addressCountry"
|
|
|
- :model="Country"
|
|
|
- listValue="id"
|
|
|
- listLabel="name"
|
|
|
- />
|
|
|
+ <UiInputText
|
|
|
+ v-model="proxyEntity.addressCity"
|
|
|
+ :readonly="!newPlace && !editPlace"
|
|
|
+ field="addressCity"
|
|
|
+ />
|
|
|
|
|
|
- <client-only>
|
|
|
- <UiMapLeaflet
|
|
|
+ <UiInputAutocompleteApiResources
|
|
|
+ v-model="proxyEntity.addressCountry"
|
|
|
:readonly="!newPlace && !editPlace"
|
|
|
- v-model:latitude="entity.latitude"
|
|
|
- v-model:longitude="entity.longitude"
|
|
|
- :streetAddress="entity.streetAddress"
|
|
|
- :streetAddressSecond="entity.streetAddressSecond"
|
|
|
- :streetAddressThird="entity.streetAddressThird"
|
|
|
- :postalCode="entity.postalCode"
|
|
|
- :addressCity="entity.addressCity"
|
|
|
- :addressCountryId="entity.addressCountry"
|
|
|
- :searchButton="true"
|
|
|
- ></UiMapLeaflet>
|
|
|
- </client-only>
|
|
|
+ field="addressCountry"
|
|
|
+ :model="Country"
|
|
|
+ list-value="id"
|
|
|
+ list-label="name"
|
|
|
+ />
|
|
|
|
|
|
+ <client-only>
|
|
|
+ <UiMapLeaflet
|
|
|
+ v-model:latitude="proxyEntity.latitude"
|
|
|
+ v-model:longitude="proxyEntity.longitude"
|
|
|
+ :readonly="!newPlace && !editPlace"
|
|
|
+ :street-address="proxyEntity.streetAddress"
|
|
|
+ :street-address-second="proxyEntity.streetAddressSecond"
|
|
|
+ :street-address-third="proxyEntity.streetAddressThird"
|
|
|
+ :postal-code="proxyEntity.postalCode"
|
|
|
+ :address-city="proxyEntity.addressCity"
|
|
|
+ :address-country-id="proxyEntity.addressCountry"
|
|
|
+ :search-button="true"
|
|
|
+ ></UiMapLeaflet>
|
|
|
+ </client-only>
|
|
|
+ </div>
|
|
|
</v-col>
|
|
|
</v-row>
|
|
|
</LayoutCommonSection>
|
|
|
|
|
|
- <LayoutCommonSection>
|
|
|
- <v-row>
|
|
|
- <v-col cols="12">
|
|
|
+ <LayoutCommonSection>
|
|
|
+ <v-row>
|
|
|
+ <v-col cols="12">
|
|
|
+ <h4 class="mb-8">{{ $t('communication_params') }}</h4>
|
|
|
+
|
|
|
+ <UiInputText
|
|
|
+ v-model="proxyEntity.url"
|
|
|
+ field="url"
|
|
|
+ :rules="getAsserts('url')"
|
|
|
+ />
|
|
|
|
|
|
- <h4 class="mb-8">{{ $t('communication_params') }}</h4>
|
|
|
+ <UiInputAutocompleteEnum
|
|
|
+ v-model="proxyEntity.pricing"
|
|
|
+ enum-name="pricing_event"
|
|
|
+ field="pricing"
|
|
|
+ />
|
|
|
|
|
|
- <UiInputText v-model="entity.url" field="url" />
|
|
|
+ <UiInputText
|
|
|
+ v-if="proxyEntity.pricing === 'PAID'"
|
|
|
+ v-model="proxyEntity.urlTicket"
|
|
|
+ :rules="getAsserts('urlTicket')"
|
|
|
+ field="urlTicket"
|
|
|
+ />
|
|
|
|
|
|
- <UiInputAutocompleteEnum
|
|
|
- v-model="entity.pricing"
|
|
|
- enum-name="pricing_event"
|
|
|
- field="pricing"
|
|
|
- />
|
|
|
+ <UiInputNumber
|
|
|
+ v-if="proxyEntity.pricing === 'PAID'"
|
|
|
+ v-model="proxyEntity.priceMini"
|
|
|
+ field="priceMini"
|
|
|
+ :rules="getAsserts('priceMini')"
|
|
|
+ />
|
|
|
|
|
|
- <UiInputText v-if="entity.pricing==='PAID'" v-model="entity.urlTicket" field="urlTicket" />
|
|
|
-
|
|
|
- <UiInputNumber v-if="entity.pricing==='PAID'" v-model="entity.priceMini" field="priceMini" />
|
|
|
-
|
|
|
- <UiInputNumber v-if="entity.pricing==='PAID'" v-model="entity.priceMaxi" field="priceMaxi" />
|
|
|
-
|
|
|
- </v-col>
|
|
|
- </v-row>
|
|
|
- </LayoutCommonSection>
|
|
|
-
|
|
|
- <LazyLayoutDialog :show="showAlert" theme="warning">
|
|
|
- <template #dialogType>{{ $t('important') }}</template>
|
|
|
- <template #dialogTitle>{{ $t('place_change_everywhere') }}</template>
|
|
|
- <template #dialogText>
|
|
|
- <v-card-text class="text">
|
|
|
- <p>
|
|
|
- {{$t('warning_edit_place')}}
|
|
|
- </p>
|
|
|
- </v-card-text>
|
|
|
- </template>
|
|
|
- <template #dialogBtn>
|
|
|
- <v-btn class="mr-4 submitBtn theme-neutral-strong" @click="closeDialog">
|
|
|
- {{ $t('cancel') }}
|
|
|
- </v-btn>
|
|
|
- <v-btn class="mr-4 submitBtn theme-warning" @click="onEditPlaceConfirm">
|
|
|
- {{ $t('i_understand') }}
|
|
|
- </v-btn>
|
|
|
- </template>
|
|
|
- </LazyLayoutDialog>
|
|
|
+ <UiInputNumber
|
|
|
+ v-if="proxyEntity.pricing === 'PAID'"
|
|
|
+ v-model="proxyEntity.priceMaxi"
|
|
|
+ field="priceMaxi"
|
|
|
+ :rules="getAsserts('priceMaxi')"
|
|
|
+ />
|
|
|
+ </v-col>
|
|
|
+ </v-row>
|
|
|
+ </LayoutCommonSection>
|
|
|
+
|
|
|
+ <LazyLayoutDialog :show="showAlert" theme="warning">
|
|
|
+ <template #dialogType>{{ $t('important') }}</template>
|
|
|
+ <template #dialogTitle>{{ $t('place_change_everywhere') }}</template>
|
|
|
+ <template #dialogText>
|
|
|
+ <v-card-text class="text">
|
|
|
+ <p>
|
|
|
+ {{ $t('warning_edit_place') }}
|
|
|
+ </p>
|
|
|
+ <br />
|
|
|
+ <p>
|
|
|
+ {{ $t('are_you_sure_to_process') }}
|
|
|
+ </p>
|
|
|
+ </v-card-text>
|
|
|
+ </template>
|
|
|
+ <template #dialogBtn>
|
|
|
+ <v-btn class="mr-4 submitBtn theme-neutral-strong" @click="closeDialog">
|
|
|
+ {{ $t('cancel') }}
|
|
|
+ </v-btn>
|
|
|
+ <v-btn class="mr-4 submitBtn theme-warning" @click="onEditPlaceConfirm">
|
|
|
+ {{ $t('i_understand') }}
|
|
|
+ </v-btn>
|
|
|
+ </template>
|
|
|
+ </LazyLayoutDialog>
|
|
|
</template>
|
|
|
|
|
|
<script setup lang="ts">
|
|
|
-import Event from "~/models/Freemium/Event";
|
|
|
-import Place from "~/models/Freemium/Place";
|
|
|
-import {getAssertUtils} from "~/services/asserts/getAssertUtils";
|
|
|
-import DateUtils from "~/services/utils/dateUtils";
|
|
|
-import Country from "~/models/Core/Country";
|
|
|
-import PlaceSearchItem from "~/models/Custom/Search/PlaceSearchItem";
|
|
|
-import {useEntityManager} from "~/composables/data/useEntityManager";
|
|
|
+import Event from '~/models/Freemium/Event'
|
|
|
+import Place from '~/models/Freemium/Place'
|
|
|
+import { getAssertUtils } from '~/services/asserts/getAssertUtils'
|
|
|
+import DateUtils from '~/services/utils/dateUtils'
|
|
|
+import Country from '~/models/Core/Country'
|
|
|
+import PlaceSearchItem from '~/models/Custom/Search/PlaceSearchItem'
|
|
|
+import { useEntityManager } from '~/composables/data/useEntityManager'
|
|
|
+import EventGender from '~/models/Booking/EventGender'
|
|
|
+import EqualFilter from '~/services/data/Filters/EqualFilter'
|
|
|
|
|
|
const props = defineProps<{
|
|
|
entity: Event
|
|
|
}>()
|
|
|
|
|
|
-const {em} = useEntityManager()
|
|
|
+const { em } = useEntityManager()
|
|
|
const getAsserts = (key) => getAssertUtils(Event.getAsserts(), key)
|
|
|
|
|
|
+const emit = defineEmits(['update:entity'])
|
|
|
+
|
|
|
+// Pour éviter l'erreur eslint "Unexpected mutation of "modelValue" prop"
|
|
|
+const proxyEntity = computed({
|
|
|
+ get: () => props.entity,
|
|
|
+ set: (value) => emit('update:entity', value),
|
|
|
+})
|
|
|
+
|
|
|
+const queryConditions = [new EqualFilter('type', 'CULTURAL_EVENT')]
|
|
|
+
|
|
|
/**
|
|
|
* Si la date de début est mise à jour, on s'assure que la date de fin est
|
|
|
* après elle, sinon elle devient égale
|
|
|
* @param entity
|
|
|
* @param dateTime
|
|
|
*/
|
|
|
-const onUpdateDateTimeStart = (entity, dateTime) =>{
|
|
|
- if(DateUtils.isBefore(props.entity.datetimeEnd, dateTime, false)){
|
|
|
- entity.datetimeEnd = dateTime
|
|
|
+const onUpdateDateTimeStart = (entity, dateTime) => {
|
|
|
+ if (DateUtils.isBefore(props.entity.datetimeEnd, dateTime, false)) {
|
|
|
+ const dateTimeEnd = new Date(dateTime)
|
|
|
+ // Ajouter 1h
|
|
|
+ dateTimeEnd.setHours(dateTimeEnd.getHours() + 1)
|
|
|
+ entity.datetimeEnd = DateUtils.toIsoUtcOffset(dateTimeEnd)
|
|
|
}
|
|
|
+ entity.datetimeStart = dateTime
|
|
|
+ emit('update:entity', entity)
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
@@ -220,10 +305,15 @@ const onUpdateDateTimeStart = (entity, dateTime) =>{
|
|
|
* @param entity
|
|
|
* @param dateTime
|
|
|
*/
|
|
|
-const onUpdateDateTimeEnd = (entity, dateTime) =>{
|
|
|
- if(DateUtils.isBefore(dateTime, props.entity.datetimeStart, false)){
|
|
|
- entity.datetimeStart = dateTime
|
|
|
+const onUpdateDateTimeEnd = (entity, dateTime) => {
|
|
|
+ if (DateUtils.isBefore(dateTime, props.entity.datetimeStart, false)) {
|
|
|
+ const dateTimeStart = new Date(dateTime)
|
|
|
+ // Retirer 1h
|
|
|
+ dateTimeStart.setHours(dateTimeStart.getHours() - 1)
|
|
|
+ entity.datetimeStart = DateUtils.toIsoUtcOffset(dateTimeStart)
|
|
|
}
|
|
|
+ entity.datetimeEnd = dateTime
|
|
|
+ emit('update:entity', entity)
|
|
|
}
|
|
|
|
|
|
const showAlert: Ref<boolean> = ref(false)
|
|
|
@@ -231,45 +321,51 @@ const newPlace: Ref<boolean> = ref(false)
|
|
|
const editPlace: Ref<boolean> = ref(false)
|
|
|
|
|
|
/**
|
|
|
- * Si on clic sur le bouton "Ajouter un lieu", le choix dans la liste déroulante
|
|
|
+ * Si on clique sur le bouton "Ajouter un lieu", le choix dans la liste déroulante
|
|
|
* est mise à nulle, et les champs input de l'adresse sont vidées
|
|
|
* @param entity
|
|
|
*/
|
|
|
-const onAddPlaceClick = function(entity: Event){
|
|
|
+const onAddPlaceClick = function (entity: Event) {
|
|
|
newPlace.value = true
|
|
|
entity.place = null
|
|
|
resetPlace(entity)
|
|
|
}
|
|
|
|
|
|
+const onCancelPlaceClick = function (entity: Event) {
|
|
|
+ newPlace.value = false
|
|
|
+ entity.place = null
|
|
|
+ resetPlace(entity)
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
- * Quand on clic sur le bouton "Editer le lieu", une alerte s'affiche
|
|
|
+ * Quand on clique sur le bouton "Editer le lieu", une alerte s'affiche.
|
|
|
*/
|
|
|
-const onEditPlaceClick = function(){
|
|
|
+const onEditPlaceClick = function () {
|
|
|
showAlert.value = true
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Quand on ferme la boite de dialogue
|
|
|
*/
|
|
|
-const closeDialog = function(){
|
|
|
+const closeDialog = function () {
|
|
|
showAlert.value = false
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* Si on décide d'éditer le lieu
|
|
|
*/
|
|
|
-const onEditPlaceConfirm = function(){
|
|
|
+const onEditPlaceConfirm = function () {
|
|
|
showAlert.value = false
|
|
|
editPlace.value = true
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * Lorsque l'on choisit un lieu dans la liste déroulante, on mets a jour les champs
|
|
|
+ * Lorsque l'on choisit un lieu dans la liste déroulante, on met à jour les champs
|
|
|
* input de l'adresse
|
|
|
* @param entity
|
|
|
*/
|
|
|
-const getPlace = async (entity: Event)=>{
|
|
|
- if(entity.place){
|
|
|
+const getPlace = async (entity: Event) => {
|
|
|
+ if (entity.place) {
|
|
|
const placeInstance = await em.fetch(Place, entity.place as number)
|
|
|
entity.placeName = placeInstance.name
|
|
|
entity.streetAddress = placeInstance.streetAddress
|
|
|
@@ -281,17 +377,19 @@ const getPlace = async (entity: Event)=>{
|
|
|
entity.latitude = placeInstance.latitude
|
|
|
entity.longitude = placeInstance.longitude
|
|
|
editPlace.value = false
|
|
|
- }else{
|
|
|
- //Dans le cas où l'on ne récupère aucune place on remet a null le formulaire de l'adresse
|
|
|
+ } else {
|
|
|
+ // Dans le cas où l'on ne récupère aucune place on remet à null le formulaire de l'adresse
|
|
|
resetPlace(entity)
|
|
|
}
|
|
|
+
|
|
|
+ emit('update:entity', entity)
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* fonction permettant de remettre à vide tous les champs input de l'adresse
|
|
|
* @param entity
|
|
|
*/
|
|
|
-const resetPlace = (entity: Event)=>{
|
|
|
+const resetPlace = (entity: Event) => {
|
|
|
entity.placeName = null
|
|
|
entity.streetAddress = null
|
|
|
entity.streetAddressSecond = null
|
|
|
@@ -306,7 +404,7 @@ const resetPlace = (entity: Event)=>{
|
|
|
// Nettoyer les données lors du démontage du composant
|
|
|
onBeforeUnmount(() => {
|
|
|
// Nettoyer les références du store si nécessaire
|
|
|
- if (process.client) {
|
|
|
+ if (import.meta.client) {
|
|
|
clearNuxtData('/^' + Place.entity + '_/')
|
|
|
useRepo(Place).flush()
|
|
|
}
|
|
|
@@ -314,8 +412,8 @@ onBeforeUnmount(() => {
|
|
|
</script>
|
|
|
|
|
|
<style scoped lang="scss">
|
|
|
- .label{
|
|
|
- font-size: 16px;
|
|
|
- color: rgb(var(--v-theme-on-primary-alt));
|
|
|
- }
|
|
|
+.label {
|
|
|
+ font-size: 16px;
|
|
|
+ color: rgb(var(--v-theme-on-primary-alt));
|
|
|
+}
|
|
|
</style>
|