diff --git a/app/views/consolidacao_entregas/validar.html.erb b/app/views/consolidacao_entregas/validar.html.erb index 9b7253e..5440890 100644 --- a/app/views/consolidacao_entregas/validar.html.erb +++ b/app/views/consolidacao_entregas/validar.html.erb @@ -24,19 +24,21 @@ <%# basis-40: o nome não pode ser espremido até virar "P…" — se não couber com o resto, a linha quebra em vez de esmagar a identificação. %>
-

<%= icone :caminhao, espaco: false %> <%= @motorista %>

-

<%= @consolidacao.nome %> · <%= l @consolidacao.data_inicio, format: :short %> → <%= l @consolidacao.data_fim, format: :short %>

+

<%= icone :caminhao, espaco: false %> <%= @motorista %>

+

<%= @consolidacao.nome %> · <%= l @consolidacao.data_inicio, format: :short %> → <%= l @consolidacao.data_fim, format: :short %>

<%# Progresso ao lado do título (em vez de um card de 70px só p/ ele). No - celular vai para uma linha própria, no fim, para não brigar pelo espaço. %> -

- <% if @veiculos_sel.any? %><%= icone :caminhao %> <%= @veiculos_sel.join(', ') %> — <% end %> - <%= @classificadas %>/<%= @total_entregas %> - + celular vai para uma linha própria, no fim, para não brigar pelo espaço. + Números em branco/negrito: esta é a informação que o ADM confere o tempo + todo enquanto classifica — compactar não pode custar a leitura dela. %> +

+ <% if @veiculos_sel.any? %><%= icone :caminhao %> <%= @veiculos_sel.join(', ') %> — <% end %> + <%= @classificadas %>/<%= @total_entregas %> + classificadas · +<%= @manuais %> manuais - +

