Skip to content

Table

Table

PTable renders data rows based on a column configuration. It supports sorting, pagination, grouped data, row actions, and selectable rows.

Demo

Usage

<PTable
:columns="columns"
:data="rows"
:counts="[10, 25, 50]"
:count="10"
:pages="totalPages"
:current-page="page"
:total="totalRows"
@change="handleTableChange"
/>
data() {
return {
columns: [
{ title: 'Name', name: 'name', type: 'text', sortable: true },
{ title: 'Status', name: 'status', type: 'text' },
{ title: 'Selected', type: 'checkbox', key: (row) => row.id },
],
};
}

Props

PropTypeDefaultNotes
columnsArray[]Required column configuration.
dataArray | ObjectRequired list of row objects.
actionsArray | Object[]Action menu items for type: 'action' columns.
groupingArray | Object[]Group header config (name, type, subset).
disableSortingBooleanfalseDisables sorting.
sortOrderString''asc or desc for controlled sorting.
sortByString''Column key for controlled sorting.
countsArray[]Options for PCount.
countNumber0Selected count value.
pagesNumber0Total number of pages.
currentPageNumber0Current page (1-based).
totalNumber0Total number of rows.
checkedRowsArray[]Selected row keys for checkbox columns.
rowClassFunction() => ''Row class builder.
rowStyleFunction() => ''Row style builder.
tableClassFunction() => ''Extra table classes.
loadingBooleanfalseShows table skeleton.
skeletonRowsNumber10Number of skeleton rows.

Events

EventPayloadDescription
change{ sort, count, currentPage }Emits on sort/page/count changes.
countChangeNumberEmits when page size changes.
pageChangeNumberEmits when page changes.
checkedRowArrayEmits selected row keys.
selectedRowNumber | nullEmits on row expansion.
<actionEvent>ObjectCustom action events emitted from action menu items.

Slots

SlotDescription
<column.name>Slot for custom cell rendering (type: 'slot').
extendedExpanded row content.
<grouping.name>Slot used when grouping type is slot.

Column config

Columns are objects with title, name, and type. Supported type values:

  • text, number, link, slot, checkbox, action

Optional properties include sortable, sortBy, align, hidden, hover, link, target, key (for checkbox).