|
|
|
|
<!-- ContenidoPrincipal.vue (refactorizado) -->
|
|
|
|
|
<template>
|
|
|
|
|
<NavbarModerno />
|
|
|
|
|
|
|
|
|
|
<div class="main-content">
|
|
|
|
|
<HeroSection
|
|
|
|
|
@scroll-to-convocatoria="scrollToConvocatoria"
|
|
|
|
|
@virtual-tour="openVirtualTour"
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
<ProcessSection />
|
|
|
|
|
|
|
|
|
|
<ConvocatoriasSection
|
|
|
|
|
@show-modal="showModal"
|
|
|
|
|
@open-preinscripcion="openPreinscripcion"
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
<ProgramasSection :facultades="facultades" />
|
|
|
|
|
|
|
|
|
|
<StatsSection />
|
|
|
|
|
|
|
|
|
|
<NoticiasSection :noticias="noticias" />
|
|
|
|
|
|
|
|
|
|
<ModalidadesSection :modalidades="modalidades" />
|
|
|
|
|
|
|
|
|
|
<ContactSection />
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<PreinscripcionModal
|
|
|
|
|
v-model:visible="preinscripcionModalVisible"
|
|
|
|
|
:facultades="facultades"
|
|
|
|
|
@submit="submitPreinscripcion"
|
|
|
|
|
/>
|
|
|
|
|
|
|
|
|
|
<FooterModerno />
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script setup>
|
|
|
|
|
import { ref, markRaw } from "vue"
|
|
|
|
|
import { message } from "ant-design-vue"
|
|
|
|
|
|
|
|
|
|
// Components
|
|
|
|
|
import NavbarModerno from '../components/nabvar.vue'
|
|
|
|
|
import FooterModerno from '../components/footer.vue'
|
|
|
|
|
|
|
|
|
|
// Secciones
|
|
|
|
|
import HeroSection from './WebPageSections/HeroSection.vue'
|
|
|
|
|
import ProcessSection from './WebPageSections/ProcessSection.vue'
|
|
|
|
|
import ConvocatoriasSection from './WebPageSections/ConvocatoriasSection.vue'
|
|
|
|
|
import ProgramasSection from './WebPageSections/ProgramasSection.vue'
|
|
|
|
|
import StatsSection from './WebPageSections/StatsSection.vue'
|
|
|
|
|
import NoticiasSection from './WebPageSections/NoticiasSection.vue'
|
|
|
|
|
import ModalidadesSection from './WebPageSections/ModalidadesSection.vue'
|
|
|
|
|
import ContactSection from './WebPageSections/ContactSection.vue'
|
|
|
|
|
import PreinscripcionModal from './WebPageSections//modal/PreinscripcionModal.vue'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// Iconos
|
|
|
|
|
import {
|
|
|
|
|
MedicineBoxOutlined,
|
|
|
|
|
BuildOutlined,
|
|
|
|
|
CodeOutlined,
|
|
|
|
|
BookOutlined,
|
|
|
|
|
TrophyOutlined,
|
|
|
|
|
BankOutlined,
|
|
|
|
|
ExperimentOutlined,
|
|
|
|
|
UserOutlined,
|
|
|
|
|
} from "@ant-design/icons-vue"
|
|
|
|
|
|
|
|
|
|
// Estado
|
|
|
|
|
const preinscripcionModalVisible = ref(false)
|
|
|
|
|
|
|
|
|
|
// Datos (estáticos → const, no ref)
|
|
|
|
|
const facultades = [
|
|
|
|
|
{
|
|
|
|
|
id: "1",
|
|
|
|
|
nombre: "Ciencias de la Salud",
|
|
|
|
|
carreras: [
|
|
|
|
|
{
|
|
|
|
|
id: 1,
|
|
|
|
|
nombre: "Medicina Humana",
|
|
|
|
|
grado: "Bachiller",
|
|
|
|
|
descripcion: "Formación médica integral con prácticas desde primer año",
|
|
|
|
|
vacantes: 50,
|
|
|
|
|
puntaje: "1800+",
|
|
|
|
|
icono: markRaw(MedicineBoxOutlined),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 2,
|
|
|
|
|
nombre: "Enfermería",
|
|
|
|
|
grado: "Bachiller",
|
|
|
|
|
descripcion: "Cuidado integral de la salud",
|
|
|
|
|
vacantes: 60,
|
|
|
|
|
puntaje: "1500+",
|
|
|
|
|
icono: markRaw(UserOutlined),
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: "2",
|
|
|
|
|
nombre: "Ingenierías",
|
|
|
|
|
carreras: [
|
|
|
|
|
{
|
|
|
|
|
id: 3,
|
|
|
|
|
nombre: "Ingeniería Civil",
|
|
|
|
|
grado: "Bachiller",
|
|
|
|
|
descripcion: "Diseño y construcción de infraestructura",
|
|
|
|
|
vacantes: 80,
|
|
|
|
|
puntaje: "1700+",
|
|
|
|
|
icono: markRaw(BuildOutlined),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 4,
|
|
|
|
|
nombre: "Ingeniería de Sistemas",
|
|
|
|
|
grado: "Bachiller",
|
|
|
|
|
descripcion: "Desarrollo de software e inteligencia artificial",
|
|
|
|
|
vacantes: 100,
|
|
|
|
|
puntaje: "1600+",
|
|
|
|
|
icono: markRaw(CodeOutlined),
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: "3",
|
|
|
|
|
nombre: "Derecho y Humanidades",
|
|
|
|
|
carreras: [
|
|
|
|
|
{
|
|
|
|
|
id: 5,
|
|
|
|
|
nombre: "Derecho",
|
|
|
|
|
grado: "Bachiller",
|
|
|
|
|
descripcion: "Formación jurídica integral",
|
|
|
|
|
vacantes: 120,
|
|
|
|
|
puntaje: "1550+",
|
|
|
|
|
icono: markRaw(BookOutlined),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 6,
|
|
|
|
|
nombre: "Psicología",
|
|
|
|
|
grado: "Bachiller",
|
|
|
|
|
descripcion: "Ciencias del comportamiento humano",
|
|
|
|
|
vacantes: 70,
|
|
|
|
|
puntaje: "1450+",
|
|
|
|
|
icono: markRaw(UserOutlined),
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
},
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
const modalidades = [
|
|
|
|
|
{
|
|
|
|
|
id: 1,
|
|
|
|
|
nombre: "Admisión Ordinaria",
|
|
|
|
|
descripcion: "Examen de conocimientos generales",
|
|
|
|
|
estado: "Abierto",
|
|
|
|
|
estadoColor: "success",
|
|
|
|
|
color: "#1890ff",
|
|
|
|
|
icono: markRaw(BookOutlined),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 2,
|
|
|
|
|
nombre: "Evaluación de Talentos",
|
|
|
|
|
descripcion: "Para deportistas y artistas destacados",
|
|
|
|
|
estado: "Próximamente",
|
|
|
|
|
estadoColor: "orange",
|
|
|
|
|
color: "#faad14",
|
|
|
|
|
icono: markRaw(TrophyOutlined),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 3,
|
|
|
|
|
nombre: "Traslado Externo",
|
|
|
|
|
descripcion: "Estudiantes de otras universidades",
|
|
|
|
|
estado: "Cerrado",
|
|
|
|
|
estadoColor: "red",
|
|
|
|
|
color: "#ff4d4f",
|
|
|
|
|
icono: markRaw(BankOutlined),
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 4,
|
|
|
|
|
nombre: "Segunda Carrera",
|
|
|
|
|
descripcion: "Para profesionales graduados",
|
|
|
|
|
estado: "Abierto",
|
|
|
|
|
estadoColor: "success",
|
|
|
|
|
color: "#52c41a",
|
|
|
|
|
icono: markRaw(ExperimentOutlined),
|
|
|
|
|
},
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
const noticias = [
|
|
|
|
|
{
|
|
|
|
|
id: 1,
|
|
|
|
|
titulo: "Nuevo Laboratorio de Investigación",
|
|
|
|
|
descripcion: "Inauguramos el moderno laboratorio de ciencias con tecnología de punta.",
|
|
|
|
|
fecha: "15 Nov 2023",
|
|
|
|
|
categoria: "Infraestructura",
|
|
|
|
|
tagColor: "blue",
|
|
|
|
|
imagen:
|
|
|
|
|
"https://images.unsplash.com/photo-1532094349884-543bc11b234d?auto=format&fit=crop&w=600&q=80",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 2,
|
|
|
|
|
titulo: "Convenio Internacional",
|
|
|
|
|
descripcion: "Firmamos acuerdo con universidad europea para intercambio estudiantil.",
|
|
|
|
|
fecha: "10 Nov 2023",
|
|
|
|
|
categoria: "Internacional",
|
|
|
|
|
tagColor: "green",
|
|
|
|
|
imagen:
|
|
|
|
|
"https://images.unsplash.com/photo-1523050854058-8df90110c9f1?auto=format&fit=crop&w=600&q=80",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
id: 3,
|
|
|
|
|
titulo: "Resultados Publicados",
|
|
|
|
|
descripcion: "Consulta los resultados del examen de admisión extraordinario.",
|
|
|
|
|
fecha: "5 Nov 2023",
|
|
|
|
|
categoria: "Resultados",
|
|
|
|
|
tagColor: "red",
|
|
|
|
|
imagen:
|
|
|
|
|
"https://images.unsplash.com/photo-1562774053-701939374585?auto=format&fit=crop&w=600&q=80",
|
|
|
|
|
},
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
// Métodos
|
|
|
|
|
const scrollToConvocatoria = () => {
|
|
|
|
|
const el = document.getElementById("convocatorias")
|
|
|
|
|
el?.scrollIntoView({ behavior: "smooth", block: "start" })
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const openVirtualTour = () => {
|
|
|
|
|
// pon aquí tu URL real
|
|
|
|
|
window.open("https://example.com", "_blank", "noopener,noreferrer")
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const openPreinscripcion = () => {
|
|
|
|
|
preinscripcionModalVisible.value = true
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const showModal = (type) => {
|
|
|
|
|
console.log("Mostrar modal:", type)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const submitPreinscripcion = () => {
|
|
|
|
|
message.success("Preinscripción iniciada exitosamente")
|
|
|
|
|
preinscripcionModalVisible.value = false
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped>
|
|
|
|
|
.main-content {
|
|
|
|
|
min-height: 100vh;
|
|
|
|
|
}
|
|
|
|
|
</style>
|