<%= link_to revisar_consolidacao_consolidacao_entregas_path(@consolidacao, motorista: @motorista), @@ -46,9 +48,9 @@ <%# Barra com 2 segmentos: laranja = elegíveis classificadas · azul = manuais %> -
-
-
+
+
+
<%# Fechar por veículo — filtra a tela por carro, mostra o estado (pronto/ diff --git a/app/views/consolidacoes/index.html.erb b/app/views/consolidacoes/index.html.erb index 64df335..47b5202 100644 --- a/app/views/consolidacoes/index.html.erb +++ b/app/views/consolidacoes/index.html.erb @@ -71,28 +71,37 @@
<%# ── Filtros ──────────────────────────────────────────── %> +<%# Filtros em flex-wrap, NÃO em grade de 6 colunas fixas. + Motivo: os breakpoints do Tailwind (md:, lg:…) enxergam a JANELA, mas o + conteúdo perde 256px para a sidebar (`main.md:ml-64`). A mesma janela de + 1280px tem duas larguras conforme o menu esteja aberto ou recolhido, então + `md:grid-cols-6` espremia os campos a ~150px e o texto do botão "Filtrar" + vazava para fora do fundo. Com flex-wrap + largura mínima, cada campo mantém + tamanho legível e a linha quebra sozinha conforme o espaço REAL. %> <%= form_with url: consolidacoes_path, method: :get, - class: 'bg-[#1a1a1a] border border-[#2a2a2a] rounded-xl p-4 mb-6 grid grid-cols-1 md:grid-cols-6 gap-3' do |f| %> + class: 'bg-[#1a1a1a] border border-[#2a2a2a] rounded-xl p-4 mb-6 flex flex-wrap items-center gap-3' do |f| %> <%= f.text_field :nome, value: params[:nome], placeholder: 'Buscar por nome…', - class: 'bg-[#0a0a0a] border border-[#2a2a2a] text-white rounded-lg px-3 py-2.5 focus:border-orange-500 focus:outline-none' %> + class: 'flex-1 basis-48 min-w-0 bg-[#0a0a0a] border border-[#2a2a2a] text-white rounded-lg px-3 py-2.5 focus:border-orange-500 focus:outline-none' %> <%= f.select :status, options_for_select([['Todos os status', ''], ['Rascunho', 'rascunho'], ['Finalizada', 'finalizada']], params[:status]), - {}, class: 'bg-[#0a0a0a] border border-[#2a2a2a] text-white rounded-lg px-3 py-2.5' %> + {}, class: 'flex-1 basis-40 min-w-0 bg-[#0a0a0a] border border-[#2a2a2a] text-white rounded-lg px-3 py-2.5' %> <%= f.select :pagamento, options_for_select([['Pagamento (todos)', ''], ['Pagas', 'pago'], ['Parciais', 'parcial'], ['Pendentes', 'pendente']], params[:pagamento]), - {}, class: 'bg-[#0a0a0a] border border-[#2a2a2a] text-white rounded-lg px-3 py-2.5' %> + {}, class: 'flex-1 basis-44 min-w-0 bg-[#0a0a0a] border border-[#2a2a2a] text-white rounded-lg px-3 py-2.5' %> <%= f.date_field :inicio, value: params[:inicio], - class: 'bg-[#0a0a0a] border border-[#2a2a2a] text-white rounded-lg px-3 py-2.5' %> + class: 'flex-1 basis-36 max-w-[13rem] min-w-0 bg-[#0a0a0a] border border-[#2a2a2a] text-white rounded-lg px-3 py-2.5' %> <%= f.date_field :fim, value: params[:fim], - class: 'bg-[#0a0a0a] border border-[#2a2a2a] text-white rounded-lg px-3 py-2.5' %> + class: 'flex-1 basis-36 max-w-[13rem] min-w-0 bg-[#0a0a0a] border border-[#2a2a2a] text-white rounded-lg px-3 py-2.5' %> -
- <%= f.submit 'Filtrar', class: 'flex-1 bg-orange-500 hover:bg-orange-600 text-black font-bold rounded-lg cursor-pointer' %> - <%= link_to 'Limpar', consolidacoes_path, class: 'px-4 py-2.5 text-gray-400 hover:text-white border border-[#2a2a2a] rounded-lg' %> + <%# shrink-0 + whitespace-nowrap: os botões nunca são espremidos a ponto de + cortar o texto — se faltar espaço, a linha quebra e eles descem inteiros. %> +
+ <%= f.submit 'Filtrar', class: 'bg-orange-500 hover:bg-orange-600 text-black font-bold rounded-lg cursor-pointer px-5 py-2.5 whitespace-nowrap' %> + <%= link_to 'Limpar', consolidacoes_path, class: 'px-4 py-2.5 text-gray-400 hover:text-white border border-[#2a2a2a] rounded-lg whitespace-nowrap' %>
<% end %> diff --git a/app/views/dashboard/index.html.erb b/app/views/dashboard/index.html.erb index b95e0a8..167d030 100644 --- a/app/views/dashboard/index.html.erb +++ b/app/views/dashboard/index.html.erb @@ -117,15 +117,21 @@
- <%# CARDS GRANDES — KPIs %> -
+ <%# CARDS GRANDES — KPIs + auto-fit + minmax em vez de `xl:grid-cols-5`: o breakpoint xl olha a JANELA + (1280px), mas com a sidebar aberta sobram ~960px de conteúdo — 5 colunas de + ~176px, e "R$ 82.692,00" em text-4xl era cortado pelo overflow-hidden do + card. Com auto-fit o número de colunas cai sozinho quando o menu está + aberto e sobe quando ele é recolhido, sem depender de breakpoint. %> +
- <%# Card 1: Valor estimado %> -
+ <%# Card 1: Valor estimado — sempre 2 faixas: é o maior número da tela %> +

<%= icone :dinheiro, cor: nil, espaco: false %> Valor Estimado

-

+ <%# break-words: se ainda faltar espaço, quebra a linha em vez de cortar %> +

<%= moeda(@valor_estimado) %>

@@ -178,7 +184,7 @@

<%# KPIs FINANCEIROS (consolidações finalizadas, já com filtro de operação) %> -
+

<%= icone :dinheiro, espaco: false %> Custo total

<%= moeda(@fin_custo_total) %>

@@ -445,7 +451,7 @@ <% if @por_operacao.any? %>

<%= icone :operacao, espaco: false %> Entregas por Local

-
+
<% total_op = @por_operacao.values.sum.to_f %> <% @por_operacao.each do |local, qtd| %>