From 49be6da9f73e3215793ba28a8dbe420a7b9edc25 Mon Sep 17 00:00:00 2001 From: guilherme Date: Wed, 26 Nov 2025 09:33:51 -0300 Subject: [PATCH] =?UTF-8?q?feat(App):=20atualizar=20visualiza=C3=A7=C3=A3o?= =?UTF-8?q?=20de=20protocolos=20com=20novas=20m=C3=A9tricas=20e=20gr=C3=A1?= =?UTF-8?q?ficos?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 80 +++++++++++++++++++++++------------------------------ 1 file changed, 34 insertions(+), 46 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index fda3b72..848e569 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -18,46 +18,35 @@ import { Header } from './views/components/header'; import type { ChartConfig } from './views/components/ui/chart'; import { ProtocolsDashboard } from './views/protocols/protocols-dashboard'; -export const description = 'A stacked bar chart with a legend'; +export const description = + 'Métricas de protocolos — tipos e status (gestão pública)'; -const bestPricesConfig = { - price: { - label: 'Preço', - color: '#007cb8', - }, +const protocolsByTypeConfig = { + licitacao: { label: 'Licitações', color: '#0b69a3' }, + contrato: { label: 'Contratos', color: '#007cb8' }, + convenio: { label: 'Convênios', color: '#36c1fa' }, + termo: { label: 'Termos Aditivos', color: '#7cd5fd' }, } satisfies ChartConfig; -const bestPricesData = [ - { station: 'Shell', price: 5.42 }, - { station: 'Ipiranga', price: 5.35 }, - { station: 'BR', price: 5.38 }, - { station: 'Ale', price: 5.3 }, +const protocolsByTypeData = [ + { type: 'Licitação', count: 32 }, + { type: 'Contrato', count: 48 }, + { type: 'Convênio', count: 18 }, + { type: 'Termo Aditivo', count: 7 }, ]; -const vehicleStatusConfig = { - active: { - label: 'Ativos', - color: '#007cb8', - }, - maintenance: { - label: 'Manutenção', - color: '#0ca9eb', - }, - inactive: { - label: 'Inativos', - color: '#36c1fa', - }, - reserved: { - label: 'Reservados', - color: '#7cd5fd', - }, +const protocolStatusConfig = { + andamento: { label: 'Em andamento', color: '#007cb8' }, + concluido: { label: 'Concluído', color: '#0ca9eb' }, + suspenso: { label: 'Suspenso', color: '#36c1fa' }, + cancelado: { label: 'Cancelado', color: '#7cd5fd' }, } satisfies ChartConfig; -const vehicleStatusData = [ - { status: 'active', count: 45, fill: '#007cb8' }, - { status: 'maintenance', count: 12, fill: '#0ca9eb' }, - { status: 'inactive', count: 8, fill: '#36c1fa' }, - { status: 'reserved', count: 15, fill: '#7cd5fd' }, +const protocolStatusData = [ + { status: 'andamento', count: 65, fill: '#007cb8' }, + { status: 'concluido', count: 20, fill: '#0ca9eb' }, + { status: 'suspenso', count: 8, fill: '#36c1fa' }, + { status: 'cancelado', count: 7, fill: '#7cd5fd' }, ]; export function App() { @@ -70,17 +59,17 @@ export function App() {
- Postos com Melhor Preço + Protocolos por Tipo - Comparativo de preços entre os principais postos + Distribuição de protocolos por tipo de procedimento - - + + } /> - + @@ -97,19 +86,19 @@ export function App() { - Status dos Veículos + Status dos Protocolos - Distribuição dos veículos por status de operação + Visão geral do status operacional dos protocolos } />
- Frota operando com 85% de disponibilidade{' '} - + 65% dos protocolos em andamento
- Status atual da frota de veículos + Resumo dos principais status dos protocolos