From f5662eed077414cb0bc718859301fe9ffb7e5692 Mon Sep 17 00:00:00 2001 From: AdalbertoCV <34152734@uaz.edu.mx> Date: Thu, 3 Oct 2024 13:35:49 -0600 Subject: [PATCH] =?UTF-8?q?Actualizacion=20de=20dise=C3=B1os=20formularios?= =?UTF-8?q?=20din=C3=A1micos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/modalidades/CrearModalidad.css | 94 +++++++- .../components/modalidades/CrearModalidad.jsx | 138 ++++++------ .../modalidades/EditarModalidad.jsx | 200 ++++++++++-------- 3 files changed, 269 insertions(+), 163 deletions(-) diff --git a/cosiap_frontend/src/components/modalidades/CrearModalidad.css b/cosiap_frontend/src/components/modalidades/CrearModalidad.css index 9112abd..4d82bf3 100644 --- a/cosiap_frontend/src/components/modalidades/CrearModalidad.css +++ b/cosiap_frontend/src/components/modalidades/CrearModalidad.css @@ -90,15 +90,22 @@ textarea { } .delete-button { - background-color: #f44336; - color: white; - border: none; - padding: 8px 12px; - font-size: 14px; - border-radius: 16px; - cursor: pointer; - margin-top: 10px; - margin-right: 10px; + background-color: #f44336; + color: white; + border: none; + padding: 8px 12px; + font-size: 14px; + border-radius: 16px; + cursor: pointer; + margin-top: 10px; + margin-right: 10px; + display: flex; + align-items: center; + justify-content: center; +} + +.delete-button i { + font-size: 16px; /* Ajusta el tamaño del ícono */ } .delete-button:hover { @@ -110,10 +117,11 @@ textarea { background-color: #4fb659; color: white; padding: 10px 20px; - font-size: 16px; + font-size: 14px; border: none; border-radius: 16px; cursor: pointer; + font-style: oblique; margin-top: 20px; } @@ -175,6 +183,22 @@ input[type="checkbox"] { background-color: #f5f5f5; } +.element-card { + border: 1px solid #ddd; + border-radius: 5px; + margin: 15px 0; + padding: 10px; + background-color: #adacac; +} + +.element-card-header{ + font-weight: bold; +} + +.element-card-body{ + padding: 10px; +} + .card-header { font-weight: bold; } @@ -189,4 +213,54 @@ input[type="checkbox"] { padding: 5px; border-radius: 5px; background-color: #e9e9e9; +} + +.form-row { + display: flex; + align-items: center; /* Alinea los elementos al centro verticalmente */ + gap: 10px; /* Espacio entre los elementos */ + height: auto; /* Asegúrate de que la altura del contenedor sea flexible */ +} + +.form-row label { + flex-shrink: 0; /* Evita que el label se encoja */ +} + +.form-row input { + flex: 1; /* Hace que el input ocupe el espacio disponible */ +} + +.element-row { + display: flex; + align-items: center; + justify-content: space-between; /* Para que el input esté a la izquierda y los botones a la derecha */ + gap: 10px; /* Espacio entre el input y los botones */ + width: 100%; /* Asegura que ocupe todo el ancho disponible */ +} + +.element-input { + width: 100%; + padding: 8px; + border: 1px solid #ccc; + border-radius: 4px; + font-size: 16px; +} + +.element-buttons { + display: flex; + gap: 5px; /* Espacio entre los botones */ +} + +.form-row input, +.form-row button, +.form-row label { + line-height: normal; /* Asegura que todos los elementos tengan una línea de texto coherente */ + padding: 8px; /* Ajusta el padding para que sea igual en todos los elementos */ + height: auto; /* Permite que los elementos ajusten su altura automáticamente */ + font-size: 15px; /* Asegura que todos tengan el mismo tamaño de fuente */ + font-style:oblique; +} + +.form-row input { + flex: 1; /* Hace que el input crezca según el espacio disponible */ } \ No newline at end of file diff --git a/cosiap_frontend/src/components/modalidades/CrearModalidad.jsx b/cosiap_frontend/src/components/modalidades/CrearModalidad.jsx index fb3ba54..e07f781 100644 --- a/cosiap_frontend/src/components/modalidades/CrearModalidad.jsx +++ b/cosiap_frontend/src/components/modalidades/CrearModalidad.jsx @@ -268,6 +268,7 @@ const CreateModalidad = () => {
+
{ placeholder="Ingrese el nombre del formulario" required /> + +
@@ -284,6 +293,7 @@ const CreateModalidad = () => {

Sección {sectionIndex + 1}

+
{ placeholder="Nombre de la sección" required /> -
- {/* Botón para eliminar sección */} - + + +
+ - -

{section.elements.map((element, elementIndex) => (

Elemento {elementIndex + 1}

+
{ placeholder="Nombre del elemento" required /> + {/* Opciones si el tipo es seleccionable */} + {['opcion_multiple', 'desplegable', 'casillas'].includes(element.type) && ( + <> + + + )} + {/* Botón para eliminar elemento */} + + +
@@ -362,67 +394,45 @@ const CreateModalidad = () => {
)} - - {/* Botón para eliminar elemento */} - - - - {/* Opciones si el tipo es seleccionable */} {['opcion_multiple', 'desplegable', 'casillas'].includes(element.type) && ( - <> -
Opciones:
- {element.options.map((option, optionIndex) => ( -
-
- - - updateOption(sectionIndex, elementIndex, optionIndex, 'name', e.target.value) - } - placeholder="Nombre de la opción" - required - /> -
- - {/* Botón para eliminar opción */} + <> +
Opciones:
+ {element.options.map((option, optionIndex) => ( +
+
+ +
+ + updateOption(sectionIndex, elementIndex, optionIndex, 'name', e.target.value) + } + placeholder="Nombre de la opción" + required + /> +
- ))} - - - )} +
+ ))} + + )}
))}
))}
-
- - setFormName(e.target.value)} - /> + +
+ setFormName(e.target.value)} + /> + +
+ + {/* Input para agregar nueva sección */} + {isAddingSection && ( +
+
+ setNewSectionName(e.target.value)} + placeholder="Nombre de la nueva sección" + /> +
+ +
+
+
+ )}
{/* Secciones del formulario */} {Object.values(sections).map((section,sectionIndex) => (
-

Sección {sectionIndex + 1}

+

Sección {sectionIndex + 1}

+
handleUpdateSectionName(section.id, e.target.value)} placeholder="Nombre de la sección" /> - - - {isAddingElement && selectedSectionId === section.id && ( -
+ +
+ {isAddingElement && selectedSectionId === section.id && ( +
{
)}
-
+
{Object.values(section.elementos).map((element, elementIndex) => ( -
+

Elemento {elementIndex + 1}

+
+
+
+ + {['opcion_multiple', 'desplegable', 'casillas'].includes(element.tipo) && ( + <> + + + + )} + +
+ +
- + {isAddingOption && selectedElementId === element.id && ( +
+
+ setNewOptionName(e.target.value)} + placeholder="Nombre de la nueva opción" + /> + +
+
+ )} +
{element.tipo === 'documento' && (
@@ -682,51 +763,15 @@ const EditModalidad = () => {
)} - - - {['opcion_multiple', 'desplegable', 'casillas'].includes(element.tipo) && ( - <> - - - {isAddingOption && selectedElementId === element.id && ( -
- setNewOptionName(e.target.value)} - placeholder="Nombre de la nueva opción" - /> - -
- )} - - )} {/* Opciones del elemento (si existen) */} {element.opciones && Object.values(element.opciones).map((option, optionIndex) => ( -
+

Opción {optionIndex +1}

))} @@ -750,38 +797,13 @@ const EditModalidad = () => { ))}
-
-
- {/* Input para agregar nueva sección */} - {isAddingSection && ( -
- setNewSectionName(e.target.value)} - placeholder="Nombre de la nueva sección" - /> -
- -
-
- )} -
); -- GitLab