Tengo un tablero con diferentes clientes potenciales que también están ordenados en diferentes estados.
Por ahora, todos los clientes potenciales diferentes se ordenan en los diferentes estados y se ve así en mi configuración (). El changeStatus es para arrastrar los clientes potenciales a otros estados. (Están ordenados en diferentes "tarjetas")
const leads = ref<Leads[]>([]) const sellerFilter = ref<number | null>(null) const statuses = useStore(leadStatuses) const leadsByStatus = computed(() => Object.assign( fromPairs(statuses.value.map(s => [s.id, []])), groupBy( leads.value.filter(lead => lead.id), 'idStatus', ), ), ) const changeStatus = async (evt: any) => { const idStatus = evt.target.getAttribute('status-id') const id = evt.item.getAttribute('lead-id') await ('lead/update', { id }, { idStatus }) const lead = find(leads.value, ['id', parseInt(id)]) assert(!!lead) lead.idStatus = idStatus }Esto funciona bien. Pero ahora quiero agregar la posibilidad de filtrar por el vendedor asignado al cliente potencial y no logro trabajar juntos en las oportunidades calculadas. Tengo una selección de vendedor que estoy importando y usando en la plantilla:
<user-select v-model="sellerFilter" :label="$tc('Filter on sales person')" />Intenté hacer algo como esto en las "oportunidades" calculadas:
const leadsByStatus = computed(() => { function filterOnSeller(filterSeller: number | null, leadSeller: number | null) { return filterSeller && filterSeller !== dealSeller } return Object.assign( fromPairs(statuses.value.map(s => [s.id, []])), groupBy( opportunities.value.filter(lead => { if (filterSeller(sellerFilter.value, lead.salesId)) { return true } return lead.salesId }), 'idStatus', ), ) })Pero no puedo conseguir el trabajo por encima cuando quiero hacer que el filtro en la parte del vendedor funcione.
En la plantilla, también estoy usando un v-for para iterar a través de todos los clientes potenciales:
<v-card v-for="lead in leadsByStatus[status.id]" :key="lead.id" :lead-id="lead.id" >Entonces, si hay alguien que sepa qué estoy haciendo mal. :)