BMC IO DocsBMC IO Docs
IO v6
IO v7
Notes
Docs
IO v6
IO v7
Notes
Docs
  • IO Framework v7

    • О фреймворке
    • Что изменилось в 7 версии
    • IO7 Framework vs Laravel 13 — Сравнение
    • Структура
    • Варианты проектов
    • Доступ к участкам проекта
    • Разворачивание нового проекта
    • Установка проекта
    • Запуск локальной разработки
  • API

    • Обзор API
    • IOCore::call() и IOCore::callAction()
    • Создание API
  • CLI

    • Обзор CLI
    • iocli
    • Кастомные CLI команды
  • Работа с базами данных

    • Обзор работы с базами данных
    • Cron / Планировщик задач (Schedule)
    • Фабрики
    • Миграции
    • Сидеры
    • Query Builder
    • Подключение MinIO
    • Подключение MongoDB
    • Подключение MySQL
    • Подключение PostgreSQL
    • Подключение ProxySQL
    • Подключение RabbitMQ
    • Подключение Redis
  • Логирование

    • Обзор логирования
    • IOEvent - Логирование событий
    • Pinba (PinbaManager) - Профилировщик
  • Модели

    • Обзор моделей
    • CRUD операции
    • Связи моделей
  • Очереди

    • Обзор очередей
    • RabbitMQ
  • Маршруты

    • Обзор маршрутов
    • Определение маршрутов
    • Middleware
  • Сессии

    • Обзор сессий
    • Кроссдоменная SSO
    • JWT авторизация
    • Социальная авторизация
    • OAuth2
    • Keycloak
  • Twig

    • Обзор Twig
    • Формы (FormBuilder)
    • Twig функции
  • Тестирование

    • Обзор тестирования
    • Unit тесты
  • Backend

    • Настройки проекта Conf.php
    • Настройки модуля Module.php
    • Настройки composer
    • Функции фреймворка
    • Вспомогательные функции (Helpers)
    • Глобальные переменные
    • Константы фреймворка
    • Event класс
    • Core класс
    • Route и работа с ними
    • Request и работа с ними
    • Middleware и работа с ними
    • Class и работа с ними
    • Api model и работа с ними
    • Template и работа с ними
    • Мультиязычность и словарь фраз
    • Bin скрипты и работа с ними
    • Cron скрипты и работа с ними
    • $ioSession и работа с сессией
    • $ioHash и работа с кешем
    • $ioXCache и работа с кешем
    • $iodb и работа с базой данных
    • Миграции
  • Frontend

    • Twig шаблонизатор и работа с ним
    • Twig функции
    • Twig фильтры
    • Twig контекст
    • Настройка NPM
    • Сборка Frontend составляющей
    • Обращение к Api через JS
    • Хранилище (store)
    • Навигация в хосте
    • Навигация в микрофронтенде
    • Параметры микрофронтенда
    • Проверка полномочий
  • Tailux UI Компоненты

    • Базовый UI

      • AvatarDot
      • Avatar
      • Badge
      • Button
      • Card
      • ConfirmModal
      • Divider
      • Highlight
      • Tag
    • Загрузка

      • Circlebar
      • Progress
      • Skeleton
      • Spinner
    • Навигация

      • Accordion
      • AccordionButton
      • AccordionHeader
      • AccordionItem
      • AccordionPanel
      • AccordionProvider
      • Pagination
      • PaginationControl
      • PaginationItems
      • PaginationDots
      • PaginationFirst
      • PaginationLast
      • PaginationNext
      • PaginationPrevious
    • Отображение данных

      • Box
      • Collapse
      • ContextualHelp
      • ScrollShadow
      • Timeline
      • TimelineItem
    • Элементы таблиц

      • Table
      • CollapsibleSearch
      • ColumnFilter
      • CopyableCell
      • DateFilter
      • FacetedFilter
      • FilterSelector
      • PaginationSection
      • RadioFilter
      • RangeFilter
      • ResponsiveFilter
      • RoleFilter
      • SelectedRowsActions
      • TableColumnVisibility
      • TableSettings
      • TableSortIcon
    • Элементы форм

      • Checkbox
      • Combobox
      • DatePicker
      • Filepond
      • Input
      • Listbox
      • Radio
      • Range
      • Select
      • StyledSwitch
      • Swap
      • SwapOn
      • SwapOff
      • Switch
      • Textarea
      • TextEditor
      • Upload

TableSettings

Компонент TableSettings — это панель настроек таблицы. Позволяет управлять видимостью и закреплением колонок, а также включает глобальные переключатели: полноэкранный режим, компактные строки, фильтры и сортировку.

Обзор

  • Основное назначение: централизованное управление настройками отображения таблицы.
  • Ключевые возможности:
    • Управление видимостью отдельных колонок через чекбоксы.
    • Закрепление колонок слева/справа с кнопками Pin/Unpin.
    • Глобальные переключатели: Full Screen, Row Dense, Column Filters, Sort.
    • Сброс видимости колонок кнопкой «Show All Columns».
    • Автоматический сброс фильтров и сортировки при их отключении.

API компонента

Props

ПропТипПо умолчаниюОписание
tableObject(обязательный)Экземпляр таблицы TanStack Table с расширенными настройками.

Зависимости от table

Метод/СвойствоОписание
table.getState().tableSettingsОбъект текущих настроек таблицы.
table.options.meta?.setTableSettingsФункция для обновления настроек таблицы.
table.getAllLeafColumns()Массив всех конечных колонок.
table.resetColumnVisibility()Сброс видимости колонок к исходному состоянию.
table.resetColumnFilters()Сброс всех фильтров колонок.
table.resetSorting()Сброс сортировки.

tableSettings (из table.getState().tableSettings)

КлючТипОписание
enableFullScreenBooleanВключает полноэкранный режим таблицы.
enableRowDenseBooleanВключает компактный режим строк.
enableColumnFiltersBooleanВключает фильтры колонок. При отключении сбрасывает все фильтры.
enableSortingBooleanВключает сортировку. При отключении сбрасывает текущую сортировку.

Особенности работы

  • Автосброс: при отключении фильтров (enableColumnFilters: false) автоматически вызывается resetColumnFilters(). При отключении сортировки — resetSorting().
  • Скрытые колонки: колонки с columnDef.isHiddenColumn: true не отображаются в списке видимости.
  • Закрепление: кнопки Pin отображаются только для колонок с поддержкой getCanPin().

Примеры использования

Настройка TanStack Table с поддержкой настроек

<template>
    <TableSettings :table="table" />
</template>

<script>
import { useVueTable, getCoreRowModel } from '@tanstack/vue-table';

export default {
    setup() {
        const tableSettings = reactive({
            enableFullScreen: false,
            enableRowDense: false,
            enableColumnFilters: true,
            enableSorting: true,
        });

        const table = useVueTable({
            data: [...],
            columns: [...],
            getCoreRowModel: getCoreRowModel(),
            state: { tableSettings },
            meta: {
                setTableSettings(updater) {
                    const newSettings = typeof updater === 'function'
                      ? updater(tableSettings)
                      : updater;
                    Object.assign(tableSettings, newSettings);
                },
            },
        });

        return { table };
    },
};
</script>
Prev
TableColumnVisibility
Next
TableSortIcon