Modificaciones en algunas funcionalidades
This commit is contained in:
Generated
+5639
File diff suppressed because it is too large
Load Diff
+5
-3
@@ -5,7 +5,6 @@ import Footer from "@/components/layout/footer";
|
||||
import '@/sass/bootstrap.scss';
|
||||
import "./globals.css";
|
||||
|
||||
|
||||
const geistSans = Geist({
|
||||
variable: "--font-geist-sans",
|
||||
subsets: ["latin"],
|
||||
@@ -17,8 +16,11 @@ const geistMono = Geist_Mono({
|
||||
});
|
||||
|
||||
export const metadata: Metadata = {
|
||||
title: "Create Next App",
|
||||
description: "Generated by create next app",
|
||||
title: "Directorio de Funcionarios Fes Acatlan",
|
||||
description: "Este es un servicio para buscar a los funcionarios de Acatlan",
|
||||
icons: {
|
||||
icon: '/static/favicon.ico',
|
||||
},
|
||||
};
|
||||
|
||||
export default function RootLayout({
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
'use client';
|
||||
|
||||
import React, { useState } from 'react';
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import axios from 'axios';
|
||||
import { Funcionario } from '../types/Funcionarios';
|
||||
import { PayloadBusqueda } from '../types/Funcionarios';
|
||||
import { errorBuscar, funcionarioNoEncontrado } from '@/utils/alerts'
|
||||
import { errorBuscar, funcionarioNoEncontrado } from '@/utils/alerts';
|
||||
|
||||
interface BuscarFuncionarioProps {
|
||||
onResultados: (data: Funcionario[]) => void;
|
||||
@@ -15,17 +15,18 @@ export default function BuscarFuncionario({ onResultados }: BuscarFuncionarioPro
|
||||
const [apellidos, setApellidos] = useState('');
|
||||
const [area, setArea] = useState('0');
|
||||
|
||||
const fetchData = async () => {
|
||||
const fetchData = async (tipo?: 'manual' | 'auto') => {
|
||||
try {
|
||||
const payload: PayloadBusqueda = {};
|
||||
|
||||
//Validar que haya datos para buscar
|
||||
if (area === '0' && !nombre.trim() && !apellidos.trim()) {
|
||||
errorBuscar();
|
||||
if (tipo === 'manual') errorBuscar();
|
||||
return;
|
||||
}
|
||||
|
||||
// Tipo de búsqueda
|
||||
if (area !== '0') {
|
||||
// Búsqueda por área
|
||||
payload.tipoBusqueda = 'area';
|
||||
payload.IdUnidadResponsable = parseInt(area, 10);
|
||||
} else {
|
||||
@@ -34,26 +35,9 @@ export default function BuscarFuncionario({ onResultados }: BuscarFuncionarioPro
|
||||
payload.Apellidos = apellidos.trim();
|
||||
}
|
||||
|
||||
/*
|
||||
if (area !== '0') {
|
||||
// Búsqueda por área
|
||||
payload.tipoBusqueda = 'area';
|
||||
payload.IdUnidadResponsable = parseInt(area, 10);
|
||||
} else if (nombre.trim() || apellidos.trim()) {
|
||||
// Búsqueda por nombre/apellidos
|
||||
payload.tipoBusqueda = 'nombre';
|
||||
payload.Nombre = nombre.trim();
|
||||
payload.Apellidos = apellidos.trim();
|
||||
} else {
|
||||
alert('Por favor llena al menos un campo para filtrar.');
|
||||
return;
|
||||
}
|
||||
*/
|
||||
|
||||
const url = process.env.NEXT_PUBLIC_API_FUNCIONARIOS;
|
||||
|
||||
if (!url) throw new Error("Url no definida en las variables de entorno");
|
||||
console.log(payload)
|
||||
|
||||
const response = await axios.post(url, payload);
|
||||
|
||||
if (Array.isArray(response.data) && response.data.length > 0) {
|
||||
@@ -63,145 +47,153 @@ export default function BuscarFuncionario({ onResultados }: BuscarFuncionarioPro
|
||||
onResultados([]);
|
||||
}
|
||||
|
||||
//Limpiar campos después de buscar
|
||||
setNombre('');
|
||||
setApellidos('');
|
||||
setArea('0');
|
||||
|
||||
} catch (error) {
|
||||
console.error('Error al buscar funcionario:', error);
|
||||
|
||||
//Limpiar filtro aunque falle
|
||||
setNombre('');
|
||||
setApellidos('');
|
||||
setArea('0');
|
||||
|
||||
funcionarioNoEncontrado();
|
||||
onResultados([]);
|
||||
}
|
||||
};
|
||||
|
||||
const limpiarFiltro = () => {
|
||||
setNombre('');
|
||||
setApellidos('');
|
||||
setArea('0');
|
||||
onResultados([]); // También limpiamos en el padre
|
||||
};
|
||||
//Búsqueda automática al seleccionar un área
|
||||
useEffect(() => {
|
||||
if (area !== '0') {
|
||||
fetchData('auto');
|
||||
}
|
||||
}, [area]);
|
||||
|
||||
return (
|
||||
<div className="col-12 col-md-3 mb-4">
|
||||
<div className="bg-white p-4 rounded shadow-sm">
|
||||
<h4 className="mb-4">Filtro</h4>
|
||||
<div className="bg-white p-4 rounded shadow-sm">
|
||||
<h4 className="mb-4">Filtro</h4>
|
||||
|
||||
{/* Nombre */}
|
||||
<form
|
||||
onSubmit={(e) => {
|
||||
e.preventDefault();
|
||||
fetchData();
|
||||
}}
|
||||
>
|
||||
|
||||
<div className="mb-3">
|
||||
<label htmlFor="nombre" className="form-label">Nombre</label>
|
||||
<input
|
||||
type="text"
|
||||
id="nombre"
|
||||
className="form-control"
|
||||
value={nombre}
|
||||
onChange={(e) => setNombre(e.target.value)}
|
||||
/>
|
||||
</div>
|
||||
<form
|
||||
onSubmit={(e) => {
|
||||
e.preventDefault();
|
||||
fetchData('manual');
|
||||
}}
|
||||
>
|
||||
{/* Nombre */}
|
||||
<div className="mb-3">
|
||||
<label htmlFor="nombre" className="form-label">Nombre</label>
|
||||
<input
|
||||
type="text"
|
||||
id="nombre"
|
||||
className="form-control"
|
||||
value={nombre}
|
||||
onChange={(e) => setNombre(e.target.value)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Apellidos */}
|
||||
<div className="mb-3">
|
||||
<label htmlFor="apellidos" className="form-label">Apellidos</label>
|
||||
<input
|
||||
type="text"
|
||||
id="apellidos"
|
||||
className="form-control"
|
||||
value={apellidos}
|
||||
onChange={(e) => setApellidos(e.target.value)}
|
||||
/>
|
||||
</div>
|
||||
{/* Apellidos */}
|
||||
<div className="mb-3">
|
||||
<label htmlFor="apellidos" className="form-label">Apellidos</label>
|
||||
<input
|
||||
type="text"
|
||||
id="apellidos"
|
||||
className="form-control"
|
||||
value={apellidos}
|
||||
onChange={(e) => setApellidos(e.target.value)}
|
||||
/>
|
||||
</div>
|
||||
|
||||
{/* Área */}
|
||||
<div className="mb-3">
|
||||
<label htmlFor="adscripcion" className="form-label">Área</label>
|
||||
<select
|
||||
id="bus_depid"
|
||||
name="bus_depid"
|
||||
className="form-select"
|
||||
value={area}
|
||||
onChange={(e) => setArea(e.target.value)}
|
||||
>
|
||||
<option value="0">-- Selecciona un área --</option>
|
||||
<option value="128"> Coordinación de Actividades Deportivas y Recreativas </option>
|
||||
<option value="122"> Coordinación de Comunicación Social </option>
|
||||
<option value="9"> Coordinación de Cuerpos Colegiados </option>
|
||||
<option value="126"> Coordinación de Derecho del Sistema de Universidad Abierta y Educación a Distancia </option>
|
||||
<option value="206"> Coordinación de Especializaciones </option>
|
||||
<option value="120"> Coordinación de Estudios de Posgrado </option>
|
||||
<option value="182"> Coordinación de la Unidad de Investigación Multidisciplinaria Aplicada </option>
|
||||
<option value="174"> Coordinación de LICEL Sistema de Universidad Abierta y Educación a Distancia </option>
|
||||
<option value="221"> Coordinación de Maestrías y Doctorados </option>
|
||||
<option value="152"> Coordinación de Relaciones Internacionales del Sistema de Universidad Abierta y Educación a Distancia </option>
|
||||
<option value="121"> Coordinación de Servicios Académicos </option>
|
||||
<option value="125"> Coordinación del Centro de Difusión Cultural </option>
|
||||
<option value="124"> Coordinación del Centro de Educación Continua </option>
|
||||
<option value="129"> Coordinación del Centro de Enseñanza de Idiomas </option>
|
||||
<option value="214"> Coordinación del Centro de Estudios Municipales y Metropolitanos </option>
|
||||
<option value="176"> Coordinación del Centro Tecnológico para la Educación a Distancia </option>
|
||||
<option value="58"> Coordinación del Programa de Actuaría </option>
|
||||
<option value="57"> Coordinación del Programa de Arquitectura </option>
|
||||
<option value="46"> Coordinación del Programa de Comunicación </option>
|
||||
<option value="56"> Coordinación del Programa de Derecho </option>
|
||||
<option value="55"> Coordinación del Programa de Diseño Gráfico </option>
|
||||
<option value="54"> Coordinación del Programa de Economía </option>
|
||||
<option value="49"> Coordinación del Programa de Enseñanza de Inglés </option>
|
||||
<option value="52"> Coordinación del Programa de Humanidades </option>
|
||||
<option value="51"> Coordinación del Programa de Ingeniería Civil </option>
|
||||
<option value="48"> Coordinación del Programa de Matemáticas Aplicadas y Computación </option>
|
||||
<option value="47"> Coordinación del Programa de Pedagogía </option>
|
||||
<option value="44"> Coordinación del Programa de Sociología </option>
|
||||
<option value="43"> Coordinación del Programa Político </option>
|
||||
<option value="194"> Departamento de Intendencia </option>
|
||||
<option value="193"> Departamento de Investigación en Comunicación y Estudios Culturales </option>
|
||||
<option value="222"> Departamento de Orientación Académica del Sistema de Universidad Abierta y Educación a Distancia </option>
|
||||
<option value="204"> Departamento de Proyectos Administrativos </option>
|
||||
<option value="86"> Departamento de Talleres y Laboratorios </option>
|
||||
<option value="72"> Dirección </option>
|
||||
<option value="80"> División de Ciencias Jurídicas </option>
|
||||
<option value="79"> División de Ciencias Socioeconómicas </option>
|
||||
<option value="78"> División de Diseño y Edificación </option>
|
||||
<option value="77"> División de Humanidades </option>
|
||||
<option value="76"> División de Matemáticas e Ingeniería </option>
|
||||
<option value="74"> División del Sistema de Universidad Abierta y Educación a Distancia </option>
|
||||
<option value="70"> Especialización en Costos en la Construcción </option>
|
||||
<option value="69"> Especialización en Finanzas Públicas </option>
|
||||
<option value="68"> Especialización en Geotecnia </option>
|
||||
<option value="71"> Especialización en Sistemas de Calidad </option>
|
||||
<option value="220"> Especialización en Tecnología Digital para la Enseñanza de Matemáticas </option>
|
||||
<option value="207"> Grupo de Trabajo de Educación para Adultos (GTEA) </option>
|
||||
<option value="173"> Maestría en Docencia para la Educación Media Superior </option>
|
||||
<option value="224"> Posgrado en Ciencias Políticas y Sociales </option>
|
||||
<option value="62"> Posgrado en Derecho </option>
|
||||
<option value="164"> Posgrado en Economía </option>
|
||||
<option value="197"> Posgrado en Pedagogía </option>
|
||||
<option value="63"> Posgrado en Urbanismo </option>
|
||||
<option value="226"> Programa Único de Especializaciones en Derecho </option>
|
||||
<option value="127"> Secretaría Administrativa </option>
|
||||
<option value="181"> Secretaría de Asuntos Académicos Estudiantiles </option>
|
||||
<option value="177"> Secretaría de Extensión Universitaria y Vinculación Institucional </option>
|
||||
<option value="119"> Secretaría de Posgrado e Investigación </option>
|
||||
<option value="8"> Secretaría General </option>
|
||||
<option value="6"> Unidad de Administración Escolar </option>
|
||||
<option value="5"> Unidad de Administración y Recursos </option>
|
||||
<option value="4"> Unidad de Planeación </option>
|
||||
<option value="3"> Unidad de Servicios a la Comunidad </option>
|
||||
<option value="2"> Unidad de Servicios Editoriales </option>
|
||||
<option value="1"> Unidad de Talleres, Laboratorios y Audiovisuales </option>
|
||||
<option value="130"> Unidad del Centro de Desarrollo Tecnológico </option>
|
||||
<option value="123"> Unidad del Centro de Información y Documentación </option>
|
||||
</select>
|
||||
</div>
|
||||
{/* Área */}
|
||||
<div className="mb-3">
|
||||
<label htmlFor="adscripcion" className="form-label">Área</label>
|
||||
<select
|
||||
id="bus_depid"
|
||||
name="bus_depid"
|
||||
className="form-select"
|
||||
value={area}
|
||||
onChange={(e) => setArea(e.target.value)}
|
||||
>
|
||||
<option value="0">-- Selecciona un área --</option>
|
||||
<option value="128">Coordinación de Actividades Deportivas y Recreativas</option>
|
||||
<option value="122">Coordinación de Comunicación Social</option>
|
||||
<option value="9">Coordinación de Cuerpos Colegiados</option>
|
||||
<option value="126">Coordinación de Derecho del Sistema de Universidad Abierta y Educación a Distancia</option>
|
||||
<option value="206">Coordinación de Especializaciones</option>
|
||||
<option value="120">Coordinación de Estudios de Posgrado</option>
|
||||
<option value="182">Coordinación de la Unidad de Investigación Multidisciplinaria Aplicada</option>
|
||||
<option value="174">Coordinación de LICEL Sistema de Universidad Abierta y Educación a Distancia</option>
|
||||
<option value="221">Coordinación de Maestrías y Doctorados</option>
|
||||
<option value="152">Coordinación de Relaciones Internacionales del Sistema de Universidad Abierta y Educación a Distancia</option>
|
||||
<option value="121">Coordinación de Servicios Académicos</option>
|
||||
<option value="125">Coordinación del Centro de Difusión Cultural</option>
|
||||
<option value="124">Coordinación del Centro de Educación Continua</option>
|
||||
<option value="129">Coordinación del Centro de Enseñanza de Idiomas</option>
|
||||
<option value="214">Coordinación del Centro de Estudios Municipales y Metropolitanos</option>
|
||||
<option value="176">Coordinación del Centro Tecnológico para la Educación a Distancia</option>
|
||||
<option value="58">Coordinación del Programa de Actuaría</option>
|
||||
<option value="57">Coordinación del Programa de Arquitectura</option>
|
||||
<option value="46">Coordinación del Programa de Comunicación</option>
|
||||
<option value="56">Coordinación del Programa de Derecho</option>
|
||||
<option value="55">Coordinación del Programa de Diseño Gráfico</option>
|
||||
<option value="54">Coordinación del Programa de Economía</option>
|
||||
<option value="49">Coordinación del Programa de Enseñanza de Inglés</option>
|
||||
<option value="52">Coordinación del Programa de Humanidades</option>
|
||||
<option value="51">Coordinación del Programa de Ingeniería Civil</option>
|
||||
<option value="48">Coordinación del Programa de Matemáticas Aplicadas y Computación</option>
|
||||
<option value="47">Coordinación del Programa de Pedagogía</option>
|
||||
<option value="44">Coordinación del Programa de Sociología</option>
|
||||
<option value="43">Coordinación del Programa Político</option>
|
||||
<option value="194">Departamento de Intendencia</option>
|
||||
<option value="193">Departamento de Investigación en Comunicación y Estudios Culturales</option>
|
||||
<option value="222">Departamento de Orientación Académica del Sistema de Universidad Abierta y Educación a Distancia</option>
|
||||
<option value="204">Departamento de Proyectos Administrativos</option>
|
||||
<option value="86">Departamento de Talleres y Laboratorios</option>
|
||||
<option value="72">Dirección</option>
|
||||
<option value="80">División de Ciencias Jurídicas</option>
|
||||
<option value="79">División de Ciencias Socioeconómicas</option>
|
||||
<option value="78">División de Diseño y Edificación</option>
|
||||
<option value="77">División de Humanidades</option>
|
||||
<option value="76">División de Matemáticas e Ingeniería</option>
|
||||
<option value="74">División del Sistema de Universidad Abierta y Educación a Distancia</option>
|
||||
<option value="70">Especialización en Costos en la Construcción</option>
|
||||
<option value="69">Especialización en Finanzas Públicas</option>
|
||||
<option value="68">Especialización en Geotecnia</option>
|
||||
<option value="71">Especialización en Sistemas de Calidad</option>
|
||||
<option value="220">Especialización en Tecnología Digital para la Enseñanza de Matemáticas</option>
|
||||
<option value="207">Grupo de Trabajo de Educación para Adultos (GTEA)</option>
|
||||
<option value="173">Maestría en Docencia para la Educación Media Superior</option>
|
||||
<option value="224">Posgrado en Ciencias Políticas y Sociales</option>
|
||||
<option value="62">Posgrado en Derecho</option>
|
||||
<option value="164">Posgrado en Economía</option>
|
||||
<option value="197">Posgrado en Pedagogía</option>
|
||||
<option value="63">Posgrado en Urbanismo</option>
|
||||
<option value="226">Programa Único de Especializaciones en Derecho</option>
|
||||
<option value="127">Secretaría Administrativa</option>
|
||||
<option value="181">Secretaría de Asuntos Académicos Estudiantiles</option>
|
||||
<option value="177">Secretaría de Extensión Universitaria y Vinculación Institucional</option>
|
||||
<option value="119">Secretaría de Posgrado e Investigación</option>
|
||||
<option value="8">Secretaría General</option>
|
||||
<option value="6">Unidad de Administración Escolar</option>
|
||||
<option value="5">Unidad de Administración y Recursos</option>
|
||||
<option value="4">Unidad de Planeación</option>
|
||||
<option value="3">Unidad de Servicios a la Comunidad</option>
|
||||
<option value="2">Unidad de Servicios Editoriales</option>
|
||||
<option value="1">Unidad de Talleres, Laboratorios y Audiovisuales</option>
|
||||
<option value="130">Unidad del Centro de Desarrollo Tecnológico</option>
|
||||
<option value="123">Unidad del Centro de Información y Documentación</option>
|
||||
</select>
|
||||
</div>
|
||||
|
||||
{/* Botones */}
|
||||
<div className="d-grid gap-2">
|
||||
<button className="btn btn-primary" type='submit'>Filtrar</button>
|
||||
<button className="btn btn-secondary" type='button' onClick={limpiarFiltro}>Limpiar Filtro</button>
|
||||
{/* Botón de buscar (sin limpiar) */}
|
||||
<div className="d-grid gap-2">
|
||||
<button className="btn btn-primary" type="submit">Buscar</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 6.9 KiB |
Reference in New Issue
Block a user