Agregar filtro Solo Presentes y reorganizar filtros
All checks were successful
build-and-deploy / build-and-deploy (push) Successful in 57s

- Reorganizar filtros (ID, Teléfono, Empleados, Presentes) en una fila con wrap
- Agregar checkbox 'Presentes' basado en tabla Asistencias de Supabase
- Crear endpoint /api/contacts/presentes que consulta última asistencia sin salida
- Integrar filtro de presentes en useContacts con carga lazy
This commit is contained in:
2025-12-05 12:17:15 -06:00
parent 39a01d351b
commit eb5fa191c1
4 changed files with 139 additions and 6 deletions

View File

@@ -19,7 +19,7 @@
</button>
</div>
<!-- Filtros adicionales -->
<!-- Filtros en una fila con wrap -->
<div class="filter-row">
<!-- Filtro por ID -->
<div class="filter-field filter-id">
@@ -43,7 +43,13 @@
<!-- Checkbox empleados -->
<label class="filter-checkbox">
<UCheckbox v-model="empleadoFilter" />
<span>Solo empleados</span>
<span>Empleados</span>
</label>
<!-- Checkbox presentes -->
<label class="filter-checkbox">
<UCheckbox v-model="presenteFilter" />
<span>Presentes</span>
</label>
<!-- Botón limpiar -->
@@ -94,12 +100,18 @@ const empleadoFilter = computed({
set: (val) => emit('update:modelValue', { ...props.modelValue, empleado: val })
})
const presenteFilter = computed({
get: () => props.modelValue.presente,
set: (val) => emit('update:modelValue', { ...props.modelValue, presente: val })
})
const hasActiveFilters = computed(() => {
return (
props.modelValue.search ||
props.modelValue.id ||
props.modelValue.telefono ||
!props.modelValue.empleado
!props.modelValue.empleado ||
props.modelValue.presente
)
})

View File

@@ -71,6 +71,7 @@ const {
error,
fetchContacts,
fetchAliases,
fetchPresentes,
updateAlias,
getWhatsAppUrl,
clearFilters
@@ -78,7 +79,7 @@ const {
// Cargar datos al montar
onMounted(async () => {
await Promise.all([fetchContacts(), fetchAliases()])
await Promise.all([fetchContacts(), fetchAliases(), fetchPresentes()])
})
// Manejar actualización de alias