Skip to content

Tabela de dados

AlpopDataTable renderiza colunas, formatadores, slots de célula e paginação. Funciona com rows locais ou dados remotos via fetchData. Compõe a Tabela base e o Chip base para a renderização e o contador. Erros são emitidos no evento error; os textos de estado vazio e de paginação são resolvidos pelo tradutor (veja Chaves de tradução), com props para sobrescrever.

Pessoas

3 pessoas
NomeCidadeStatus
Ada LovelaceSão PauloAtivo
Linus TorvaldsCuritibaInativo
Grace HopperRecifeAtivo

Colunas

Cada coluna pode ser uma string ou um objeto:

  • label: chave do campo na linha (e nome do slot de célula)
  • text: texto do cabeçalho
  • formatter(value, row, column): formata o valor da célula
  • value: chave alternativa ou função para extrair o valor

Props

Conteúdo

PropTipoPadrãoDescrição
titleString""Título exibido no cabeçalho do cartão
iconStringnullÍcone do cabeçalho (quadrado de ícone do cartão)
descriptionStringnullLinha secundária abaixo do título
badgeLabelString""Sufixo do contador exibido ao lado do título (ex.: "pessoas")
columnsArray[]Definição das colunas
formattersObject{}Formatadores por coluna, keyed pelo label; o formatter da própria coluna tem precedência
rowsArray[]Linhas (modo local)
loadingBooleanfalseForça o estado de carregamento
emptyTextStringnullTexto exibido quando não há linhas; null usa o tradutor (pt-BR: "Nenhum registro")

Dados remotos

PropTipoPadrãoDescrição
fetchDataFunctionnullBusca remota ({ page, perPage }); ativa o modo remoto
formatResponseFunctionnullNormaliza a resposta para { rows, pagination }
reloadKeyString|Number|Object|ArraynullAo mudar, refaz a busca a partir da página 1 (só no modo remoto)

Paginação

PropTipoPadrãoDescrição
totalNumber0Total de registros (modo local)
currentPageNumber1Página atual
perPageNumber10Itens por página
perPageOptionsArray[10, 20, 30]Opções do seletor de itens por página
hasPrevBooleanfalseForça o estado da seta "anterior"
hasNextBooleanfalseForça o estado da seta "próxima"
infoTemplateString""Texto fixo de contagem; tem precedência sobre infoFormatter
infoFormatterFunctionnullFormata o texto de contagem a partir de { from, to, total }

Dimensões

PropTipoPadrãoDescrição
columnWidthsArray[]Larguras CSS por coluna, na ordem de columns
minWidthString"100%"Largura mínima da tabela
bodyMinHeightString""Altura mínima do corpo (CSS)
bodyMinHeightMobileString""Altura mínima do corpo em telas ≤ 800px
fullHeightBooleanfalseEstica o cartão para ocupar a altura disponível

Slots

A tabela é renderizada dentro de um Cartão, então o cabeçalho é literalmente o do cartão. O contador fica ao lado do título; header-actions alinha ações à direita.

SlotPropsDescrição
header-actionsAções à direita do cabeçalho
cell(<label>){ row, column, index }Conteúdo customizado da célula daquela coluna
emptyExibido quando não há linhas

Eventos

EventoPayloadQuando
loaded{ rows, pagination }Busca remota concluída com sucesso
errorErrorBusca remota falhou
page-changeNumberPágina alterada (nos modos local e remoto)
update:perPageNumberItens por página alterados (usado por v-model:perPage)

loaded e error só são emitidos no modo remoto (com fetchData). Respostas de requisições obsoletas são descartadas, então apenas a busca mais recente emite.