feat(recepcion): mostrar contador de exámenes seleccionados
Badge junto al título "Exámenes solicitados" que muestra cuántos exámenes lleva el turno actual. Se actualiza en tiempo real al agregar o quitar ítems del TomSelect. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
fa591873a9
commit
3d26700e16
@@ -709,7 +709,9 @@ document.addEventListener('DOMContentLoaded', function() {
|
|||||||
|
|
||||||
<!-- ── Sección 3: Exámenes ── -->
|
<!-- ── Sección 3: Exámenes ── -->
|
||||||
<div class="ficha-section">
|
<div class="ficha-section">
|
||||||
<h6><i class="fas fa-vial me-1"></i>Exámenes solicitados</h6>
|
<h6><i class="fas fa-vial me-1"></i>Exámenes solicitados
|
||||||
|
<span id="exam-count-badge" class="badge bg-primary ms-1 d-none"></span>
|
||||||
|
</h6>
|
||||||
<div class="form-check mb-2">
|
<div class="form-check mb-2">
|
||||||
<input class="form-check-input" type="checkbox" id="chk-solo-muestras" onchange="toggleSoloMuestras()">
|
<input class="form-check-input" type="checkbox" id="chk-solo-muestras" onchange="toggleSoloMuestras()">
|
||||||
<label class="form-check-label small fw-semibold text-warning" for="chk-solo-muestras">
|
<label class="form-check-label small fw-semibold text-warning" for="chk-solo-muestras">
|
||||||
@@ -1150,14 +1152,22 @@ let pollingConsentimientosId = null;
|
|||||||
|
|
||||||
let examTS;
|
let examTS;
|
||||||
|
|
||||||
|
function _actualizarContadorExamenes() {
|
||||||
|
const badge = document.getElementById('exam-count-badge');
|
||||||
|
if (!badge || !examTS) return;
|
||||||
|
const n = examTS.items.length;
|
||||||
|
badge.textContent = n;
|
||||||
|
badge.classList.toggle('d-none', n === 0);
|
||||||
|
}
|
||||||
|
|
||||||
document.addEventListener('DOMContentLoaded', () => {
|
document.addEventListener('DOMContentLoaded', () => {
|
||||||
examTS = new TomSelect('#sel-examenes', {
|
examTS = new TomSelect('#sel-examenes', {
|
||||||
plugins: ['remove_button'],
|
plugins: ['remove_button'],
|
||||||
maxOptions: null,
|
maxOptions: null,
|
||||||
selectOnTab: false,
|
selectOnTab: false,
|
||||||
|
|
||||||
onItemAdd() { recalcularPrecios(); examTS.setTextboxValue(''); examTS.refreshOptions(false); examTS.close(); },
|
onItemAdd() { recalcularPrecios(); _actualizarContadorExamenes(); examTS.setTextboxValue(''); examTS.refreshOptions(false); examTS.close(); },
|
||||||
onItemRemove: () => recalcularPrecios(),
|
onItemRemove() { recalcularPrecios(); _actualizarContadorExamenes(); },
|
||||||
onType(str) {
|
onType(str) {
|
||||||
if (!str) return;
|
if (!str) return;
|
||||||
requestAnimationFrame(() => {
|
requestAnimationFrame(() => {
|
||||||
|
|||||||
Reference in New Issue
Block a user