From b543cd1aa079a5f0dd17628c4c32f74f0a40e258 Mon Sep 17 00:00:00 2001 From: esteban Date: Tue, 28 Jul 2026 08:54:03 -0500 Subject: [PATCH] abc fate picker --- src/components/forms/DynamicForm.vue | 70 +++++++++++++++++++++++----- 1 file changed, 59 insertions(+), 11 deletions(-) diff --git a/src/components/forms/DynamicForm.vue b/src/components/forms/DynamicForm.vue index 174b559..8c05719 100644 --- a/src/components/forms/DynamicForm.vue +++ b/src/components/forms/DynamicForm.vue @@ -52,8 +52,19 @@ const fieldHelp = (key) => { const stepErrors = reactive({}); const formatErrors = reactive({}); const phoneParts = reactive({}); +const dateParts = reactive({}); const triedToProceed = ref(false); +const months = [ + "Enero", "Febrero", "Marzo", "Abril", "Mayo", "Junio", + "Julio", "Agosto", "Septiembre", "Octubre", "Noviembre", "Diciembre" +]; + +const years = (() => { + const y = new Date().getFullYear(); + return Array.from({ length: 101 }, (_, i) => y - i); +})(); + const remainingRequired = computed(() => { const step = config.value?.steps?.[currentStep.value]; if (!step) return 0; @@ -97,6 +108,9 @@ const fetchConfig = async () => { step.fields.forEach((field) => { if (field.type === "checkbox") { formData[field.key] = []; + } else if (field.type === "date") { + formData[field.key] = ""; + dateParts[field.key] = { day: null, month: null, year: null }; } else if (field.type === "phone_country") { formData[field.key] = ""; phoneParts[field.key] = { code: "", number: "", flag: "" }; @@ -347,6 +361,20 @@ const handleSubmit = async () => { const getFieldError = (key) => stepErrors[key] || false; +const composeDate = (key) => { + const parts = dateParts[key]; + if (!parts) return; + const d = parts.day; + const m = parts.month; + const y = parts.year; + if (d && m && y) { + formData[key] = `${y}-${String(m).padStart(2, "0")}-${String(d).padStart(2, "0")}`; + } else { + formData[key] = ""; + } + stepErrors[key] = false; +}; + const onPhoneInput = (key, event) => { const cleaned = event.target.value.replace(/\D/g, ""); formData[key] = cleaned; @@ -651,19 +679,39 @@ const getFieldInputType = (field) => { /> - + + + +