Skip to content

CdsTable

Таблица выводит большие наборы записей в колонках и берёт на себя работу с данными: сортировку, фильтры, пагинацию, выбор и раскрытие строк, фиксацию шапки и колонок. Колонки описываются пропом columns, данные — пропом data.

Storybook GitLab Figma
Покрытие тестами: 0% — низкое покрытие
API в спеках
0 / 72 пропсы, события, слоты и exposed, у которых есть тест
Тест-кейсы
13 юнит · 0 браузерных
Покрытие кода
15.2% строк · 7.4% ветвей замер v4.0.0-alpha.13
A11y (axe)
50 рекомендаций в 39 историях замер v4.0.0-alpha.11

Для перечня однотипных элементов без колонок подойдёт CdsList, для иерархии без табличных данных — CdsTree.

Возможности таблицы разложены по разделам — они собраны в блоке Разделы документации и в меню слева. На этой странице — базовое использование и API.

Анатомия ​

Вокруг таблицы — слоты header, toolbar и footer и встроенная пагинация (проп pagination). Сама таблица состоит из шапки колонок и строк с ячейками.

Вариации ​

Отображение данных ​

Минимальная таблица: массив описаний колонок в columns, записи — в data. Ключ строки берётся из поля key записи либо из пропа row-key.

Sandbox Storybook

Свойство колонки align выравнивает содержимое — числовые значения принято выравнивать вправо.

Sandbox Storybook

Размеры ​

Свойство size управляет плотностью: md — по умолчанию, sm и xs — для насыщенных данными экранов.

Sandbox Storybook

Строки ​

Свойство row-class-name вычисляет класс строки по записи: готовый класс cds-table--striped даёт чередование фона, cds-table__row--warning и cds-table__row--error — статусную подсветку. Проп hovered подсвечивает строку под курсором.

Sandbox Storybook
Sandbox Storybook

Содержимое ячеек ​

Свойство колонки ellipsis обрезает длинный текст в одну строку с многоточием — и в ячейках, и в заголовках.

Sandbox Storybook

Адаптивность ​

Свойство колонки responsive перечисляет брейкпоинты, на которых колонка видима — второстепенные колонки скрываются на узких экранах.

Sandbox Storybook

Рекомендации ​

Разделы документации ​

API ​

CdsTable ​

Пропсы

ИмяТипПо умолчаниюОписание
borderedboolean | undefinedfalseПоказывать все границы таблицы
borderlessboolean | undefinedfalseУбрать все границы таблицы
canExpandableboolean | undefinedfalseМожет раскрываться
childrenColumnNamestring | undefined'children'Названия свойства для дочерних элементов
columnDraggableNTable.NDraggable.TColumnDraggable<any> | undefined—Перетаскивание колонок (drag-n-drop). true или объект конфигурации { icon, disabled, allowDrop }. Reorder происходит только среди соседей внутри своей группы; порядок меняет потребитель в обработчике @column-reorder.
columnsNTable.NColumn.TColumns<any> | undefined—Колонки таблицы
componentsNTable.NCustomize.TableComponents<any> | undefined—Переопределить компоненты таблицы по умолчанию
customHeaderRowNTable.NCustomize.TGetComponentProps<NTable.NColumn.IColumn<any>[]> | undefined—Устанавливает свойства для каждой строки заголовка
customRowNTable.NCustomize.TGetComponentProps<any> | undefined—Устанавливает свойства для каждой строки
dataany[] | undefined—Массив данных для отображения в таблице
defaultExpandAllRowsboolean | undefinedfalseПо умолчанию все колонки раскрыты
defaultExpandedRowKeysNTable.TKey[] | undefinedundefined as ITableProps['defaultExpandedRowKeys']Ключи раскрытых строк по умолчанию
disabledboolean | null | undefinednullЗаблокированное состояние
expandColumnWidthnumber | undefined—Ширина колонки с раскрытием
expandedRowClassNameNTable.NRow.TClassName<any> | undefined—Классы для строк в раскрытом состоянии
expandedRowKeysNTable.TKey[] | undefinedundefined as ITableProps['expandedRowKeys']Ключи текущих раскрытых строк (поддерживает v-model)
expandedRowRenderNTable.NExpand.TExpandedRowRender<any> | undefined—Рендер для каждой раскрытой строки
expandFixedNTable.TFixed | undefined—Сделать колонку с раскрытием фиксированной (left | right | boolean)
expandIconNTable.NExpand.TRenderExpandIcon<any> | undefined—Своя иконка раскрытия
expandIconColumnIndexnumber | undefined—Индекс колонки, в которой будет располагаться иконка раскрытия
expandRowByClickboolean | undefinedfalseРаскрытие строки по клику в любое место этой строки
footerNTable.NRender.TPanelRender<any> | undefined—Рендер футера таблицы
getPopupContainerNTable.NCustomize.TGetPopupContainer | undefined—Контейнер рендеринга выпадающих списков
headerNTable.NRender.TPanelRender<any> | undefined—Рендер заголовка таблицы
hoveredboolean | undefinedfalseПодсвечивание строки при наведении
idstring | undefined—Идентификатор таблицы
indentSizenumber | undefined20Размер отступа в пикселях для каждого уровня вложенности
loadingboolean | undefinedfalseЗагрузка таблицы
localeNTable.ILocale | undefined—Локализация таблицы (переопределяет строки глобальной локали)
paginationfalse | NTable.NPagination.IProps | undefined—Конфигурация пагинации таблицы
readonlyboolean | null | undefinednullТолько для чтения
rowClassNamestring | NTable.NRow.TClassName<any> | undefined—Классы строки
rowDraggableNTable.NDraggable.TRowDraggable<any> | undefined—Перетаскивание строк (drag-n-drop). true или объект конфигурации { icon, disabled, allowDrop }. Reorder происходит только между соседями одного родителя; порядок меняет потребитель в обработчике @row-reorder.
rowExpandable((record: any) => boolean) | undefined—Строку можно раскрыть
rowKeystring | NTable.NRow.TGetRowKey<any> | undefined'key'Уникальный ключ строки может быть строкой или функцией возвращающей строку
rowSelectionNTable.NRow.IRowSelection<any> | undefined—Конфигурация для выбора строк
scroll(NTable.TScroll & { scrollToFirstRowOnChange?: boolean | undefined; }) | undefined—Можно ли скроллить таблицу
showExpandColumnboolean | undefined—Показать раскрытую колонку
showHeaderboolean | undefined—Показывать ли заголовок таблицы
showSorterTooltipNTable.NSorter.TTooltip | undefinedtrueПоказывать ли тултипы для сортировки в заголовке. Можно передать объект со свойствами для CdsTooltip.
sizenumber | "xs" | "sm" | "md" | "lg" | "xl" | undefined'md'Размер компонента
sortDirectionstring[] | undefined—Сортировка данных в таблице. 'ascend' | 'descend'
stickyboolean | NTable.NSticky.ISticky | undefined—Sticky для заголовка и скроллбара
tableLayoutNTable.TLayout | undefined—Фиксированный или авто лэйаут
themestring | undefined—Тема компонента
toolbarNTable.NRender.TPanelRender<any> | undefined—Рендер тулбара таблицы
transformCellTextNTable.NCell.TTransformCellText<any> | undefined—Трансформировать текст в ячейке

