diff --git a/src/components/FormModel.vue b/src/components/FormModel.vue index c4d9a4149..663764ee6 100644 --- a/src/components/FormModel.vue +++ b/src/components/FormModel.vue @@ -69,7 +69,12 @@ const $props = defineProps({ }, mapper: { type: Function, - default: null, + default: (formData, originalData) => { + return getUpdatedValues( + Object.keys(getDifferences(formData, originalData)), + formData, + ); + }, }, clearStoreOnUnmount: { type: Boolean, @@ -221,9 +226,7 @@ async function save() { isLoading.value = true; try { formData.value = trimData(formData.value); - const body = $props.mapper - ? $props.mapper(formData.value, originalData.value) - : formData.value; + const body = $props.mapper(formData.value, originalData.value); const method = $props.urlCreate ? 'post' : 'patch'; const url = $props.urlCreate || $props.urlUpdate || $props.url || arrayData.store.url; @@ -289,12 +292,7 @@ function trimData(data) { } return data; } -function onBeforeSave(formData, originalData) { - return getUpdatedValues( - Object.keys(getDifferences(formData, originalData)), - formData, - ); -} + async function onKeyup(evt) { if (evt.key === 'Enter' && !('prevent-submit' in attrs)) { const input = evt.target; @@ -331,7 +329,7 @@ defineExpose({ class="q-pa-md" :style="maxWidth ? 'max-width: ' + maxWidth : ''" id="formModel" - :mapper="onBeforeSave" + :mapper="mapper" > - +