Nueva mejoras Y estabilidad
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -1,147 +1,139 @@
|
||||
@using MieSystem.Models;
|
||||
@using MieSystem.Models
|
||||
@using MieSystem.Models.ViewModels
|
||||
|
||||
@model ExpedienteViewModel
|
||||
|
||||
<form id="@(ViewData["IsEdit"] != null && (bool)ViewData["IsEdit"] ? "editForm" : "createForm")"
|
||||
method="post"
|
||||
enctype="multipart/form-data"
|
||||
data-id="@(Model?.Id ?? 0)">
|
||||
@{
|
||||
bool isEdit = ViewData["IsEdit"] != null && (bool)ViewData["IsEdit"];
|
||||
}
|
||||
|
||||
@if (ViewData["IsEdit"] != null && (bool)ViewData["IsEdit"])
|
||||
<form id="@(isEdit ? "editForm" : "createForm")"
|
||||
method="post"
|
||||
enctype="multipart/form-data">
|
||||
|
||||
@* SOLO EN EDIT SE ENVÍA EL ID *@
|
||||
@if (isEdit)
|
||||
{
|
||||
<input type="hidden" asp-for="Id" />
|
||||
}
|
||||
|
||||
<!-- Campo oculto para almacenar la URL de la imagen subida -->
|
||||
<input type="hidden" asp-for="FotoUrl" />
|
||||
@* Campo oculto para la URL de la imagen *@
|
||||
<input type="hidden" asp-for="FotoUrl" value="@(Model?.FotoUrl ?? "/images/default-avatar.png")" />
|
||||
|
||||
<div class="row">
|
||||
<!-- Columna izquierda - Datos personales -->
|
||||
<!-- ================= COLUMNA IZQUIERDA ================= -->
|
||||
<div class="col-md-6">
|
||||
<div class="card mb-3">
|
||||
<div class="card-header bg-light">
|
||||
<h6 class="mb-0">Datos Personales</h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<!-- Foto -->
|
||||
|
||||
<!-- FOTO -->
|
||||
<div class="mb-3 text-center">
|
||||
<div class="mb-2">
|
||||
<img id="@(ViewData["IsEdit"] != null && (bool)ViewData["IsEdit"] ? "fotoPreviewEdit" : "fotoPreview")"
|
||||
src="@(Model?.FotoUrl ?? "/images/default-avatar.png")"
|
||||
alt="Foto del niño"
|
||||
class="rounded-circle border"
|
||||
style="width: 120px; height: 120px; object-fit: cover;">
|
||||
</div>
|
||||
<div class="d-flex justify-content-center align-items-center gap-2">
|
||||
<img id="@(isEdit ? "fotoPreviewEdit" : "fotoPreview")"
|
||||
src="@(Model?.FotoUrl ?? "/images/default-avatar.png")"
|
||||
class="rounded-circle border mb-2"
|
||||
style="width:120px;height:120px;object-fit:cover;" />
|
||||
|
||||
<div class="d-flex justify-content-center gap-2">
|
||||
<label class="btn btn-sm btn-outline-primary">
|
||||
<i class="bi bi-camera me-1"></i> Seleccionar Foto
|
||||
<input type="file"
|
||||
asp-for="Foto"
|
||||
id="@(ViewData["IsEdit"] != null && (bool)ViewData["IsEdit"] ? "FotoEdit" : "Foto")"
|
||||
id="@(isEdit ? "FotoEdit" : "Foto")"
|
||||
class="d-none"
|
||||
accept="image/*">
|
||||
accept="image/*" />
|
||||
</label>
|
||||
|
||||
<!-- Botón para eliminar imagen -->
|
||||
<button type="button"
|
||||
id="@(isEdit ? "deleteFotoEdit" : "deleteFoto")"
|
||||
class="btn btn-sm btn-outline-danger"
|
||||
id="@(ViewData["IsEdit"] != null && (bool)ViewData["IsEdit"] ? "deleteFotoEdit" : "deleteFoto")"
|
||||
style="display: @((Model?.FotoUrl != null && Model.FotoUrl != "/images/default-avatar.png") ? "block" : "none");">
|
||||
style="display:@(Model?.FotoUrl != null && Model.FotoUrl != "/images/default-avatar.png" ? "block" : "none")">
|
||||
<i class="bi bi-trash me-1"></i> Eliminar
|
||||
</button>
|
||||
</div>
|
||||
<div class="mt-2">
|
||||
<small class="text-muted">Formatos permitidos: JPG, PNG, GIF, BMP. Tamaño máximo: 5MB</small>
|
||||
</div>
|
||||
|
||||
<span asp-validation-for="Foto" class="text-danger"></span>
|
||||
</div>
|
||||
|
||||
<!-- Nombre -->
|
||||
<!-- NOMBRE -->
|
||||
<div class="mb-3">
|
||||
<label asp-for="Nombre" class="form-label">Nombre *</label>
|
||||
<input asp-for="Nombre" class="form-control" placeholder="Ingrese el nombre">
|
||||
<input asp-for="Nombre" class="form-control" />
|
||||
<span asp-validation-for="Nombre" class="text-danger"></span>
|
||||
</div>
|
||||
|
||||
<!-- Apellidos -->
|
||||
<!-- APELLIDOS -->
|
||||
<div class="mb-3">
|
||||
<label asp-for="Apellidos" class="form-label">Apellidos *</label>
|
||||
<input asp-for="Apellidos" class="form-control" placeholder="Ingrese los apellidos">
|
||||
<input asp-for="Apellidos" class="form-control" />
|
||||
<span asp-validation-for="Apellidos" class="text-danger"></span>
|
||||
</div>
|
||||
|
||||
<!-- Fecha de Nacimiento -->
|
||||
<!-- FECHA NACIMIENTO -->
|
||||
<div class="mb-3">
|
||||
<label asp-for="FechaNacimiento" class="form-label">Fecha de Nacimiento *</label>
|
||||
<input asp-for="FechaNacimiento" type="date" class="form-control">
|
||||
<input asp-for="FechaNacimiento" type="date" class="form-control" />
|
||||
<span asp-validation-for="FechaNacimiento" class="text-danger"></span>
|
||||
</div>
|
||||
|
||||
<!-- Sexo -->
|
||||
<!-- SEXO -->
|
||||
<div class="mb-3">
|
||||
<label asp-for="Sexo" class="form-label">Sexo *</label>
|
||||
<div>
|
||||
<div class="form-check form-check-inline">
|
||||
<input class="form-check-input" type="radio" asp-for="Sexo" value="M" id="sexoM">
|
||||
<label class="form-check-label" for="sexoM">Masculino</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline">
|
||||
<input class="form-check-input" type="radio" asp-for="Sexo" value="F" id="sexoF">
|
||||
<label class="form-check-label" for="sexoF">Femenino</label>
|
||||
</div>
|
||||
<label class="form-label">Sexo *</label><br />
|
||||
<div class="form-check form-check-inline">
|
||||
<input class="form-check-input" type="radio" asp-for="Sexo" value="M" />
|
||||
<label class="form-check-label">Masculino</label>
|
||||
</div>
|
||||
<div class="form-check form-check-inline">
|
||||
<input class="form-check-input" type="radio" asp-for="Sexo" value="F" />
|
||||
<label class="form-check-label">Femenino</label>
|
||||
</div>
|
||||
<span asp-validation-for="Sexo" class="text-danger"></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Columna derecha - Datos familiares y dirección -->
|
||||
<!-- ================= COLUMNA DERECHA ================= -->
|
||||
<div class="col-md-6">
|
||||
<div class="card mb-3">
|
||||
<div class="card-header bg-light">
|
||||
<h6 class="mb-0">Datos Familiares</h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<!-- Nombre del Padre -->
|
||||
|
||||
<div class="mb-3">
|
||||
<label asp-for="NombrePadre" class="form-label">Nombre del Padre</label>
|
||||
<input asp-for="NombrePadre" class="form-control" placeholder="Ingrese nombre del padre">
|
||||
<span asp-validation-for="NombrePadre" class="text-danger"></span>
|
||||
<input asp-for="NombrePadre" class="form-control" />
|
||||
</div>
|
||||
|
||||
<!-- Nombre de la Madre -->
|
||||
<div class="mb-3">
|
||||
<label asp-for="NombreMadre" class="form-label">Nombre de la Madre</label>
|
||||
<input asp-for="NombreMadre" class="form-control" placeholder="Ingrese nombre de la madre">
|
||||
<span asp-validation-for="NombreMadre" class="text-danger"></span>
|
||||
<input asp-for="NombreMadre" class="form-control" />
|
||||
</div>
|
||||
|
||||
<!-- Nombre del Responsable -->
|
||||
<div class="mb-3">
|
||||
<label asp-for="NombreResponsable" class="form-label">Nombre del Responsable *</label>
|
||||
<input asp-for="NombreResponsable" class="form-control" placeholder="Ingrese nombre del responsable">
|
||||
<input asp-for="NombreResponsable" class="form-control" />
|
||||
<span asp-validation-for="NombreResponsable" class="text-danger"></span>
|
||||
</div>
|
||||
|
||||
<!-- Parentesco del Responsable -->
|
||||
<div class="mb-3">
|
||||
<label asp-for="ParentescoResponsable" class="form-label">Parentesco del Responsable</label>
|
||||
<label asp-for="ParentescoResponsable" class="form-label">Parentesco</label>
|
||||
<select asp-for="ParentescoResponsable" class="form-select">
|
||||
<option value="">Seleccione parentesco</option>
|
||||
<option value="Padre">Padre</option>
|
||||
<option value="Madre">Madre</option>
|
||||
<option value="Abuelo">Abuelo</option>
|
||||
<option value="Abuela">Abuela</option>
|
||||
<option value="Tío">Tío</option>
|
||||
<option value="Tía">Tía</option>
|
||||
<option value="Hermano">Hermano</option>
|
||||
<option value="Hermana">Hermana</option>
|
||||
<option value="Otro">Otro</option>
|
||||
<option value="">Seleccione</option>
|
||||
<option>Padre</option>
|
||||
<option>Madre</option>
|
||||
<option>Abuelo</option>
|
||||
<option>Abuela</option>
|
||||
<option>Tío</option>
|
||||
<option>Tía</option>
|
||||
<option>Otro</option>
|
||||
</select>
|
||||
<span asp-validation-for="ParentescoResponsable" class="text-danger"></span>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -150,26 +142,23 @@
|
||||
<h6 class="mb-0">Dirección y Contacto</h6>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<!-- Dirección -->
|
||||
|
||||
<div class="mb-3">
|
||||
<label asp-for="Direccion" class="form-label">Dirección *</label>
|
||||
<textarea asp-for="Direccion" class="form-control" rows="3" placeholder="Ingrese dirección completa"></textarea>
|
||||
<textarea asp-for="Direccion" class="form-control"></textarea>
|
||||
<span asp-validation-for="Direccion" class="text-danger"></span>
|
||||
</div>
|
||||
|
||||
<!-- Teléfono -->
|
||||
<div class="mb-3">
|
||||
<label asp-for="Telefono" class="form-label">Teléfono de Contacto</label>
|
||||
<input asp-for="Telefono" class="form-control" placeholder="Ingrese número telefónico">
|
||||
<span asp-validation-for="Telefono" class="text-danger"></span>
|
||||
<label asp-for="Telefono" class="form-label">Teléfono</label>
|
||||
<input asp-for="Telefono" class="form-control" />
|
||||
</div>
|
||||
|
||||
<!-- Observaciones -->
|
||||
<div class="mb-3">
|
||||
<label asp-for="Observaciones" class="form-label">Observaciones</label>
|
||||
<textarea asp-for="Observaciones" class="form-control" rows="2" placeholder="Observaciones adicionales"></textarea>
|
||||
<span asp-validation-for="Observaciones" class="text-danger"></span>
|
||||
<textarea asp-for="Observaciones" class="form-control"></textarea>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user