From f6dc2c3bce3cc35e7810cba98d505ace90853262 Mon Sep 17 00:00:00 2001 From: josedario87 Date: Sun, 19 Oct 2025 00:56:20 -0600 Subject: [PATCH] =?UTF-8?q?Feat:=20Implementar=20asignaci=C3=B3n=20r=C3=A1?= =?UTF-8?q?pida=20de=20puntajes=20con=20bot=C3=B3n=20de=20nube=20c=C3=A1us?= =?UTF-8?q?tica?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Crear ModalAsignacionRapida.vue con lógica de distribución por múltiplos de 8 - Input numérico (8-80) para puntaje total deseado - Cálculo automático del múltiplo de 8 más cercano - Si múltiplo < valor: permite seleccionar categorías que sobresalen (+1) - Si múltiplo > valor: permite seleccionar categorías que palidecen (-1) - Si múltiplo = valor: asignación directa sin ajustes - Crear BotonNubeCaustica.vue con diseño especial - Forma de nube usando SVG path - Animación de patrones de luz cáustica con gradientes animados - Efectos de brillo y ondas al hacer hover - Icono de rayo mágico con animación sparkle - Integrar funcionalidad en FormularioMuestra.vue - Ubicar botón en esquina superior izquierda de sección Descriptiva/Afectiva - Aplicar puntajes calculados a todas las categorías descriptivas - Actualizar puntaje final automáticamente - Corregir comentario: "Suma de valores descriptivos" (era "afectivos") --- .../app/components/cata/BotonNubeCaustica.vue | 260 ++++++++++++++++++ .../app/components/cata/FormularioMuestra.vue | 25 +- .../components/cata/ModalAsignacionRapida.vue | 247 +++++++++++++++++ 3 files changed, 531 insertions(+), 1 deletion(-) create mode 100644 nuxt4/app/components/cata/BotonNubeCaustica.vue create mode 100644 nuxt4/app/components/cata/ModalAsignacionRapida.vue diff --git a/nuxt4/app/components/cata/BotonNubeCaustica.vue b/nuxt4/app/components/cata/BotonNubeCaustica.vue new file mode 100644 index 0000000..e422fb4 --- /dev/null +++ b/nuxt4/app/components/cata/BotonNubeCaustica.vue @@ -0,0 +1,260 @@ + + + + + diff --git a/nuxt4/app/components/cata/FormularioMuestra.vue b/nuxt4/app/components/cata/FormularioMuestra.vue index eb29910..3fe7f06 100644 --- a/nuxt4/app/components/cata/FormularioMuestra.vue +++ b/nuxt4/app/components/cata/FormularioMuestra.vue @@ -70,6 +70,11 @@
+ +
+ +
+
@@ -796,11 +801,18 @@ {{ muestra.puntajeFinal }}

- Suma de valores afectivos + Suma de valores descriptivos

+ + + @@ -937,6 +949,17 @@ const mostrarImpresionGlobalAfectiva = computed(() => deberMostrarSlider('afecti // Estado local para otras notas const otrasNotasLocal = ref(props.muestra.otrasNotas) +// Estado del modal de asignación rápida +const modalAsignacionRapida = ref(false) + +// Aplicar asignación rápida de puntajes +const aplicarAsignacionRapida = async (puntajes: Record) => { + // Aplicar cada puntaje a su categoría correspondiente + for (const [categoria, puntaje] of Object.entries(puntajes)) { + await actualizarIntensidad(categoria as keyof Muestra['intensidades'], 'descriptiva', puntaje) + } +} + // Actualizar intensidad const actualizarIntensidad = async ( parametro: keyof Muestra['intensidades'], diff --git a/nuxt4/app/components/cata/ModalAsignacionRapida.vue b/nuxt4/app/components/cata/ModalAsignacionRapida.vue new file mode 100644 index 0000000..ef76efe --- /dev/null +++ b/nuxt4/app/components/cata/ModalAsignacionRapida.vue @@ -0,0 +1,247 @@ + + +