From a8fba0e98021f76f322f007b47cb911ee5140136 Mon Sep 17 00:00:00 2001 From: IO420 <320154041@pcpuma.acatlan.unam.mx> Date: Thu, 29 Jan 2026 12:35:31 -0600 Subject: [PATCH] tring to do active --- app/Components/ActivosMantenimiento/Areas.tsx | 107 +++++++++--------- .../ActivosMantenimiento/Equipos.tsx | 2 - .../ActivosMantenimiento/MesasDisponibles.tsx | 40 +++++-- app/Components/Equipos/tableEquipos.css | 35 ++++++ app/Components/Equipos/tableequipos.tsx | 33 ++++-- 5 files changed, 142 insertions(+), 75 deletions(-) create mode 100644 app/Components/Equipos/tableEquipos.css diff --git a/app/Components/ActivosMantenimiento/Areas.tsx b/app/Components/ActivosMantenimiento/Areas.tsx index e76508f..5c62fa1 100644 --- a/app/Components/ActivosMantenimiento/Areas.tsx +++ b/app/Components/ActivosMantenimiento/Areas.tsx @@ -1,77 +1,81 @@ "use client"; -import { useState } from "react"; +import { useEffect, useState } from "react"; -import "@/app/globals.css" +import "@/app/globals.css"; +import axios from "axios"; +import { envConfig } from "@/app/lib/config"; +import toast from "react-hot-toast"; export default function Areas() { - const [area, setArea] = useState(""); // Área seleccionada - const [activo, setActivo] = useState(false); // Checkbox Activo - const [mantenimiento, setMantenimiento] = useState(false); // Checkbox Mantenimiento - const [mensaje, setMensaje] = useState(""); // Mensaje dinámico + const [areas, setAreas] = useState([]); + const [selectedArea, setSelectedArea] = useState(""); + + const [modo, setModo] = useState<"Activo" | "Mantenimiento" | null>( + "Mantenimiento", + ); + + useEffect(() => { + axios + .get(`${envConfig.apiUrl}/area-ubicacion`) + .then((data) => { + setAreas(data.data); + }) + .catch((error) => { + console.error("Error al traer las áreas:", error); + }); + }, []); const handleActualizar = (e: React.FormEvent) => { e.preventDefault(); - if (!area) { - setMensaje("Selecciona un área antes de actualizar"); + if (!areas) { + toast.error("Selecciona un área antes de actualizar"); return; } - - // Crear mensaje dinámico - const estado = []; - if (activo) estado.push("Activo"); - if (mantenimiento) estado.push("Mantenimiento"); - const estadosSeleccionados = estado.length - ? estado.join(" y ") - : "Sin estado"; - - setMensaje(`Área ${area} actualizada con estado: ${estadosSeleccionados}`); - - // Aquí puedes enviar los datos al backend si quieres - console.log({ - area, - activo, - mantenimiento, - }); }; return (
+
- setSelectedArea(e.target.value)} + > + + {areas.map((area: any, index) => ( + + ))} - {/* Checkboxes */} -
- -
-
- {/* Botón Actualizar */}
- - {/* Mensaje dinámico */} - {mensaje &&

{mensaje}

} ); } diff --git a/app/Components/ActivosMantenimiento/Equipos.tsx b/app/Components/ActivosMantenimiento/Equipos.tsx index 006206a..b3b98e6 100644 --- a/app/Components/ActivosMantenimiento/Equipos.tsx +++ b/app/Components/ActivosMantenimiento/Equipos.tsx @@ -36,7 +36,6 @@ function Equipos() { return (
- {/* Buscar */}
Buscar
- {/* Asignar */}
+ + + ); + })} )} diff --git a/app/Components/Equipos/tableEquipos.css b/app/Components/Equipos/tableEquipos.css new file mode 100644 index 0000000..61b14a0 --- /dev/null +++ b/app/Components/Equipos/tableEquipos.css @@ -0,0 +1,35 @@ +.WINDOWS::before { + content: ""; + display: inline-block; + width: 20px; + height: 20px; + background-image: url("/windows.png"); + background-size: contain; + background-repeat: no-repeat; + margin-right: 6px; + vertical-align: middle; +} + +.MACINTOSH::before { + content: ""; + display: inline-block; + width: 20px; + height: 20px; + background-image: url("/apple.png"); + background-size: contain; + background-repeat: no-repeat; + margin-right: 6px; + vertical-align: middle; +} + +.PROFESORES::before { + content: ""; + display: inline-block; + width: 20px; + height: 20px; + background-image: url("/teacher.png"); + background-size: contain; + background-repeat: no-repeat; + margin-right: 6px; + vertical-align: middle; +} \ No newline at end of file diff --git a/app/Components/Equipos/tableequipos.tsx b/app/Components/Equipos/tableequipos.tsx index 8630278..3582870 100644 --- a/app/Components/Equipos/tableequipos.tsx +++ b/app/Components/Equipos/tableequipos.tsx @@ -3,12 +3,12 @@ import { envConfig } from "@/app/lib/config"; import { useEffect, useState } from "react"; +import "./tableEquipos.css"; export default function TableEquipos() { const [equipos, setEquipos] = useState([]); const [loading, setLoading] = useState(true); useEffect(() => { - console.log("LLAMANDO API EQUIPO"); fetch(`${envConfig.apiUrl}/equipo`) .then((res) => res.json()) .then((data) => { @@ -45,15 +45,28 @@ export default function TableEquipos() { - {equipos.map((eq) => ( - - {eq.ubicacion} - {eq.nombre_equipo} - {eq.plataforma?.nombre || eq.id_plataforma} - {eq.areaUbicacion?.nombre || eq.id_area_ubicacion} - {eq.activo ? "Sí" : "No"} - - ))} + {equipos.map((eq) => { + const isActivo = eq.activo?.data?.[0] === 1; + + return ( + + {eq.ubicacion} + {eq.nombre_equipo} + + {eq.plataforma?.nombre} + + {eq.areaUbicacion?.nombre || eq.id_area_ubicacion} + + + {isActivo ? "Sí" : "No"} + + + + + ); + })}