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-actions—Ações à direita do cabeçalho
cell(<label>){ row, column, index }Conteúdo customizado da célula daquela coluna
empty—Exibido 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.