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

    • О фреймворке
    • Что изменилось в 7 версии
    • Структура
    • Доступ к участкам проекта
    • Разворачивание нового проекта
  • Backend

    • Настройки проекта Conf.php
    • Настройки модуля Module.php
    • Настройки composer
    • Функции фреймворка
    • Глобальные переменные
    • Константы фреймворка
    • 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

CopyableCell

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

Обзор

  • Основное назначение: отображение текстовых данных в таблице с возможностью быстрого копирования.
  • Ключевые возможности:
    • Копирование текста в буфер обмена по клику.
    • Кнопка копирования, видимая только при наведении на ячейку.
    • Всплывающая подсказка (tooltip) «Copy» на кнопке.
    • Поддержка глобального фильтра таблицы (для Highlight).
    • Опциональная подсветка текста через Highlight.

API компонента

Props

ПропТипПо умолчаниюОписание
getValueFunction(обязательный)Функция, возвращающая значение ячейки. Обычно передаётся из cell.getValue TanStack Table.
tableObjectЭкземпляр таблицы TanStack Table. Используется для получения globalFilter при подсветке.
highlightBooleanfalseВключает подсветку текста в ячейке (требует компонент Highlight).

Зависимости

  • Button — кнопка копирования.
  • v-tippy — директива для всплывающей подсказки (Tippy.js).
  • Highlight — компонент подсветки текста (опционально, при highlight: true).

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

В колонке TanStack Table

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

export default {
    setup() {
        const columns = [
            {
                accessorKey: 'email',
                header: 'Email',
                cell: ({ getValue, table }) => h(CopyableCell, { getValue, table }),
            },
            {
                accessorKey: 'phone',
                header: 'Телефон',
                cell: ({ getValue, table }) => h(CopyableCell, { getValue, table }),
            },
        ];

        const table = useVueTable({
            data: [...],
            columns,
            getCoreRowModel: getCoreRowModel(),
        });

        return { table };
    },
};
</script>
Prev
ColumnFilter
Next
DateFilter