Cargar datos de la visita anterior: los datos entraban pero no se veían
El botón sí traía las respuestas —comprobado con C028, que encuentra su visita C014 y devuelve 12 campos—, pero los asignaba a mano con el.value y el.checked. Eso no dispara ningún evento, y las secciones condicionales del F-LAB-08 (tipo de dolor, tipo de cáncer, grupo sanguíneo) se despliegan escuchando 'change' e 'input'. Los datos entraban al formulario y las secciones seguían ocultas, así que desde afuera parecía que el botón no hacía nada. Ahora se disparan input y change en cada campo tocado, y el mensaje dice cuántos datos se cargaron en vez de un texto fijo: si son cero, lo dice, en lugar de afirmar que cargó. Aparte: el botón «Corregir datos» del formulario quedó demasiado grande en el cambio anterior. Vuelve a ser discreto —enlace subrayado de 10px— pero con texto, que era lo que le faltaba para encontrarlo. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 5
parent
b63807c39a
commit
2162ca7d68
@@ -698,10 +698,11 @@ function _addExamWizardHtml(string $cid): string {
|
||||
.campo-linked-label { flex: 0 0 38%; font-size: 12px; color: #6c757d; }
|
||||
/* Antes era solo un lápiz gris de 11px: estaba, pero nadie lo encontraba.
|
||||
Lleva texto y contorno para que se lea como lo que es, un botón. */
|
||||
.lnk-corregir { background:#fff; border:1px solid #bfdbfe; border-radius:6px;
|
||||
color:#1565c0; cursor:pointer; padding:3px 9px; font-size:11px;
|
||||
.lnk-corregir { background:none; border:none; border-radius:4px;
|
||||
color:#1565c0; cursor:pointer; padding:1px 5px; font-size:10px;
|
||||
font-weight:600; white-space:nowrap; flex-shrink:0;
|
||||
display:inline-flex; align-items:center; gap:5px; }
|
||||
display:inline-flex; align-items:center; gap:3px;
|
||||
text-decoration:underline; }
|
||||
.lnk-corregir:hover { background:#1565c0; border-color:#1565c0; color:#fff; }
|
||||
.campo-linked-valor { flex: 1; font-size: 13px; font-weight: 600;
|
||||
color: #1565c0; }
|
||||
@@ -1294,7 +1295,7 @@ function _addExamWizardHtml(string $cid): string {
|
||||
<?php if ($modoTurnero && $embebido && $modoEditar && !$_lnkBtnPuesto): $_lnkBtnPuesto = true; ?>
|
||||
<button type="button" class="lnk-corregir no-print" onclick="pedirCorregirPaciente()"
|
||||
title="Abrir la ficha del paciente para corregir sus datos">
|
||||
<i class="fas fa-pen"></i>Corregir datos
|
||||
<i class="fas fa-pen" style="font-size:9px"></i>Corregir
|
||||
</button>
|
||||
<?php endif; ?>
|
||||
</div>
|
||||
@@ -2306,6 +2307,8 @@ window._profDocumento = <?= json_encode($profDocumento) ?>;
|
||||
return;
|
||||
}
|
||||
var datos = json.datos_respuestas || {};
|
||||
var tocados = [], llenos = 0;
|
||||
|
||||
document.querySelectorAll('[name]').forEach(function(el) {
|
||||
var raw = el.name, isArr = raw.slice(-2) === '[]', name = isArr ? raw.slice(0, -2) : raw;
|
||||
if (!(name in datos)) return;
|
||||
@@ -2318,9 +2321,25 @@ window._profDocumento = <?= json_encode($profDocumento) ?>;
|
||||
} else {
|
||||
el.value = val;
|
||||
}
|
||||
tocados.push(el);
|
||||
llenos++;
|
||||
});
|
||||
|
||||
// Asignar el valor a mano no dispara ningún evento, y las secciones
|
||||
// condicionales del formulario —tipo de dolor, tipo de cáncer, grupo
|
||||
// sanguíneo— se despliegan escuchando 'change' e 'input'. Sin esto los
|
||||
// datos entraban pero las secciones seguían ocultas, así que parecía
|
||||
// que el botón no hacía nada.
|
||||
tocados.forEach(function(el) {
|
||||
['input', 'change'].forEach(function(tipo) {
|
||||
el.dispatchEvent(new Event(tipo, { bubbles: true }));
|
||||
});
|
||||
});
|
||||
|
||||
msg.style.display = '';
|
||||
msg.textContent = 'Datos cargados de la visita ' + (json.turno_codigo || '') + '. Revise y firme.';
|
||||
msg.textContent = llenos
|
||||
? 'Se cargaron ' + llenos + ' dato(s) de la visita ' + (json.turno_codigo || '') + '. Revise y firme.'
|
||||
: 'La visita ' + (json.turno_codigo || '') + ' no tiene datos que correspondan a este formulario.';
|
||||
})
|
||||
.catch(function() {
|
||||
btn.disabled = false;
|
||||
|
||||
Reference in New Issue
Block a user