Grande correção do filtro de veiculos na area de consolidação
This commit is contained in:
@@ -9,6 +9,7 @@ export default class extends Controller {
|
||||
"linha", "checkbox", "selecionarTodos", "busca", "buscaVazia",
|
||||
"resumo", "listaCol", "btnResumoLabel",
|
||||
"toggles", "barra", "barraManuais", "percentual", "chipVeiculo",
|
||||
"consolidarBtn", "consolidarHint",
|
||||
"contadorClassificadas", "contadorTotal", "contadorManuais", "manuaisInfo",
|
||||
"qtdNormal", "qtdRetirada", "qtdBonus", "qtdDesconto", "qtdExtraordinaria",
|
||||
"qtdTermo", "qtdManuais", "valorTotal"
|
||||
@@ -217,6 +218,23 @@ export default class extends Controller {
|
||||
this.barraTarget.classList.toggle("bg-green-500", pct >= 100)
|
||||
this.barraTarget.classList.toggle("bg-orange-500", pct < 100)
|
||||
|
||||
// Botão "Consolidar este veículo" (só existe quando UM veículo está
|
||||
// selecionado e ainda não fechado): habilita quando o escopo chega a 100%.
|
||||
if (this.hasConsolidarBtnTarget) {
|
||||
const pronto = pct >= 100
|
||||
this.consolidarBtnTarget.disabled = !pronto
|
||||
this.consolidarBtnTarget.classList.toggle("bg-green-600", pronto)
|
||||
this.consolidarBtnTarget.classList.toggle("hover:bg-green-500", pronto)
|
||||
this.consolidarBtnTarget.classList.toggle("text-white", pronto)
|
||||
this.consolidarBtnTarget.classList.toggle("cursor-pointer", pronto)
|
||||
this.consolidarBtnTarget.classList.toggle("bg-[#2a2a2a]", !pronto)
|
||||
this.consolidarBtnTarget.classList.toggle("text-gray-600", !pronto)
|
||||
this.consolidarBtnTarget.classList.toggle("cursor-not-allowed", !pronto)
|
||||
if (this.hasConsolidarHintTarget)
|
||||
this.consolidarHintTarget.textContent =
|
||||
pronto ? "Pronto para consolidar." : "Classifique 100% deste veículo para consolidar."
|
||||
}
|
||||
|
||||
if (dados.veiculos_status) this.atualizarChips(dados.veiculos_status)
|
||||
}
|
||||
|
||||
@@ -227,9 +245,12 @@ export default class extends Controller {
|
||||
const porVeiculo = {}
|
||||
status.forEach(v => { porVeiculo[v.vehicle] = v })
|
||||
|
||||
const VERDE = ["border-green-500", "text-green-400", "bg-green-500/10"]
|
||||
const LARANJA = ["border-orange-500", "text-orange-400", "bg-orange-500/10"]
|
||||
const NEUTRO = ["border-[#2a2a2a]", "text-gray-300"]
|
||||
const LARANJA = ["border-orange-500", "text-orange-400", "bg-orange-500/10"]
|
||||
const VERDE_FECHADO = ["border-green-500", "text-green-400", "bg-green-500/10"]
|
||||
const VERDE_PRONTO = ["border-green-600/50", "text-green-400"]
|
||||
const ARQUIVADO = ["border-dashed", "border-[#3a3a3a]", "text-gray-500"]
|
||||
const NEUTRO = ["border-[#2a2a2a]", "text-gray-300"]
|
||||
const TODAS = [...LARANJA, ...VERDE_FECHADO, ...VERDE_PRONTO, ...ARQUIVADO, ...NEUTRO]
|
||||
|
||||
this.chipVeiculoTargets.forEach(chip => {
|
||||
const dados = porVeiculo[chip.dataset.vehicle]
|
||||
@@ -237,17 +258,23 @@ export default class extends Controller {
|
||||
const feito = chip.querySelector("[data-chip-feito]")
|
||||
const total = chip.querySelector("[data-chip-total]")
|
||||
const check = chip.querySelector("[data-chip-check]")
|
||||
const lock = chip.querySelector("[data-chip-lock]")
|
||||
if (feito) feito.textContent = dados.classificadas
|
||||
if (total) total.textContent = dados.eligible
|
||||
if (check) check.textContent = dados.fechado ? "✓" : ""
|
||||
if (check) check.textContent = dados.completo ? "✓" : ""
|
||||
if (lock) lock.classList.toggle("hidden", !dados.fechado)
|
||||
|
||||
// Estado de cor determinístico: laranja (selecionado) > verde (fechado) > neutro.
|
||||
// Seleção tem prioridade para o usuário sempre enxergar quais carros somam.
|
||||
chip.classList.remove(...VERDE, ...LARANJA, ...NEUTRO)
|
||||
// Cor determinística: selecionado(laranja) > consolidado(verde+🔒) >
|
||||
// pronto(verde) > arquivado(cinza) > neutro.
|
||||
chip.classList.remove(...TODAS)
|
||||
if (this.veiculosValue.includes(chip.dataset.vehicle)) {
|
||||
chip.classList.add(...LARANJA)
|
||||
} else if (dados.fechado) {
|
||||
chip.classList.add(...VERDE)
|
||||
chip.classList.add(...VERDE_FECHADO)
|
||||
} else if (dados.completo) {
|
||||
chip.classList.add(...VERDE_PRONTO)
|
||||
} else if (dados.arquivado) {
|
||||
chip.classList.add(...ARQUIVADO)
|
||||
} else {
|
||||
chip.classList.add(...NEUTRO)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user