#6942 improve invoiceIn #220

Merged
jorgep merged 63 commits from 6942-improveInvoceIn into dev 2024-05-29 07:03:46 +00:00
2 changed files with 16 additions and 20 deletions
Showing only changes of commit 3db3d04bc9 - Show all commits

View File

@ -115,18 +115,16 @@ onMounted(async () => {
// Podemos enviarle al form la estructura de data inicial sin necesidad de fetchearla
state.set($props.model, $props.formInitialData);
if ($props.autoLoad && !$props.formInitialData && $props.url) await fetch();
else if (arrayData.store.data) {
state.set($props.model, arrayData.store.data);
emit('onFetch', state.get($props.model));
}
if ($props.autoLoad && !$props.formInitialData && $props.url) await fetch();
else if (arrayData.store.data) updateAndEmit(arrayData.store.data, 'onFetch');
if ($props.observeFormChanges) {
watch(
() => formData.value,
(val) => {
hasChanges.value = !isResetting.value && val;
(newVal, oldVal) => {
if (!oldVal) return;
hasChanges.value = !isResetting.value && newVal;
isResetting.value = false;
},
Review

Para ver si hay cambios comparamos el obj actual con el original. Con la lógica anterior, no funcionaba bien si se usa una store, ya que al emitir este valor se 'actualiza'. Así se hace la comprobación correcta.

Para ver si hay cambios comparamos el obj actual con el original. Con la lógica anterior, no funcionaba bien si se usa una store, ya que al emitir este valor se 'actualiza'. Así se hace la comprobación correcta.
Review

Se podría poner el comentario en código?

Se podría poner el comentario en código?
Review

yo lo veo bien sin comentarios. lo que diga @jgallego

yo lo veo bien sin comentarios. lo que diga @jgallego
Review

Yo no pondría comentarios, pero si en otros sitios está implementado distinto yo lo cambiaría para que quien venga detrás coja siempre una buena implementación

Yo no pondría comentarios, pero si en otros sitios está implementado distinto yo lo cambiaría para que quien venga detrás coja siempre una buena implementación
{ deep: true }
@ -143,7 +141,7 @@ if (!$props.url)
watch(formUrl, async () => {
originalData.value = null;
reset();
Review

Agrupado con el resto de hooks.

Agrupado con el resto de hooks.
fetch();
await fetch();
});
onBeforeRouteLeave((to, from, next) => {
@ -161,10 +159,7 @@ onBeforeRouteLeave((to, from, next) => {
onUnmounted(() => {
// Restauramos los datos originales en el store si se realizaron cambios en el formulario pero no se guardaron, evitando modificaciones erróneas.
if (hasChanges.value) {
state.set($props.model, originalData.value);
return;
}
if (hasChanges.value) return state.set($props.model, originalData.value);
if ($props.clearStoreOnUnmount) state.unset($props.model);
});

View File

@ -15,10 +15,6 @@ const $props = defineProps({
type: Object,
default: null,
},
module: {
type: String,
required: true,
},
title: {
type: String,
default: '',
@ -29,7 +25,7 @@ const $props = defineProps({
},
dataKey: {
type: String,
default: '',
default: null,
},
summary: {
type: Object,
@ -40,7 +36,7 @@ const $props = defineProps({
const state = useState();
const { t } = useI18n();
const { viewSummary } = useSummaryDialog();
const arrayData = useArrayData($props.dataKey || $props.module, {
const arrayData = useArrayData($props.dataKey || 'descriptor', {
url: $props.url,
filter: $props.filter,
skip: 0,
@ -51,7 +47,7 @@ const isLoading = ref(false);
defineExpose({ getData });
onBeforeMount(async () => {
await getData();
if (!$props.dataKey) await getData();
watch(
() => [$props.url, $props.filter],
async () => await getData()
@ -93,7 +89,12 @@ const emit = defineEmits(['onFetch']);
{{ t('components.smartCard.openSummary') }}
</QTooltip>
</QBtn>
<RouterLink :to="{ name: `${module}Summary`, params: { id: entity.id } }">
<RouterLink
:to="{
name: `${$route.meta.moduleName}Summary`,
params: { id: entity.id },
}"
>
<QBtn
class="link"
color="white"