Feat: Reorganizar tabs y permitir selección múltiple de categorías en notas
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m1s
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 1m1s
- **Nuevas tabs reorganizadas:** - Organoléptica: Selectores de familia de fragancia-aroma y sabor - Descriptiva/Afectiva: Todos los sliders de intensidad (incluye impresión global) - Defectos: Tazas no uniformes, defectuosas y tipo de defecto - Impresión Global: Vista completa con todos los componentes - **Selector de categorías mejorado:** - Permitir selección múltiple de categorías padre - Las subcategorías son la unión de las subcategorías de los padres seleccionados - Permitir selección múltiple de subcategorías - Actualizar resumen visual de selección - **Tipos actualizados:** - NotaSeleccionada ahora usa arrays para categorias y subcategorias - TabCatacion actualizado con las nuevas tabs - Funciones de actualización modificadas para trabajar con arrays - **Correcciones TypeScript:** - Usar JSON.parse(JSON.stringify()) para crear copias mutables de arrays readonly - Resolver incompatibilidades de tipos entre readonly y mutable arrays
This commit is contained in:
@@ -211,14 +211,19 @@ const toggleTheme = () => {
|
||||
// Definición de tabs
|
||||
const tabs = [
|
||||
{
|
||||
value: 'fragancia-aroma' as TabCatacion,
|
||||
label: 'Fragancia/Aroma',
|
||||
value: 'organoleptica' as TabCatacion,
|
||||
label: 'Organoléptica',
|
||||
icon: 'i-lucide-flower-2',
|
||||
},
|
||||
{
|
||||
value: 'sabor' as TabCatacion,
|
||||
label: 'Sabor',
|
||||
icon: 'i-lucide-coffee',
|
||||
value: 'descriptiva-afectiva' as TabCatacion,
|
||||
label: 'Descriptiva/Afectiva',
|
||||
icon: 'i-lucide-sliders-horizontal',
|
||||
},
|
||||
{
|
||||
value: 'defectos' as TabCatacion,
|
||||
label: 'Defectos',
|
||||
icon: 'i-lucide-alert-triangle',
|
||||
},
|
||||
{
|
||||
value: 'impresion-global' as TabCatacion,
|
||||
@@ -244,7 +249,9 @@ const obtenerMuestraPorValue = (value: string): Muestra | null => {
|
||||
|
||||
// Extraer el ID de la muestra del value (formato: "muestra-{id}")
|
||||
const muestraId = parseInt(value.replace('muestra-', ''))
|
||||
return sesionActiva.value.muestras.find(m => m.muestraId === muestraId) || null
|
||||
const muestra = sesionActiva.value.muestras.find(m => m.muestraId === muestraId)
|
||||
if (!muestra) return null
|
||||
return JSON.parse(JSON.stringify(muestra)) as Muestra
|
||||
}
|
||||
|
||||
// Inicializar al montar
|
||||
|
||||
Reference in New Issue
Block a user