diff --git a/src/components/FormModel.vue b/src/components/FormModel.vue index c668769e5..733a7e3a0 100644 --- a/src/components/FormModel.vue +++ b/src/components/FormModel.vue @@ -131,7 +131,13 @@ onMounted(async () => { if (!$props.formInitialData) { if ($props.autoLoad && $props.url) await fetch(); - else if (arrayData.store.data) updateAndEmit('onFetch', arrayData.store.data); + else if (arrayData.store.data) + updateAndEmit( + 'onFetch', + Array.isArray(arrayData.store.data) + ? arrayData.store.data[0] + : arrayData.store.data + ); } if ($props.observeFormChanges) { watch( @@ -151,7 +157,10 @@ onMounted(async () => { if (!$props.url) watch( () => arrayData.store.data, - (val) => updateAndEmit('onFetch', val) + (val) => { + if (Array.isArray(val)) val = val[0] ?? {}; + updateAndEmit('onFetch', val); + } ); watch( diff --git a/src/components/common/VnCard.vue b/src/components/common/VnCard.vue index 504dd809f..c37b25675 100644 --- a/src/components/common/VnCard.vue +++ b/src/components/common/VnCard.vue @@ -47,17 +47,15 @@ onBeforeMount(async () => { } }); -if (!props.idInWhere) { - onBeforeRouteUpdate(async (to, from) => { - if (to.params.id !== from.params.id) { - arrayData.store.url = !regex.test(props.url) - ? `${props.url}/${to.params.id}` - : props.url.replace(regex, `/${to.params.id}`); +onBeforeRouteUpdate(async (to, from) => { + if (to.params.id !== from.params.id) { + arrayData.store.url = !regex.test(props.url) + ? `${props.url}/${to.params.id}` + : props.url.replace(regex, `/${to.params.id}`); - await arrayData.fetch({ append: false, updateRouter: false }); - } - }); -} + await arrayData.fetch({ append: false, updateRouter: false }); + } +});