Commentaires
Discutez des tâches, commandes et autres enregistrements. Les commentaires restent associés à l’enregistrement dans les vues Grille, Kanban, Galerie, Calendrier et Gantt ; changer de vue ne crée pas une discussion distincte.
Enregistrer les plugins
Ajoutez-les après les plugins de base et d’interface de Bases :
pnpm add @univerjs-pro/bases-thread-comment @univerjs-pro/bases-thread-comment-uinpm install @univerjs-pro/bases-thread-comment @univerjs-pro/bases-thread-comment-uiyarn add @univerjs-pro/bases-thread-comment @univerjs-pro/bases-thread-comment-uibun add @univerjs-pro/bases-thread-comment @univerjs-pro/bases-thread-comment-uiimport { 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)Fusionnez les ressources linguistiques des paquets de commentaires et configurez l’utilisateur actuel de l’application. Le plugin UI ajoute les commandes de commentaire des enregistrements ; le plugin de données associe les commentaires aux enregistrements.
Ajouter et lire des commentaires
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() lit les commentaires chargés localement. Avec une source distante, await record.listCommentsAsync() synchronise les fils connus avant de les renvoyer. Consultez la Facade des commentaires pour les réponses, les mises à jour et la suppression.
Enregistrement et discussions partagées
Les commentaires locaux peuvent être enregistrés comme ressources de Base via base.save(). Enregistrez les plugins de commentaires avant de restaurer un instantané.
Les discussions partagées nécessitent aussi un service de commentaires, une source de données et des autorisations. La collaboration documentaire seule ne connecte pas les commentaires. Suivez les modules d’extension Office, puis testez la création, la lecture, les autorisations et la réouverture avec deux comptes.
Opérations communes
Importez la Facade commune et celle du produit. Les méthodes du produit créent les ancres stables ; l’API commune gère réponses, mises à jour, résolution et suppression. getComments() lit l’état local. listCommentsAsync() synchronise les fils déjà connus via la source configurée ; cette méthode ne découvre pas tous les fils du serveur.
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.', })}Discussions partagées
Intégrez Comment Service et Endpoint avec le Server SDK, puis enregistrez UniverThreadCommentDataSourcePlugin de @univerjs-pro/thread-comment-datasource après la collaboration et la licence. La source fournie utilise /universer-api/comment/unit/{unitId}/... et /universer-api/user/list : exposez ces routes dans l’application. Le serveur doit autoriser la lecture et l’écriture des commentaires indépendamment de la modification du document.
Que pensez-vous de ce guide ?