From 0a9713c298943c7e9ad44552f0cc351f553bbff55d11d4e2141d9d149e37c773 Mon Sep 17 00:00:00 2001 From: victor Date: Tue, 30 Jun 2026 17:15:23 -0300 Subject: [PATCH] =?UTF-8?q?Coloca=C3=A7=C3=A3o=20da=20lupa=20para=20pesqui?= =?UTF-8?q?sa=20na=20consolida=C3=A7=C3=A3o=20do=20motorista=20e=20melhor?= =?UTF-8?q?=20suporte=20para=20telas=20pequenas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controllers/validacao_controller.js | 23 ++++++++++++++++--- .../consolidacao_entregas/validar.html.erb | 23 ++++++++++++++----- 2 files changed, 37 insertions(+), 9 deletions(-) diff --git a/app/javascript/controllers/validacao_controller.js b/app/javascript/controllers/validacao_controller.js index 3e34c95..c984400 100644 --- a/app/javascript/controllers/validacao_controller.js +++ b/app/javascript/controllers/validacao_controller.js @@ -6,7 +6,7 @@ import { Controller } from "@hotwired/stimulus" export default class extends Controller { static targets = [ - "linha", "checkbox", "selecionarTodos", + "linha", "checkbox", "selecionarTodos", "busca", "buscaVazia", "toggles", "barra", "barraManuais", "percentual", "chipVeiculo", "contadorClassificadas", "contadorTotal", "contadorManuais", "manuaisInfo", "qtdNormal", "qtdRetirada", "qtdBonus", "qtdDesconto", "qtdExtraordinaria", @@ -64,10 +64,27 @@ export default class extends Controller { } } - // ── Selecionar / desmarcar todos os checkboxes ───────────── + // ── Busca na listagem de notas (filtra os cards por NF/local/endereço/veículo) ── + filtrarBusca(event) { + const q = (event.currentTarget.value || "").trim().toLowerCase() + let visiveis = 0 + this.linhaTargets.forEach(l => { + const ok = q === "" || (l.dataset.busca || "").includes(q) + l.classList.toggle("hidden", !ok) + if (ok) visiveis++ + }) + if (this.hasBuscaVaziaTarget) + this.buscaVaziaTarget.classList.toggle("hidden", q === "" || visiveis > 0) + } + + // ── Selecionar / desmarcar todos os checkboxes (só os visíveis na busca) ── selecionarTodos(event) { const marcar = event.currentTarget.checked - this.checkboxTargets.forEach(c => { c.checked = marcar }) + this.checkboxTargets.forEach(c => { + const linha = c.closest("[data-busca]") + if (linha && linha.classList.contains("hidden")) return + c.checked = marcar + }) } // O pilar está ativo (ring-2) na entrega indicada? diff --git a/app/views/consolidacao_entregas/validar.html.erb b/app/views/consolidacao_entregas/validar.html.erb index cef8dbc..736afdb 100644 --- a/app/views/consolidacao_entregas/validar.html.erb +++ b/app/views/consolidacao_entregas/validar.html.erb @@ -13,7 +13,7 @@
<%# Header %> -
+
<%= link_to '← Voltar (Passo 1)', wizard_consolidacao_path(@consolidacao), class: 'inline-flex items-center gap-1 bg-[#1a1a1a] hover:bg-[#2a2a2a] text-white border border-[#2a2a2a] hover:border-orange-500 font-semibold px-4 py-2.5 rounded-lg text-sm min-h-[44px]' %>
@@ -28,7 +28,7 @@
<%# Barra de progresso (reflete o veículo selecionado, se houver) %> -
+
<% if @veiculos_sel.any? %>🚚 <%= @veiculos_sel.join(', ') %> — <% end %> @@ -49,7 +49,7 @@ <%# Fechar por veículo — filtra a tela por carro e mostra quais já estão fechados. Só aparece quando o motorista usou mais de um veículo no período. %> <% if @veiculos_status.size > 1 %> -
+
🚗 Fechar por veículo: clique para filtrar/somar um ou vários carros (clique de novo p/ tirar) @@ -82,7 +82,7 @@ <% end %> <%# Ações em massa + filtro %> -
+