/* global React */ // Reportes Aprobados — vista Cancillería (solo lectura) // Acceso a reportes consolidados aprobados por la CGR para envío internacional. const { useState: useStateAp } = React; function ReportesAprobadosScreen({ user }) { const I = window.Icons; const reportes = window.REPORTES_APROBADOS; const [filter, setFilter] = useStateAp('todos'); const [orgFilter, setOrgFilter] = useStateAp('Todos'); const filtered = reportes.filter(r => { if (filter === 'nuevos' && !r.isNew) return false; if (filter === 'archivados' && r.estado !== 'archivado') return false; if (orgFilter !== 'Todos' && !r.organismo.includes(orgFilter)) return false; return true; }); const nuevos = reportes.filter(r => r.isNew).length; const totales = reportes.length; const archivados = reportes.filter(r => r.estado === 'archivado').length; return (
{/* Header */}
{user.org}

Reportes Aprobados

Documentos consolidados aprobados por la CGR, listos para envío a los organismos internacionales. Acceso de solo lectura.

{/* Strip: KPIs simples */}
{totales}
Reportes aprobados
Trazabilidad completa
{nuevos}
Nuevos desde última visita
Listos para envío internacional
{archivados}
Archivados
Ciclos cerrados
{/* Filters */}
{[ { v: 'todos', l: `Todos · ${totales}` }, { v: 'nuevos', l: `● Nuevos · ${nuevos}` }, { v: 'archivados', l: `Archivados · ${archivados}` }, ].map(it => ( ))}
{['Todos', 'OEA', 'ONU', 'OCDE'].map(o => ( ))}
{/* Cards */}
{filtered.map(r => )}
{filtered.length === 0 && (

Sin reportes con esos criterios

Cambia los filtros para ver el conjunto completo.

)}
); } function ReporteAprobadoCard({ r }) { const I = window.Icons; const orgClass = r.organismo.includes('MESICIC') ? 'mesicic' : r.organismo.includes('UNCAC') ? 'uncac' : r.organismo.includes('OCDE') ? 'ocde' : 'mesicic'; return (
{r.isNew && Nuevo}
{r.organismo} {r.periodo}

{r.titulo}

{r.resumen}

Cobertura del informe {r.cobertura.total} recomendaciones · {r.cobertura.pct}% cumplim. global
{r.cobertura.cumplidos} cumplidos {r.cobertura.parciales} parciales {r.cobertura.noCumplidos} no cumplidos
Aprobado por{r.aprobadoPor}
Fecha aprobación{r.aprobadoEl}
Documento{r.paginas} pp · {r.peso}
{r.archivos.map((f, i) => { const ext = f.split('.').pop().toLowerCase(); return ( ); })}
); } Object.assign(window, { ReportesAprobadosScreen });