refactor: refs #7701 make FormModel only read from url and deleted useless code
gitea/salix-front/pipeline/pr-dev There was a failure building this commit Details

This commit is contained in:
Jon Elias 2025-05-14 15:56:52 +02:00
parent 5d4479309f
commit e4a0dae5b1
5 changed files with 14 additions and 34 deletions

View File

@ -103,9 +103,9 @@ const $props = defineProps({
type: Boolean,
default: false,
},
searchUrl: {
formUrl: {
type: [String, Boolean],
default: 'form',
default: 'createForm',
},
});
const emit = defineEmits(['onFetch', 'onDataSaved', 'submit']);
@ -118,7 +118,10 @@ const isLoading = ref(false);
// Si elegimos observar los cambios del form significa que inicialmente las actions estaran deshabilitadas
const isResetting = ref(false);
const hasChanges = ref(!$props.observeFormChanges);
const originalData = computed(() => state.get(modelValue));
let urlData = {};
const originalData = computed(() => {
return { ...urlData, ...state.get(modelValue) };
});
const formData = ref();
const defaultButtons = computed(() => ({
save: {
@ -146,13 +149,14 @@ const submitForm = async (evt) => {
}
};
function getUrlData() {
urlData = $props.formUrl
? JSON.parse(route?.query[$props.formUrl] ?? '{}')
: undefined;
}
onMounted(async () => {
const urlInitalData =
$props.searchUrl && JSON.parse(route?.query[$props.searchUrl] ?? '{}');
// asignar de nuevo a originalData genera un warning por lo que fallarán todos los test de front que usen FormModel
// originalData.value = JSON.parse(
// JSON.stringify(urlInitalData ?? $props.formInitialData ?? {}),
// );
getUrlData();
nextTick(() => (componentIsRendered.value = true));
// Podemos enviarle al form la estructura de data inicial sin necesidad de fetchearla
@ -201,23 +205,6 @@ watch(
},
);
// watch(
// () => formData.value,
// async (newData, oldData) => {
// if (!newData || !Object.keys(newData).length) return;
// if (!$props.searchUrl) return;
// const urlParams = JSON.stringify(newData);
// await nextTick();
// router.replace({
// query: {
// ...route.query,
// createForm: urlParams,
// },
// });
// },
// { deep: true },
// );
onBeforeRouteLeave((to, from, next) => {
if (hasChanges.value && $props.observeFormChanges)
quasar.dialog({

View File

@ -227,7 +227,7 @@ onMounted(async () => {
.map((c) => c.name),
...['tableActions'],
];
createForm.value = $props.create;
if ($props.create && route?.query?.createForm) showForm.value = true;
});
onUnmounted(async () => {

View File

@ -10,9 +10,6 @@ const { t } = useI18n();
const emit = defineEmits(['onDataSaved']);
const genusInputRef = ref(null);
const genusFormData = reactive({
name: 'test',
});
const onDataSaved = (formData, requestResponse) => {
emit('onDataSaved', formData, requestResponse);
@ -29,7 +26,6 @@ onMounted(async () => {
url-create="genera"
model="itemGenus"
:title="t('New genus')"
:form-initial-data="genusFormData"
@on-data-saved="onDataSaved"
>
<template #form-inputs="{ data }">

View File

@ -10,7 +10,6 @@ const { t } = useI18n();
const emit = defineEmits(['onDataSaved']);
const specieInputRef = ref(null);
const specieFormData = reactive({});
const onDataSaved = (formData, requestResponse) => {
emit('onDataSaved', formData, requestResponse);
@ -27,7 +26,6 @@ onMounted(async () => {
url-create="species"
model="itemSpecie"
:title="t('New species')"
:form-initial-data="specieFormData"
@on-data-saved="onDataSaved"
>
<template #form-inputs="{ data }">

View File

@ -4,7 +4,6 @@ describe('Client web-access', () => {
cy.viewport(1280, 720);
cy.login('developer');
});
it('Should test buttons ', () => {
cy.visit('#/customer/1101/web-access');
cy.get('.q-page').should('be.visible');