简体中文
批注功能和 Word 的批注评论功能类似,可以选择一段文字对齐进行批注,如下图所示:
PS:此功能在 Pro 版本才有,开源版没有这个功能。 Pro 版预览地址:http://pro.aieditor.com.cn
new AiEditor({ element: "#aiEditor", comment: { enable: true, floatable: false, containerClassName: "comment-container", // currentAccountAvatar: "https://aieditor.com.cn/logo.png", currentAccount:"Miachel Yang", currentAccountId: "1", enableWithEditDisable: true, onCommentActivated: (commentIds) => { // 当评论区域获得焦点 }, queryAllComments: () => { // 查询当前文档的所有评论,返回 CommentInfo[] 或者 Promise<CommentInfo[]> }, queryMyComments: () => { // 查询 “我的评论”,返回 CommentInfo[] 或者 Promise<CommentInfo[]> }, queryCommentsByIds: (commentIds) => { // 根据多个文档id,查询多条评论,返回 CommentInfo[] 或者 Promise<CommentInfo[]> }, onCommentCreate: (comment) => { // 当评论被创建时,,返回 CommentInfo 或者 Promise<CommentInfo> }, onCommentDeleteConfirm:(comment)=>{ // 当评论被删除时,弹出确认框,返回 boolean 或者 Promise<boolean>; }, onCommentDelete: (commentId) => { // 当评论被删除时, 返回 boolean 或者 Promise<boolean>; }, onCommentUpdate: (commentId, content) => { // 当评论被修改时,返回 boolean 或者 Promise<boolean>; }, }, })
floatable = false
Promise<boolean>
floatable: false
floatable: true
以下的示例代码,是使用了 LocalStorage 来保存评论内容
const colors = ['#3f3f3f', '#938953', '#548dd4', '#95b3d7', '#d99694', '#c3d69b', '#b2a2c7', '#92cddc', '#fac08f']; new AiEditor({ element: "#aiEditor", comment: { enable: true, floatable: false, enableWithEditDisable: true, onCommentActivated: (_commentId) => { // console.log("onCommentActivated---->", commentId) }, queryAllComments: () => { const allCommentsString = localStorage.getItem("all-comments"); const allCommentIds = allCommentsString ? JSON.parse(allCommentsString) : []; const allComments = [] as any[]; allCommentIds.forEach((commentId: any) => { const contentJSON = localStorage.getItem(commentId); if (contentJSON) allComments.push(JSON.parse(contentJSON)); }) return allComments; }, queryCommentsByIds: (commentIds) => { const allComments = [] as any[]; if (commentIds) commentIds.forEach((commentId: any) => { const contentJSON = localStorage.getItem("comment-" + commentId); if (contentJSON) allComments.push(JSON.parse(contentJSON)); }) return allComments; }, onCommentCreate: (comment) => { console.log("onCommentCreate---->", comment) comment = { ...comment, account: "张三", // avatar: Math.floor(Math.random() * 10) > 3 ? "https://aieditor.dev/assets/image/logo.png" : undefined, mainColor: colors[Math.floor(Math.random() * colors.length)], createdAt: "05-26 10:23", } as CommentInfo; localStorage.setItem("comment-" + comment.id, JSON.stringify(comment)); const allCommentsString = localStorage.getItem("all-comments"); const allComments = allCommentsString ? JSON.parse(allCommentsString) : []; if (comment.pid) { const parentCommentJSON = localStorage.getItem("comment-" + comment.pid); if (parentCommentJSON) { const parentComment = JSON.parse(parentCommentJSON); if (parentComment.children) { parentComment.children.unshift(comment) } else { parentComment.children = [comment] } localStorage.setItem("comment-" + comment.pid, JSON.stringify(parentComment)); } } else { allComments.push("comment-" + comment.id) } localStorage.setItem("all-comments", JSON.stringify(allComments)); // return callback(comment); return new Promise((resolve) => { resolve(comment) }) // return comment; }, onCommentDeleteConfirm: (comment) => { console.log("onCommentDeleteConfirm---->", comment) return confirm("确认要删除吗"); }, onCommentDelete: (commentId) => { console.log("onCommentDelete---->", commentId) const commentInfo = JSON.parse(localStorage.getItem("comment-" + commentId)!); if (commentInfo.pid) { const parentCommentJSON = localStorage.getItem("comment-" + commentInfo.pid); if (parentCommentJSON) { const parentComment = JSON.parse(parentCommentJSON); if (parentComment.children) { parentComment.children = parentComment.children.filter((item: any) => item.id !== commentId) localStorage.setItem("comment-" + commentInfo.pid, JSON.stringify(parentComment)); } } } localStorage.removeItem("comment-" + commentId); return true; }, onCommentUpdate: (commentId, content) => { console.log("onCommentUpdate---->", commentId, content) const commentInfo = JSON.parse(localStorage.getItem("comment-" + commentId)!); commentInfo.content = content localStorage.setItem("comment-" + commentId, JSON.stringify(commentInfo)) return true } }, })
CommentInfo 评论信息描述
批注(或评论)
批注功能和 Word 的批注评论功能类似,可以选择一段文字对齐进行批注,如下图所示:
使用方法
floatable = false
时,配置显示头像Promise<boolean>
floatable: false
是有效)floatable: false
是有效)floatable: true
是有效)示例代码
以下的示例代码,是使用了 LocalStorage 来保存评论内容
CommentInfo 评论信息描述