diff --git a/nuxt4/app/components/cata/ModalAsignacionRapida.vue b/nuxt4/app/components/cata/ModalAsignacionRapida.vue index caa5dc5..f9e4196 100644 --- a/nuxt4/app/components/cata/ModalAsignacionRapida.vue +++ b/nuxt4/app/components/cata/ModalAsignacionRapida.vue @@ -28,15 +28,15 @@ - @@ -45,15 +45,16 @@ - @@ -203,8 +204,24 @@ watch(isOpen, (newValue) => { } }) -// Handler para cuando se modifica Sumatoria Afectiva (solo en blur) -const onSumatoriaChange = () => { +// Handler para cuando se modifica Sumatoria Afectiva usando botones +/- +const onSumatoriaChangeFromButtons = (newValue: number | null) => { + if (actualizandoInput.value) return + if (newValue === null || newValue === undefined) return + + actualizandoInput.value = true + + // El valor ya viene validado por UInputNumber (min/max/step) + puntajeDeseado.value = newValue + + // Actualizar SCAA Score automáticamente + scaaDeseado.value = sumatoriaAfectivaASCAA(puntajeDeseado.value) + + actualizandoInput.value = false +} + +// Handler para cuando se pierde el foco en Sumatoria Afectiva (escritura manual) +const onSumatoriaBlur = () => { if (actualizandoInput.value) return actualizandoInput.value = true @@ -227,8 +244,33 @@ const onSumatoriaChange = () => { actualizandoInput.value = false } -// Handler para cuando se modifica SCAA Score (solo en blur) -const onScaaChange = () => { +// Handler para cuando se modifica SCAA Score usando botones +/- +const onScaaChangeFromButtons = (newValue: number | null) => { + if (actualizandoInput.value) return + if (newValue === null || newValue === undefined) return + + actualizandoInput.value = true + + // El valor ya viene validado por UInputNumber (min/max/step) + scaaDeseado.value = newValue + + // Convertir a Sumatoria Afectiva + const sumatoriaCalculada = scaaASumatoriaAfectiva(scaaDeseado.value) + + // Redondear al entero más cercano + const sumatoriaRedondeada = Math.round(sumatoriaCalculada) + + // Asegurar rango válido + puntajeDeseado.value = Math.max(8, Math.min(72, sumatoriaRedondeada)) + + // Recalcular SCAA Score con el valor redondeado + scaaDeseado.value = sumatoriaAfectivaASCAA(puntajeDeseado.value) + + actualizandoInput.value = false +} + +// Handler para cuando se pierde el foco en SCAA Score (escritura manual) +const onScaaBlur = () => { if (actualizandoInput.value) return actualizandoInput.value = true