Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

148
Vistas
Filtrar fechas y avanzar y retroceder VUE

Tengo una selección donde filtro las tareas por semana, mes y año y funciona bien. Pero quiero tener botones junto a la selección donde pueda pasar a la semana anterior o siguiente (si estoy filtrando por semana, de lo contrario, por mes o año). Ahí es donde me quedo atascado.

Por ahora tengo este componente para mi selección:

 export default base({ setup() { const now = DateTime.local() return { items: [ { text: i18n.tc('Current week'), value: now.startOf('week').until(now.endOf('week')), }, { text: i18n.tc('Current month'), value: now.startOf('month').until(now.endOf('month')), }, { text: i18n.tc('Current year'), value: now.startOf('year').until(now.endOf('year')), }, ], label: i18n.tc('Period'), } }, itemText: 'text', itemValue: 'value', })

Estoy importando y usando el componente en otro archivo donde primero declaro en la configuración:

 const dateFilter = ref<string | null>( DateTime.local().startOf('month').until(DateTime.local().endOf('month')).toISODate(), )

Entonces tengo esto calculado:

 const filterTasks = computed(() => { function filterDate(filterDate: string | null, taskDate: string | null) { return filterDate && taskDate ? filterDate > taskDate : false } return tasks.value.filter(task => { if (filterDate(dateFilter.value, task.dateAdd)) { return false } return task.id }), ) })

Luego, en mi plantilla donde uso mi componente de selección:

 <div class="flex gap-2 items-center"> <duration v-model="dateFilter" hide-details /> <div> <v-btn icon><v-icon> chevron_left </v-icon></v-btn> {{ buttonText }} <v-btn icon @click="dateFilter.plus({ weeks: 1 })"> <v-icon> chevron_right </v-icon></v-btn> </div> </div>

Estoy completamente perdido sobre dónde proceder a partir de ahora. También estoy pensando que estoy comenzando de manera incorrecta y también debería cambiar mi componente Seleccionar. Tal vez moverlo al mismo o crear uno nuevo. Alguien que me pueda orientar un poco? :)

about 4 years ago · Juan Pablo Isaza
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda