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