fix: refs #8217 update FormModel to use toRef for mapper and improve data handling

This commit is contained in:
Javier Segarra 2025-04-28 13:49:32 +02:00
parent a37dacbf57
commit 7ebbb5da9a
2 changed files with 15 additions and 2 deletions

View File

@ -1,6 +1,15 @@
<script setup>
import axios from 'axios';
import { onMounted, onUnmounted, computed, ref, watch, nextTick, useAttrs } from 'vue';
import {
onMounted,
onUnmounted,
computed,
ref,
watch,
nextTick,
useAttrs,
toRef,
} from 'vue';
import { onBeforeRouteLeave, useRouter, useRoute } from 'vue-router';
import { useI18n } from 'vue-i18n';
import { useQuasar } from 'quasar';
@ -140,6 +149,7 @@ const submitForm = async (evt) => {
await save(evt);
}
};
const mapper = toRef($props, 'mapper');
onMounted(async () => {
nextTick(() => (componentIsRendered.value = true));
@ -247,7 +257,9 @@ async function create() {
async function update() {
formData.value = trimData(formData.value);
const body = $props.mapper(originalData.value, formData.value);
const body = mapper.value
? mapper.value(originalData.value, formData.value)
: formData.value;
const url = $props.urlUpdate || $props.url || arrayData.store.url;
const response = await Promise.resolve(
$props.saveFn ? $props.saveFn(body) : axios.patch(url, body),

View File

@ -39,6 +39,7 @@ const entityId = computed(() => {
where: { itemFk: entityId },
}"
@on-fetch="(data) => (itemBotanicalsForm = data)"
:mapper="(_, data) => data"
>
<template #form="{ data }">
<VnRow>