From 6c61cf13812b61739f1a893388472a3f6f6e47b7 Mon Sep 17 00:00:00 2001 From: Administrator Date: Fri, 4 Sep 2026 16:13:49 -0500 Subject: [PATCH] Actualizar frontend/src/pages/Roas.jsx --- frontend/src/pages/Roas.jsx | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/frontend/src/pages/Roas.jsx b/frontend/src/pages/Roas.jsx index 46671f3..f45aa83 100644 --- a/frontend/src/pages/Roas.jsx +++ b/frontend/src/pages/Roas.jsx @@ -12,6 +12,7 @@ export default function Roas() { const [filtros, setFiltros] = useState({ anos: [2026] }); const [data, setData] = useState(null); const [loading, setLoading] = useState(true); + const [recargando, setRecargando] = useState(false); const [error, setError] = useState(null); const [expand, setExpand] = useState({}); // sede -> abierto/cerrado const [expandP, setExpandP] = useState({}); // "sede|prog" -> abierto/cerrado @@ -30,11 +31,12 @@ export default function Roas() { useEffect(() => { let activo = true; - if (!data) setLoading(true); + if (!data) setLoading(true); else setRecargando(true); setError(null); api.roas(ano, mes, "TODOS") - .then((res) => { if (activo) { setData(res); setLoading(false); } }) - .catch((e) => { if (activo) { setError(e.message); setLoading(false); } }); + .then((res) => { if (activo) { setData(res); } }) + .catch((e) => { if (activo) setError(e.message); }) + .finally(() => { if (activo) { setLoading(false); setRecargando(false); } }); return () => { activo = false; }; }, [ano, mes, reload]); @@ -57,7 +59,9 @@ export default function Roas() { {loading ? : error ? : !data ? : -
+
Inversión por Sede
@@ -66,6 +70,8 @@ export default function Roas() { + + @@ -87,6 +93,8 @@ export default function Roas() { + + {abierto && subs.map((p) => { const claveP = f.sede + "|" + p.programa; @@ -107,6 +115,8 @@ export default function Roas() { + + {abiertoP && conjs.map((c) => ( @@ -114,6 +124,8 @@ export default function Roas() { whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis", maxWidth: 280 }}>{c.conjunto} + + ))} @@ -127,6 +139,8 @@ export default function Roas() { + + )}
Sede Importe Gastado ResultadosL. Recibidos del MesL. Procesados del Mes
{soles(f.importe)} {num(f.resultados)}{num(f.rec || 0)}{num(f.proc || 0)}
{soles(p.importe)} {num(p.resultados)}{num(p.rec || 0)}{num(p.proc || 0)}
{soles(c.importe)} {num(c.resultados)}{num(c.rec || 0)}{num(c.proc || 0)}
Total {soles(data.total.importe)} {num(data.total.resultados)}{num(data.total.rec || 0)}{num(data.total.proc || 0)}