События

ИмяТипОписание
change[pagination: NTable.NPagination.IProps, filters: Record<string, NTable.TFilterValue | null>, sorter: NTable.ISorterResult<any> | NTable.ISorterResult<any>[], extra: NTable.ICurrentData<any>]Событие изменения пагинации, фильтров или сортировки.
columnReorder[info: NTable.NDraggable.IColumnReorderInfo<any>]Событие переноса колонки (drag-n-drop). Порядок колонок меняет потребитель.
expand[expanded: boolean, record: any]Событие при раскрытии/сворачивании строки.
expandedRowsChange[expandedKeys: NTable.TKey[]]Событие изменения раскрытых строк.
resizeColumn[width: number, column: NTable.NColumn.IColumn<any>]Событие изменения размера колонки.
rowReorder[info: NTable.NDraggable.IRowReorderInfo<any>]Событие переноса строки (drag-n-drop). Порядок данных меняет потребитель.
update:expandedRowKeys[expandedKeys: NTable.TKey[]]Событие обновления раскрытых строк (v-model).

Слоты

ИмяТипОписание
bodyCell{ text: any; value: any; record: any; index: number; column: NTable.NColumn.IColumn<any>; }Кастомный рендер ячейки тела таблицы.
customFilterDropdownNTable.NColumn.IFilterDropdownProps<any>Кастомное выпадающее меню фильтра колонки (используется с customFilterDropdown у колонки).
customFilterIcon{ filtered: boolean; column: NTable.NColumn.IColumn<any>; }Кастомная иконка фильтра колонки.
defaultanyДекларативное описание колонок через CdsTableColumn / CdsTableColumnGroup.
emptyTextanyКонтент при отсутствии данных.
expandedRowRender{ record: any; index: number; indent: number; expanded: boolean; }Рендер содержимого раскрытой строки.
expandIconNTable.NExpand.IRenderExpandIconProps<any>Кастомная иконка раскрытия строки.
footerreadonly any[]Футер таблицы (панель под таблицей).
headerreadonly any[]Заголовок таблицы (панель над таблицей).
headerCell{ title: NTable.NColumn.TTitle<any>; column: NTable.NColumn.IColumn<any>; }Кастомный рендер ячейки заголовка таблицы.
summary{ pageData: readonly any[]; }Итоговая строка таблицы.
toolbarreadonly any[]Тулбар таблицы (панель над таблицей).

Exposed

ИмяТипОписание
tableanyСсылка на внутренний экземпляр таблицы — даёт доступ к её методам и состоянию.

CdsTableColumn ​

Слоты

ИмяТипОписание
default{ value: any; text: any; record: any; index?: number | undefined; renderIndex?: number | undefined; column: NTable.NColumn.IColumn<any>; }Кастомный рендер ячейки колонки.
filterIcon{ filtered: boolean; column: NTable.NColumn.IColumn<any>; }Кастомная иконка фильтра колонки.
titleNTable.NColumn.ITitleProps<any>Заголовок колонки.

CdsTableColumnGroup ​

Слоты

ИмяТипОписание
defaultanyКолонки группы (CdsTableColumn).
titleNTable.NColumn.ITitleProps<any>Заголовок группы колонок.