diff --git a/modules/turnero/views/kiosko.php b/modules/turnero/views/kiosko.php index a57dd1f..858c529 100644 --- a/modules/turnero/views/kiosko.php +++ b/modules/turnero/views/kiosko.php @@ -391,11 +391,11 @@ unset($p); margin: .6rem 0 1rem; } .np-btn { - padding: 1rem; - font-size: 1.6rem; + padding: .8rem; + font-size: 1.4rem; font-weight: 700; border: 1.5px solid #e2e8f0; - border-radius: 12px; + border-radius: 10px; background: #fff; color: #1e293b; cursor: pointer; @@ -409,7 +409,7 @@ unset($p); .np-clear { color: #ef4444; border-color: #fca5a5; } .np-back { color: #64748b; } .np-ok { background: var(--brand); color: #fff; border-color: var(--brand); - font-size: 1.15rem; padding: 1.1rem; } + font-size: 1rem; padding: .9rem; } /* ── Responsive ── */ @media (min-height: 800px) { @@ -621,14 +621,23 @@ unset($p); }); // El lector casi siempre envía Enter al final → disparar de inmediato. - // Tab entre campos del código de barras: prevenir que el browser cambie el foco. + // Tab entre campos del código de barras: prevenir foco y BLOQUEAR el campo + // (el Tab indica fin de la cédula — todo lo que sigue es apellido/fecha/etc). + let _scannerLocked = false; _inpCedula.addEventListener('keydown', (e) => { if (e.key === 'Tab') { e.preventDefault(); + // Si ya tenemos dígitos válidos, bloquear el campo aquí mismo + if (/^\d{5,15}$/.test(_inpCedula.value.trim())) _scannerLocked = true; + return; + } + if (_scannerLocked && e.key.length === 1) { + e.preventDefault(); // ignorar todo lo que llega después del primer Tab return; } if (e.key === 'Enter') { e.preventDefault(); + _scannerLocked = false; const val = _inpCedula.value.trim(); if (/^\d{5,15}$/.test(val)) confirmarTurno(); } @@ -681,6 +690,7 @@ unset($p); const inpCedula = document.getElementById('inp-cedula'); inpCedula.focus(); inpCedula.value = ''; + _scannerLocked = false; _keyTimes = []; clearTimeout(_timerRafaga); resetInactividad(); @@ -766,6 +776,7 @@ unset($p); confirmarTurno(); return; } else if (k === 'C') { + _scannerLocked = false; inp.value = ''; } else if (k === '⌫') { inp.value = inp.value.slice(0, -1);