StatisticsCardLine

src/components/statistics-cards/StatisticsCardLine.vue
Display Medium 4 usos

Card de estatística com ícone Feather, valor numérico, título e gráfico ApexCharts embutido (linha ou área). Layout vertical: topo com ícone + número + título, base com gráfico sparkline de 100px. Suporta modo sem gráfico (hideChart), ícone à direita (iconRight) e gradiente horizontal customizável. Cor do gráfico reage ao themePrimaryColor do Vuex store.

Sem Gráfico

Card de estatística simples sem gráfico — ícone acima do valor e título. Texto centralizado. Uso dominante no admin Pedbot (Analytics.vue).

1.234
Total de Mensagens Humanizadas
Real src/views/analytics/Analytics.vue:36

Linha com Ícone à Direita

Gráfico de linha com ícone à direita e texto à esquerda. Layout horizontal flip via flex-row-reverse.

78.9k
Site Traffic
Real src/views/ui-elements/card/CardStatistics.vue:166

Gráfico de Área

Gráfico de área (gradiente vertical monochrome) com ícone acima. Cor primary por padrão.

92
Subscribers Gained
Real src/views/DashboardECommerce.vue:5

Linha com Ícone no Topo

Gráfico de linha (gradiente horizontal) com ícone acima do valor. Layout padrão do componente.

1.234
Atendimentos
Sintético synthetic

Variantes de Cor

Mesma estrutura com color diferente. O ícone e o gráfico assumem a cor configurada.

4.5k
Revenue Generated
12.3k
Orders Received
845
Quarterly Sales
Real DashboardECommerce.vue:14, :25, :35

API

Exemplo de uso
<statistics-card-line
  icon="MessageSquareIcon"
  :statistic="1234"
  statisticTitle="Atendimentos Hoje"
  :chartData="[{ name: 'Atendimentos', data: [28, 40, 36, 52, 38, 60, 55] }]"
  color="primary"
  type="area"
  :hideChart="false"
  :iconRight="false"
/>

Props

NomeTipoDefaultObrig.Descrição
iconString Sim Nome do ícone Feather (ex: 'ShoppingBagIcon'). Exibido em círculo colorido com fundo semi-transparente.
statisticNumber | String Sim Valor principal em h2 bold. Ex: '1.234', '87%'.
statisticTitleString Não Subtítulo/label abaixo do valor.
chartDataArray Não Dados do ApexCharts. Formato: [{ name: 'series', data: [1,2,3,...] }].
colorString'primary' Não Token do design system (primary, success, warning, danger) ou hex. Usado no ícone e na linha do gráfico.
colorToStringauto Não Cor de destino do gradiente horizontal. Se não definido, mapeado automaticamente: primary→#A9A2F6, success→#55DD92, warning→#ffc085, danger→#F97794.
typeString'line' Não 'line' — gradiente horizontal, stroke 5, drop shadow. 'area' — gradiente vertical monochrome.
iconRightBooleanfalse Não Quando true: layout horizontal com ícone à direita (flex-row-reverse).
hideChartBooleanfalse Não Oculta o gráfico. Texto fica centralizado quando !iconRight. Uso dominante no Pedbot.
isMediaUserBoolean Não Lógica de negócio específica de Analytics: exibe "Média de atendimentos por:" antes do statisticTitle.

Dependências

  • vx-card — slot no-body (remove padding interno)
  • feather-icon — ícone no círculo
  • vue-apexcharts — gráfico sparkline (100px height)
  • src/components/statistics-cards/chartConfigs.js — areaChartOptions, lineChartOptions
  • src/assets/utils/color.js — converte token → hex

Onde é usado

  • src/views/analytics/Analytics.vue
  • src/views/DashboardECommerce.vue
  • src/views/ui-elements/card/CardStatistics.vue
  • src/views/ui-elements/card/CardAnalytics.vue
Reatividade ao tema: O componente observa themePrimaryColor do Vuex store. Quando o tema muda, atualiza as opções do ApexCharts via apexChart.updateOptions() — sem re-render completo.