This commit is contained in:
2025-11-07 14:13:49 -06:00
parent e96786e039
commit 659815b234
3 changed files with 129 additions and 47 deletions
+64 -35
View File
@@ -26,10 +26,10 @@ export default function Page() {
antiguedad: "MENORES DE 2",
modelo: "",
id_estado: "",
id_adscripcion: "",
id_adscripcion: 0,
id_tipo_equipo: "",
id_sistema_operativo: "",
id_procesador: "",
id_sistema_operativo: 0,
id_procesador: 0,
id_uso: "",
id_marca: "",
id_periferico: "",
@@ -93,12 +93,16 @@ export default function Page() {
>([]);
const [procesadores, setProcesadores] = useState<Procesador[]>([]);
const [perifericos, setPerifericos] = useState<Perifericos[]>([]);
const [adscripcionLabel, setAdscripcionLabel] = useState("");
const [suggestions, setSuggestions] = useState({
adscripcion: [] as string[],
});
const mostrarCamposComputadora = formData.id_tipo_equipo !== "9";
const mostrarCamposComputadora = Number(formData.id_tipo_equipo) !== 9;
const tableta =
Number(formData.id_tipo_equipo) !== 7 &&
Number(formData.id_tipo_equipo) !== 8;
const api_url = process.env.NEXT_PUBLIC_API_URL;
useEffect(() => {
@@ -169,7 +173,7 @@ export default function Page() {
useEffect(() => {
const fetchPerifericos = async () => {
if (formData.id_tipo_equipo !== "9") return;
if (Number(formData.id_tipo_equipo) != 9) return;
const token = Cookies.get("token");
const headers = { Authorization: `Bearer ${token}` };
@@ -189,9 +193,22 @@ export default function Page() {
}, [formData.id_tipo_equipo]);
const handleInputChange = (field: string, value: any) => {
if (field === "adscripcionLabel") {
setAdscripcionLabel(value);
const matches = AREAS.filter((a) =>
a.label.toLowerCase().includes(value.toLowerCase())
).map((a) => a.label);
setSuggestions((prev) => ({
...prev,
adscripcion: matches.slice(0, 5),
}));
return;
}
setFormData((prev) => {
let newValue = value;
if (field.startsWith("id_")) {
newValue = value ? Number(value) : "";
}
@@ -208,11 +225,6 @@ export default function Page() {
});
};
const handleSelectSuggestion = (field: string, value: string) => {
setFormData((prev) => ({ ...prev, [field]: value }));
setSuggestions((prev) => ({ ...prev, [field]: [] }));
};
const handleGuardar = async () => {
try {
const token = Cookies.get("token");
@@ -365,26 +377,30 @@ export default function Page() {
)}
</select>
</div>
<div className="formGroup">
<label>Sistema operativo</label>
<select
value={formData.id_sistema_operativo}
onChange={(e) =>
handleInputChange("id_sistema_operativo", e.target.value)
}
>
<option value="">Selecciona sistema operativo</option>
{SO_POR_EQUIPO[formData.id_tipo_equipo]?.map((so) => (
<option
key={so.id_sistema_operativo}
value={so.id_sistema_operativo}
>
{so.sistema_operativo}
</option>
))}
</select>
</div>
{tableta && (
<div className="formGroup">
<label>Sistema operativo</label>
<select
value={formData.id_sistema_operativo}
onChange={(e) =>
handleInputChange(
"id_sistema_operativo",
e.target.value
)
}
>
<option value="">Selecciona sistema operativo</option>
{SO_POR_EQUIPO[formData.id_tipo_equipo]?.map((so) => (
<option
key={so.id_sistema_operativo}
value={so.id_sistema_operativo}
>
{so.sistema_operativo}
</option>
))}
</select>
</div>
)}
</>
)}
@@ -412,10 +428,10 @@ export default function Page() {
<input
required
type="text"
placeholder="Ingresa adscripcion"
value={formData.id_adscripcion}
placeholder="Ingresa adscripción"
value={adscripcionLabel}
onChange={(e) =>
handleInputChange("id_adscripcion", e.target.value)
handleInputChange("adscripcionLabel", e.target.value)
}
/>
{suggestions.adscripcion.length > 0 && (
@@ -423,7 +439,20 @@ export default function Page() {
{suggestions.adscripcion.map((s) => (
<li
key={s}
onClick={() => handleSelectSuggestion("adscripcion", s)}
onClick={() => {
const selected = AREAS.find((a) => a.label === s);
if (selected) {
setFormData((prev) => ({
...prev,
id_adscripcion: selected.id,
}));
setAdscripcionLabel(selected.label);
setSuggestions((prev) => ({
...prev,
adscripcion: [],
}));
}
}}
>
{s}
</li>
+46 -7
View File
@@ -2,7 +2,7 @@ export const PROCESADORES_POR_EQUIPO: Record<
string,
{ id_procesador: number; procesador: string }[]
> = {
"ESCRITORIO PC": [
/*"ESCRITORIO PC"*/ 1: [
{
id_procesador: 1,
procesador: "i7 o equivalentes (13a generación en adelante)",
@@ -41,7 +41,18 @@ export const PROCESADORES_POR_EQUIPO: Record<
{ id_procesador: 18, procesador: "Pentium Series J, G" },
{ id_procesador: 19, procesador: "Celeron Serie J, G" },
],
"ESCRITORIO LINUX": [
/*"ESCRITORIO MAC OS"*/ 2: [
{ id_procesador: 20, procesador: "Familia M2" },
{ id_procesador: 21, procesador: "Familia M1" },
{ id_procesador: 2, procesador: "i7 o equivalentes (9a - 12a generación)" },
{ id_procesador: 4, procesador: "i7 o equivalentes (1a - 4a generación)" },
{ id_procesador: 6, procesador: "i5 o equivalentes (9a - 12a generación)" },
{ id_procesador: 7, procesador: "i5 o equivalentes (5a - 8a generación)" },
{ id_procesador: 8, procesador: "i5 o equivalentes (1a - 4a generación)" },
{ id_procesador: 12, procesador: "i3 o equivalentes (1a - 4a generación)" },
{ id_procesador: 22, procesador: "Core2 Mac, Quad Core o anteriores" },
],
/*"ESCRITORIO LINUX"*/ 3: [
{
id_procesador: 1,
procesador: "i7 o equivalentes (13a generación en adelante)",
@@ -69,7 +80,7 @@ export const PROCESADORES_POR_EQUIPO: Record<
{ id_procesador: 13, procesador: "Pentium Silver O Gold" },
{ id_procesador: 14, procesador: "Pentium Dual Core o anteriores" },
],
"PORTÁTILES WINDOWS": [
/*"PORTÁTILES WINDOWS"*/ 4: [
{
id_procesador: 1,
procesador: "i7 o equivalentes (13a generación en adelante)",
@@ -97,7 +108,7 @@ export const PROCESADORES_POR_EQUIPO: Record<
{ id_procesador: 13, procesador: "Pentium Silver O Gold" },
{ id_procesador: 14, procesador: "Pentium Dual Core o anteriores" },
],
"PORTÁTILES CHROMEBOOK": [
/*"PORTÁTILES CHROMEBOOK"*/ 5: [
{
id_procesador: 1,
procesador: "i7 o equivalentes (13a generación en adelante)",
@@ -123,7 +134,7 @@ export const PROCESADORES_POR_EQUIPO: Record<
{ id_procesador: 11, procesador: "i3 o equivalentes (5a - 8a generación)" },
{ id_procesador: 12, procesador: "i3 o equivalentes (1a - 4a generación)" },
],
"ESCRITORIO MAC OS": [
/*"PORTÁTILES MAC OS"*/ 6: [
{ id_procesador: 20, procesador: "Familia M2" },
{ id_procesador: 21, procesador: "Familia M1" },
{ id_procesador: 2, procesador: "i7 o equivalentes (9a - 12a generación)" },
@@ -134,7 +145,35 @@ export const PROCESADORES_POR_EQUIPO: Record<
{ id_procesador: 12, procesador: "i3 o equivalentes (1a - 4a generación)" },
{ id_procesador: 22, procesador: "Core2 Mac, Quad Core o anteriores" },
],
"PORTÁTILES MAC OS": [
/*"TABLETA ANDROID"*/ 7: [
{
id_procesador: 1,
procesador: "i7 o equivalentes (13a generación en adelante)",
},
{ id_procesador: 2, procesador: "i7 o equivalentes (9a - 12a generación)" },
{ id_procesador: 3, procesador: "i7 o equivalentes (5a - 8a generación)" },
{ id_procesador: 4, procesador: "i7 o equivalentes (1a - 4a generación)" },
{
id_procesador: 5,
procesador: "i5 o equivalentes (13a generación en adelante)",
},
{ id_procesador: 6, procesador: "i5 o equivalentes (9a - 12a generación)" },
{ id_procesador: 7, procesador: "i5 o equivalentes (5a - 8a generación)" },
{ id_procesador: 8, procesador: "i5 o equivalentes (1a - 4a generación)" },
{
id_procesador: 9,
procesador: "i3 o equivalentes (13a generación en adelante)",
},
{
id_procesador: 10,
procesador: "i3 o equivalentes (9a - 12a generación)",
},
{ id_procesador: 11, procesador: "i3 o equivalentes (5a - 8a generación)" },
{ id_procesador: 12, procesador: "i3 o equivalentes (1a - 4a generación)" },
{ id_procesador: 13, procesador: "Pentium Silver O Gold" },
{ id_procesador: 14, procesador: "Pentium Dual Core o anteriores" },
],
/*"TABLETA iPAD OS"*/ 8: [
{ id_procesador: 20, procesador: "Familia M2" },
{ id_procesador: 21, procesador: "Familia M1" },
{ id_procesador: 2, procesador: "i7 o equivalentes (9a - 12a generación)" },
@@ -145,7 +184,7 @@ export const PROCESADORES_POR_EQUIPO: Record<
{ id_procesador: 12, procesador: "i3 o equivalentes (1a - 4a generación)" },
{ id_procesador: 22, procesador: "Core2 Mac, Quad Core o anteriores" },
],
SERVIDOR: [
/*SERVIDOR*/ 10: [
{ id_procesador: 23, procesador: "Xeon Bronce, Plata, Oro 1a generación" },
{ id_procesador: 24, procesador: "Xeon E3, E5, E7" },
{ id_procesador: 25, procesador: "Xeon Phi" },
+19 -5
View File
@@ -2,14 +2,14 @@ export const SO_POR_EQUIPO: Record<
string,
{ id_sistema_operativo: number; sistema_operativo: string }[]
> = {
"ESCRITORIO PC": [
/*"ESCRITORIO PC"*/ 1: [
{ id_sistema_operativo: 1, sistema_operativo: "Windows 11" },
{ id_sistema_operativo: 2, sistema_operativo: "Windows 10" },
{ id_sistema_operativo: 3, sistema_operativo: "Windows 7/8" },
{ id_sistema_operativo: 4, sistema_operativo: "Windows XP/Vista" },
{ id_sistema_operativo: 5, sistema_operativo: "Linux" },
],
"ESCRITORIO APPLE": [
/*"ESCRITORIO MAC OS"*/ 2: [
{
id_sistema_operativo: 6,
sistema_operativo: "Mac OS (13 - Ventura, 14 - Sonoma)",
@@ -29,14 +29,28 @@ export const SO_POR_EQUIPO: Record<
"Mac OS X (Snow Leopard, Lion, Mountain Lion, Mavericks)",
},
],
"TABLETA ANDROID": [
/*"ESCRITORIO LINUX"*/ 3: [
{ id_sistema_operativo: 1, sistema_operativo: "Windows 11" },
{ id_sistema_operativo: 2, sistema_operativo: "Windows 10" },
{ id_sistema_operativo: 3, sistema_operativo: "Windows 7/8" },
{ id_sistema_operativo: 4, sistema_operativo: "Windows XP/Vista" },
{ id_sistema_operativo: 5, sistema_operativo: "Linux" },
],
/*"PORTÁTILES WINDOWS"*/ 4: [
{ id_sistema_operativo: 1, sistema_operativo: "Windows 11" },
{ id_sistema_operativo: 2, sistema_operativo: "Windows 10" },
{ id_sistema_operativo: 3, sistema_operativo: "Windows 7/8" },
{ id_sistema_operativo: 4, sistema_operativo: "Windows XP/Vista" },
{ id_sistema_operativo: 10, sistema_operativo: "Chrome OS" },
],
"TABLETA iPAD OS": [
/*"PORTÁTILES CHROMEBOOK"*/ 5: [
{ id_sistema_operativo: 1, sistema_operativo: "Windows 11" },
{ id_sistema_operativo: 2, sistema_operativo: "Windows 10" },
{ id_sistema_operativo: 3, sistema_operativo: "Windows 7/8" },
{ id_sistema_operativo: 4, sistema_operativo: "Windows XP/Vista" },
{ id_sistema_operativo: 10, sistema_operativo: "Chrome OS" },
],
/*"PORTÁTILES MAC OS"*/ 6: [
{
id_sistema_operativo: 6,
sistema_operativo: "Mac OS (13 - Ventura, 14 - Sonoma)",
@@ -56,7 +70,7 @@ export const SO_POR_EQUIPO: Record<
"Mac OS X (Snow Leopard, Lion, Mountain Lion, Mavericks)",
},
],
SERVIDOR: [
/*SERVIDOR*/ 10: [
{
id_sistema_operativo: 12,
sistema_operativo: