From 4641adbae3c4b8604006e18a8c268f8ad70cc61f Mon Sep 17 00:00:00 2001 From: Javier Segarra <jsegarra@verdnatura.es> Date: Wed, 5 Mar 2025 23:20:23 +0100 Subject: [PATCH] feat: refs #8725 init --- src/components/FormModel.vue | 15 +++++++++++++-- src/components/FormModelPopup.vue | 5 +++-- src/pages/Customer/Card/CustomerFiscalData.vue | 2 ++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/components/FormModel.vue b/src/components/FormModel.vue index c4d9a4149..b36f0998e 100644 --- a/src/components/FormModel.vue +++ b/src/components/FormModel.vue @@ -119,7 +119,9 @@ const defaultButtons = computed(() => ({ color: 'primary', icon: 'save', label: 'globals.save', - click: async () => await save(), + click: async () => { + submitForm(); + }, type: 'submit', }, reset: { @@ -132,6 +134,14 @@ const defaultButtons = computed(() => ({ ...$props.defaultButtons, })); +const submitForm = () => { + myForm.value.validate().then((success) => { + if (success) { + save(); + } + }); +}; + onMounted(async () => { nextTick(() => (componentIsRendered.value = true)); @@ -312,6 +322,7 @@ async function onKeyup(evt) { } defineExpose({ + myForm, save, isLoading, hasChanges, @@ -325,7 +336,7 @@ defineExpose({ <QForm ref="myForm" v-if="formData" - @submit.prevent + @submit.prevent="save" @keyup.prevent="onKeyup" @reset="reset" class="q-pa-md" diff --git a/src/components/FormModelPopup.vue b/src/components/FormModelPopup.vue index 85943e91e..c6d901b23 100644 --- a/src/components/FormModelPopup.vue +++ b/src/components/FormModelPopup.vue @@ -43,7 +43,7 @@ const onDataSaved = async (formData, requestResponse) => { const onClick = async (saveAndContinue) => { isSaveAndContinue.value = saveAndContinue; - await formModelRef.value.save(); + formModelRef.value.myForm.submit(); }; defineExpose({ @@ -61,6 +61,7 @@ defineExpose({ :default-actions="false" v-bind="$attrs" @on-data-saved="onDataSaved" + @submit.prevent > <template #form="{ data, validate }"> <span ref="closeButton" class="close-icon" v-close-popup> @@ -87,7 +88,7 @@ defineExpose({ :flat="showSaveAndContinueBtn" :label="t('globals.save')" :title="t('globals.save')" - @click="onClick(false)" + type="submit" color="primary" class="q-ml-sm" :disabled="isLoading" diff --git a/src/pages/Customer/Card/CustomerFiscalData.vue b/src/pages/Customer/Card/CustomerFiscalData.vue index 93909eb9c..d3f1f937a 100644 --- a/src/pages/Customer/Card/CustomerFiscalData.vue +++ b/src/pages/Customer/Card/CustomerFiscalData.vue @@ -112,6 +112,7 @@ async function acceptPropagate({ isEqualizated }) { v-model="data.sageTaxTypeFk" data-cy="sageTaxTypeFk" :required="data.isTaxDataChecked" + :rules="[(val) => val !== null || 'Please type your age']" /> <VnSelect :label="t('Sage transaction type')" @@ -122,6 +123,7 @@ async function acceptPropagate({ isEqualizated }) { data-cy="sageTransactionTypeFk" v-model="data.sageTransactionTypeFk" :required="data.isTaxDataChecked" + :rules="[(val) => val !== null || 'Please type your age']" > <template #option="scope"> <QItem v-bind="scope.itemProps">