fix(tramites): buscador incluye todas las columnas visibles
Antes solo miraba nombre/tipoTramite/tipoProceso/cliente/abogado/id,
así que buscar "Municipio" en la tab Administrativo no encontraba
nada aunque la columna Institución tuviera "Municipio de Panamá".
Nuevo rowHaystack(dept, r) concatena todos los campos que se
muestran en la tabla, excluyendo abogado y estatus (tienen sus
propios dropdowns al lado del buscador):
- Común: id/codigo, cliente, nombre, instrucciones, fecha solicitud
- adm: institución
- corp: tipo documento
- mig: tipo trámite, doc completa, permiso trabajo, dependientes,
vencimiento
- lit: tipo proceso, juzgado, circuito, esfera, instancia,
doc completa, incidentes, amparo, término
- Todos: involucrados (name + email)
This commit is contained in:
+17
-2
@@ -381,13 +381,28 @@ const filterState = {
|
||||
lit: { search:'', status:'', abog:'', esfera:'' },
|
||||
};
|
||||
|
||||
// Concatena todos los campos visibles de la fila (excepto abogado y estatus,
|
||||
// que tienen su propio dropdown). Incluye involucrados (name+email) e
|
||||
// instrucciones para que la búsqueda encuentre lo mismo que el usuario ve.
|
||||
function rowHaystack(dept, r){
|
||||
const parts = [
|
||||
r.id, r.codigo, r.cliente, r.nombre, r.instrucciones,
|
||||
r.fechaSolicitud, r.fecha_solicitud,
|
||||
];
|
||||
if (dept === 'adm') parts.push(r.institucion);
|
||||
if (dept === 'corp') parts.push(r.tipoDocumento);
|
||||
if (dept === 'mig') parts.push(r.tipoTramite, r.docCompleta, r.permisoTrabajo, r.dependientes, r.fechaVencimiento);
|
||||
if (dept === 'lit') parts.push(r.tipoProceso, r.juzgado, r.circuito, r.esfera, r.instancia, r.docCompleta, r.incidentes, r.amparo, r.fechaTermino);
|
||||
(r.involucrados || []).forEach(u => parts.push(u.name, u.email));
|
||||
return parts.filter(Boolean).join(' ').toLowerCase();
|
||||
}
|
||||
|
||||
function computeFiltered(dept){
|
||||
const rows = data[dept];
|
||||
const f = filterState[dept];
|
||||
const q = f.search.toLowerCase();
|
||||
const filtered = rows.filter(r => {
|
||||
const txt = ((r.nombre||r.tipoTramite||r.tipoProceso||'')+(r.cliente||'')+(r.abogado||'')+(r.id||'')).toLowerCase();
|
||||
if (q && !txt.includes(q)) return false;
|
||||
if (q && !rowHaystack(dept, r).includes(q)) return false;
|
||||
if (f.status && r.estatus !== f.status) return false;
|
||||
if (f.abog && r.abogado !== f.abog) return false;
|
||||
if (dept === 'lit' && f.esfera && r.esfera !== f.esfera) return false;
|
||||
|
||||
Reference in New Issue
Block a user