Комментарии

Сведения о плагинах

Обсуждайте задачи, заказы и другие записи. Комментарии остаются связанными с записью в представлениях «Таблица», «Канбан», «Галерея», «Календарь» и «Гант»: переключение представления не создаёт отдельное обсуждение.

Регистрация плагинов

Добавьте их после основных плагинов Bases и его интерфейса:

Shell
pnpm add @univerjs-pro/bases-thread-comment @univerjs-pro/bases-thread-comment-ui
TypeScript
import { UniverBasesThreadCommentPlugin } from '@univerjs-pro/bases-thread-comment'import { UniverBasesThreadCommentUIPlugin } from '@univerjs-pro/bases-thread-comment-ui'import '@univerjs-pro/bases-thread-comment/facade'import '@univerjs/thread-comment/facade'import '@univerjs-pro/bases-thread-comment-ui/lib/index.css'univer.registerPlugin(UniverBasesThreadCommentPlugin)univer.registerPlugin(UniverBasesThreadCommentUIPlugin)

Объедините языковые ресурсы пакетов комментариев и настройте текущего пользователя приложения. Плагин UI добавляет элементы управления комментариями записей; плагин данных связывает комментарии с записями.

Добавление и чтение комментариев

TypeScript
const record = univerAPI.getActiveBase()?.getTables()[0]?.getRecords()[0]if (!record) throw new Error('Create a record first')await record.createCommentAsync('Please confirm the delivery date.')const comments = record.getComments()console.log(comments.map(({ root }) => root.id))

getComments() читает локально загруженные комментарии. При удалённом источнике данных await record.listCommentsAsync() синхронизирует известные ветки обсуждений перед возвратом результата. Ответы, обновление и удаление описаны в Facade комментариев.

Сохранение и общие обсуждения

Локальные комментарии можно сохранить как ресурсы Base через base.save(). Перед восстановлением снимка зарегистрируйте плагины комментариев.

Для общих обсуждений также нужны сервис комментариев, источник данных и права доступа. Само совместное редактирование документа не подключает комментарии. Следуйте разделу Модули расширений Office, затем проверьте создание, чтение, права и повторное открытие с двумя учётными записями.

Общие операции

Импортируйте общую Facade комментариев и Facade продукта. Методы продукта создают стабильные привязки, общая API управляет ответами, изменениями, разрешением и удалением. getComments() читает локальное состояние. listCommentsAsync() синхронизирует уже известные обсуждения через настроенный источник, но не обнаруживает все обсуждения на сервере.

TypeScript
import '@univerjs/thread-comment/facade'const [thread] = univerAPI.getComments({ resolved: false })if (thread) {  await univerAPI.replyCommentAsync({    unitId: thread.unitId,    subUnitId: thread.subUnitId,    threadId: thread.threadId,    content: 'Reviewed.',  })}

Общие обсуждения

Интегрируйте Comment Service и Endpoint через Server SDK, затем после настройки совместного редактирования и лицензии зарегистрируйте UniverThreadCommentDataSourcePlugin из @univerjs-pro/thread-comment-datasource. Источник использует /universer-api/comment/unit/{unitId}/... и /universer-api/user/list: предоставьте эти маршруты в приложении. Сервер должен отдельно проверять права на чтение и запись комментариев, не полагаясь на право редактирования документа.

Насколько полезно это руководство?

© 2026 DreamNum Co., Ltd.