From f0f6a7e9a305e71be230ce3722f90a272c94df80 Mon Sep 17 00:00:00 2001 From: robert Date: Fri, 22 Nov 2024 14:10:46 +0100 Subject: [PATCH] feat: refs #6629 addressObservation --- .../components/CustomerAddressEdit.vue | 46 +++++++++++++++---- 1 file changed, 37 insertions(+), 9 deletions(-) diff --git a/src/pages/Customer/components/CustomerAddressEdit.vue b/src/pages/Customer/components/CustomerAddressEdit.vue index 0ea8315d6..af15962fa 100644 --- a/src/pages/Customer/components/CustomerAddressEdit.vue +++ b/src/pages/Customer/components/CustomerAddressEdit.vue @@ -2,7 +2,7 @@ import { onBeforeMount, ref } from 'vue'; import { useI18n } from 'vue-i18n'; import { useRoute, useRouter } from 'vue-router'; - +import { useQuasar } from 'quasar'; import axios from 'axios'; import VnLocation from 'src/components/common/VnLocation.vue'; import FetchData from 'components/FetchData.vue'; @@ -12,11 +12,12 @@ import VnInput from 'src/components/common/VnInput.vue'; import VnSelect from 'src/components/common/VnSelect.vue'; import VnSelectDialog from 'src/components/common/VnSelectDialog.vue'; import CustomerNewCustomsAgent from 'src/pages/Customer/components/CustomerNewCustomsAgent.vue'; +import VnConfirm from 'components/ui/VnConfirm.vue'; const { t } = useI18n(); const route = useRoute(); const router = useRouter(); - +const quasar = useQuasar(); const urlUpdate = ref(''); const agencyModes = ref([]); const incoterms = ref([]); @@ -27,7 +28,7 @@ let originalNotes = []; const deletes = ref([]); onBeforeMount(() => { - urlUpdate.value = `Clients/${route.params.id}/updateAddress/${route.params.addressId}`; + updateAddress(); }); const getData = async (observations) => { @@ -82,6 +83,14 @@ const deleteNote = (id, index) => { notes.value.splice(index, 1); }; +const updateAddress = () => { + urlUpdate.value = `Clients/${route.params.id}/updateAddress/${route.params.addressId}`; +}; +const resetAndSend = async (payload) => { + await axios.post('AddressObservations/crud', payload); + notes.value = []; + deletes.value = []; +}; const onDataSaved = async () => { let payload = { creates: notes.value.filter((note) => note.$isNew), @@ -100,11 +109,30 @@ const onDataSaved = async () => { where: { id: note.id }, })), }; - - await axios.post('AddressObservations/crud', payload); - notes.value = []; - deletes.value = []; - toCustomerAddress(); + if (payload.updates.length) { + quasar + .dialog({ + component: VnConfirm, + componentProps: { + title: t( + 'Do you also want to modify the states of all the tickets that are about to be served?' + ), + message: t('confirmDeletionMessage'), + }, + }) + .onOk(async () => { + resetAndSend(payload); + updateAddress(payload); + toCustomerAddress(); + }) + .onCancel(async () => { + resetAndSend(payload); + toCustomerAddress(); + }); + // .hide(toCustomerAddress); + } else { + resetAndSend(payload); + } }; const toCustomerAddress = () => { @@ -142,7 +170,7 @@ function handleLocation(data, location) { :observe-form-changes="false" :url-update="urlUpdate" :url="`Addresses/${route.params.addressId}`" - @on-data-saved="onDataSaved()" + @on-data-saved="onDataSaved" auto-load model="client" >