Fix: Corregir escalas de intensidad y cálculo de puntaje final
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m6s
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m6s
CAMBIOS CRÍTICOS EN ESCALAS: - Escala descriptiva: 1-10 → 1-15 - Escala afectiva: 1-15 → 1-9 - Puntaje final: suma de afectivos (no descriptivos) - Rango puntaje final: 9-90 (8 categorías × 1-9 afectivo) Iconos de selección en SelectorFamilia: - Fragancia/Aroma: i-heroicons-check-circle-solid - Sabor: i-heroicons-check-badge-solid - Eliminar textos de títulos para interfaz más limpia Actualizar calcularPuntajeFinal (catacion.ts): - Cambiar suma de descriptivos a afectivos - Actualizar comentarios JSDoc Actualizar SelectorIntensidad: - Máximo descriptiva: 10 → 15 - Máximo afectiva: 15 → 9 - Actualizar comentarios y tipos Actualizar ModalAsignacionRapida: - Rango de entrada: 8-80 → 9-90 - Modificar valores afectivos (no descriptivos) - Valor por defecto: 40 → 45 - Actualizar validaciones de rango Actualizar FormularioMuestra: - aplicarAsignacionRapida usa tipo 'afectiva' - Texto: "Suma de valores afectivos" IMPORTANTE: Estos cambios afectan toda la lógica de puntuación
This commit is contained in:
@@ -809,7 +809,7 @@
|
||||
<span class="text-3xl font-bold cata-text">{{ muestra.puntajeFinal }}</span>
|
||||
</div>
|
||||
<p class="text-xs cata-text opacity-60 mt-1">
|
||||
Suma de valores descriptivos
|
||||
Suma de valores afectivos
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
@@ -955,9 +955,9 @@ const modalAsignacionRapida = ref(false)
|
||||
|
||||
// Aplicar asignación rápida de puntajes
|
||||
const aplicarAsignacionRapida = async (puntajes: Record<string, number>) => {
|
||||
// Aplicar cada puntaje a su categoría correspondiente
|
||||
// Aplicar cada puntaje a su categoría correspondiente (afectiva)
|
||||
for (const [categoria, puntaje] of Object.entries(puntajes)) {
|
||||
await actualizarIntensidad(categoria as keyof Muestra['intensidades'], 'descriptiva', puntaje)
|
||||
await actualizarIntensidad(categoria as keyof Muestra['intensidades'], 'afectiva', puntaje)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -26,9 +26,9 @@
|
||||
<input
|
||||
v-model.number="puntajeDeseado"
|
||||
type="number"
|
||||
:min="8"
|
||||
:max="80"
|
||||
placeholder="Puntaje Total (8-80)"
|
||||
:min="9"
|
||||
:max="90"
|
||||
placeholder="Puntaje Total (9-90)"
|
||||
class="cata-input w-full px-3 py-2 rounded-md text-center text-lg"
|
||||
/>
|
||||
</div>
|
||||
@@ -154,21 +154,21 @@ const isOpen = computed({
|
||||
|
||||
// Estado del formulario
|
||||
const paso = ref(1)
|
||||
const puntajeDeseado = ref<number>(40)
|
||||
const puntajeDeseado = ref<number>(45)
|
||||
const categoriasSeleccionadas = ref<string[]>([])
|
||||
|
||||
// Resetear estado cuando el modal se abre
|
||||
watch(isOpen, (newValue) => {
|
||||
if (newValue) {
|
||||
paso.value = 1
|
||||
puntajeDeseado.value = 40
|
||||
puntajeDeseado.value = 45
|
||||
categoriasSeleccionadas.value = []
|
||||
}
|
||||
})
|
||||
|
||||
// Cálculos
|
||||
const puntajeValido = computed(() => {
|
||||
return puntajeDeseado.value >= 8 && puntajeDeseado.value <= 80
|
||||
return puntajeDeseado.value >= 9 && puntajeDeseado.value <= 90
|
||||
})
|
||||
|
||||
const multiploMasCercano = computed(() => {
|
||||
|
||||
@@ -34,7 +34,7 @@
|
||||
</div>
|
||||
<UIcon
|
||||
v-if="modelValue.categorias.includes(categoria)"
|
||||
:name="tipo === 'fragancia-aroma' ? 'i-lucide-wind' : 'i-lucide-ice-cream-cone'"
|
||||
:name="tipo === 'fragancia-aroma' ? 'i-heroicons-check-circle-solid' : 'i-heroicons-check-badge-solid'"
|
||||
class="categoria-check"
|
||||
/>
|
||||
</button>
|
||||
@@ -62,7 +62,7 @@
|
||||
<span class="subcategoria-text cata-text">{{ subcategoria }}</span>
|
||||
<UIcon
|
||||
v-if="modelValue.subcategorias.includes(subcategoria)"
|
||||
:name="tipo === 'fragancia-aroma' ? 'i-lucide-wind' : 'i-lucide-ice-cream-cone'"
|
||||
:name="tipo === 'fragancia-aroma' ? 'i-heroicons-check-circle-solid' : 'i-heroicons-check-badge-solid'"
|
||||
class="subcategoria-check"
|
||||
/>
|
||||
</button>
|
||||
|
||||
@@ -47,7 +47,7 @@
|
||||
|
||||
<script setup lang="ts">
|
||||
interface SelectorIntensidadProps {
|
||||
/** Tipo de intensidad: descriptiva (1-10) o afectiva (1-15) */
|
||||
/** Tipo de intensidad: descriptiva (1-15) o afectiva (1-9) */
|
||||
tipo: 'descriptiva' | 'afectiva'
|
||||
/** Valor actual del selector */
|
||||
modelValue: number | null
|
||||
@@ -80,7 +80,7 @@ const valorHover = ref<number | null>(null)
|
||||
|
||||
// Configuración según el tipo
|
||||
const min = computed(() => 1)
|
||||
const max = computed(() => props.tipo === 'descriptiva' ? 10 : 15)
|
||||
const max = computed(() => props.tipo === 'descriptiva' ? 15 : 9)
|
||||
|
||||
// Array de valores para los iconos
|
||||
const iconos = computed(() => {
|
||||
|
||||
Reference in New Issue
Block a user