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; }
|
.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.
|
/* 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. */
|
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;
|
.lnk-corregir { background:none; border:none; border-radius:4px;
|
||||||
color:#1565c0; cursor:pointer; padding:3px 9px; font-size:11px;
|
color:#1565c0; cursor:pointer; padding:1px 5px; font-size:10px;
|
||||||
font-weight:600; white-space:nowrap; flex-shrink:0;
|
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; }
|
.lnk-corregir:hover { background:#1565c0; border-color:#1565c0; color:#fff; }
|
||||||
.campo-linked-valor { flex: 1; font-size: 13px; font-weight: 600;
|
.campo-linked-valor { flex: 1; font-size: 13px; font-weight: 600;
|
||||||
color: #1565c0; }
|
color: #1565c0; }
|
||||||
@@ -1294,7 +1295,7 @@ function _addExamWizardHtml(string $cid): string {
|
|||||||
<?php if ($modoTurnero && $embebido && $modoEditar && !$_lnkBtnPuesto): $_lnkBtnPuesto = true; ?>
|
<?php if ($modoTurnero && $embebido && $modoEditar && !$_lnkBtnPuesto): $_lnkBtnPuesto = true; ?>
|
||||||
<button type="button" class="lnk-corregir no-print" onclick="pedirCorregirPaciente()"
|
<button type="button" class="lnk-corregir no-print" onclick="pedirCorregirPaciente()"
|
||||||
title="Abrir la ficha del paciente para corregir sus datos">
|
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>
|
</button>
|
||||||
<?php endif; ?>
|
<?php endif; ?>
|
||||||
</div>
|
</div>
|
||||||
@@ -2306,6 +2307,8 @@ window._profDocumento = <?= json_encode($profDocumento) ?>;
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
var datos = json.datos_respuestas || {};
|
var datos = json.datos_respuestas || {};
|
||||||
|
var tocados = [], llenos = 0;
|
||||||
|
|
||||||
document.querySelectorAll('[name]').forEach(function(el) {
|
document.querySelectorAll('[name]').forEach(function(el) {
|
||||||
var raw = el.name, isArr = raw.slice(-2) === '[]', name = isArr ? raw.slice(0, -2) : raw;
|
var raw = el.name, isArr = raw.slice(-2) === '[]', name = isArr ? raw.slice(0, -2) : raw;
|
||||||
if (!(name in datos)) return;
|
if (!(name in datos)) return;
|
||||||
@@ -2318,9 +2321,25 @@ window._profDocumento = <?= json_encode($profDocumento) ?>;
|
|||||||
} else {
|
} else {
|
||||||
el.value = val;
|
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.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() {
|
.catch(function() {
|
||||||
btn.disabled = false;
|
btn.disabled = false;
|
||||||
|
|||||||
Reference in New Issue
Block a user