Files
front-Censo/src/components/Perifericos/Pregunta4EP.tsx
T
2025-11-28 19:28:07 -06:00

153 lines
3.9 KiB
TypeScript

"use client";
import { useState, useEffect } from "react";
import "@/app/styles/layout/pregunta4EP.scss";
import Cookies from "js-cookie";
import axios from "axios";
import ToggleButton from "../Toggle/ToggleButton";
interface EquiposDigitalizacion {
digitalizadorCamaPlana: string;
d3D: string;
digitalizadorAlimentador: string;
digitalizadorGranVolumen: string;
}
export default function Pregunta4EP() {
const [equipos, setEquipos] = useState<EquiposDigitalizacion>({
digitalizadorCamaPlana: "0",
d3D: "0",
digitalizadorAlimentador: "0",
digitalizadorGranVolumen: "0",
});
const api_url = process.env.NEXT_PUBLIC_API_URL;
const cargarDatos = async (baja: boolean) => {
const token = Cookies.get("token");
const headers = { Authorization: `Bearer ${token}` };
const body = baja ? ["BAJA"] : ["EN DESUSO", "EN USO"];
axios
.post(
`${api_url}/equipos/reporte/equipos_impesion_group/dijitales`,
body,
{
headers,
}
)
.then((res) => {
const data = res.data;
const valores = {
digitalizadorCamaPlana: "0",
d3D: "0",
digitalizadorAlimentador: "0",
digitalizadorGranVolumen: "0",
};
data.forEach((item: any) => {
const periferico = item.periferico.toUpperCase().trim();
const total = item.total ?? "0";
switch (periferico) {
case "DIGITALIZADOR DE CAMA PLANA PARA OFICINA":
valores.digitalizadorCamaPlana = total;
break;
case "3D":
valores.d3D = total;
break;
case "DIGITALIZADOR CON ALIMENTADOR DE HOJAS PARA OFICINA":
valores.digitalizadorAlimentador = total;
break;
case "DIGITALIZADOR DE GRAN VOLUMEN":
valores.digitalizadorGranVolumen = total;
break;
}
});
setEquipos(valores);
})
.catch((err) => {
console.error("Error:", err);
});
};
useEffect(() => {
cargarDatos(false);
}, []);
return (
<div className="container">
<div className="contenedor-censo">
Censo de equipos periféricos - Equipo de digitalización
</div>
<div className="pregunta-cuadro">
Número de equipos de digitalización.
<ToggleButton
onChange={(estado) => {
cargarDatos(estado);
}}
/>
</div>
<div className="grid">
<div className="item">
<label htmlFor="digitalizadorCamaPlana">
Digitalizador de cama plana para oficina
</label>
<input
type="text"
id="digitalizadorCamaPlana"
name="digitalizadorCamaPlana"
value={equipos.digitalizadorCamaPlana}
disabled
/>
</div>
<div className="item">
<label htmlFor="digitalizador3d">3D</label>
<input
type="text"
id="digitalizador3d"
name="digitalizador3d"
value={equipos.d3D}
disabled
/>
</div>
<div className="item">
<label htmlFor="digitalizadorAlimentador">
Digitalizador con alimentador de hojas para oficina
</label>
<input
type="text"
id="digitalizadorAlimentador"
name="digitalizadorAlimentador"
value={equipos.digitalizadorAlimentador}
disabled
/>
</div>
<div className="item">
<label htmlFor="digitalizadorGranVolumen">
Digitalizador de gran volumen
</label>
<input
type="text"
id="digitalizadorGranVolumen"
name="digitalizadorGranVolumen"
value={equipos.digitalizadorGranVolumen}
disabled
/>
</div>
</div>
</div>
);
}