Комментарии

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

Зарегистрируйте плагины после настройки редактора продукта и лицензии. Подключите стили и языковые ресурсы общего и продуктового интерфейса. Ресурсами комментариев управляет плагин продукта, поэтому зарегистрируйте его до восстановления снимка.

Shell
pnpm add @univerjs/thread-comment @univerjs/thread-comment-ui @univerjs-pro/boards-thread-comment @univerjs-pro/boards-thread-comment-ui
TypeScript
import { UniverBoardsThreadCommentPlugin } from '@univerjs-pro/boards-thread-comment'import { UniverBoardsThreadCommentUIPlugin } from '@univerjs-pro/boards-thread-comment-ui'import ProductLocale from '@univerjs-pro/boards-thread-comment-ui/locale/ru-RU'import { LocaleType, mergeLocales } from '@univerjs/core'import SharedLocale from '@univerjs/thread-comment-ui/locale/ru-RU'import '@univerjs/thread-comment-ui/lib/index.css'import '@univerjs-pro/boards-thread-comment-ui/lib/index.css'univerAPI.loadLocales(LocaleType.RU_RU, mergeLocales(SharedLocale, ProductLocale))univer.registerPlugin(UniverBoardsThreadCommentPlugin)univer.registerPlugin(UniverBoardsThreadCommentUIPlugin)

Поддержка мобильных устройств

Сначала настройте мобильный редактор. В коде инициализации режима плагинов на этой странице замените указанные настольные регистрации мобильными экспортами тех же пакетов до открытия документа. Сохраните модели, стили, локализации и импорты Facade; не регистрируйте оба варианта.

ПакетНастольная регистрацияМобильная регистрация
@univerjs-pro/boards-thread-comment-uiUniverBoardsThreadCommentUIPluginUniverBoardsThreadCommentMobileUIPlugin

Facade комментариев

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

TypeScript
import '@univerjs/thread-comment/facade'import '@univerjs-pro/boards-thread-comment/facade'const board = univerAPI.getActiveBoard()if (board) {  await board.createPositionCommentAsync({ x: 320, y: 180 }, 'Review this area.')  console.log(await board.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.