SuperAPI AI 工具集

syncfusion-javascript-chat-ui

前端与建站

查看项目

更新于 10-16 01:58

技能介绍

该技能用于实现 Syncfusion JavaScript Chat UI 控件(ej2-interactive-chat),隶属于 @syncfusion/ej2-interactive-chat 包,提供的介绍以 TypeScript 写法为主。它用于构建现代化、功能丰富的会话界面。

用途 可用于客服对话、AI 聊天机器人、消息系统、协作沟通工具、实时帮助组件、文档问答等场景。

主要能力

  • 消息管理:显示、发送、管理聊天消息,支持丰富内容,使用 messages 属性设置初始消息集合,MessageModel 可含 id、text、author、timestamp、status 等,支持消息回复(replyTo、MessageReplyModel)、消息标记(isForwarded、isPinned)、按发送者分组、自动滚动(autoScrollToBottom)。
  • 用户区分:通过 UserModel 区分当前用户与其他参与者,含 id、user、avatarUrl。
  • 输入中指示器:typingUsers 属性控制显示/隐藏,支持多用户输入中场景、自定义模板(typingUsersTemplate)与 userTyping 事件。
  • 文件附件:enableAttachments 开启,attachmentSettings(FileAttachmentSettingsModel)可配置 saveUrl、removeUrl、保存格式(Base64 与 Blob)、允许文件类型(allowedFileTypes)、大小限制(maxFileSize)、最大数量(maximumCount)、拖拽(enableDragAndDrop),支持自定义附件与预览模板及点击、上传、成功、失败、移除等事件。
  • 智能功能:@提及(mentionTriggerChar 默认 @、mentionUsers)、快捷回复建议(suggestions)、消息回复。
  • 模板与定制:emptyChatTemplate、messageTemplate、typingUsersTemplate、timeBreakTemplate、suggestionTemplate、footerTemplate,可定制消息、空状态、页眉页脚。
  • 时间与时间戳:showTimeBreak 按日期分组、showTimeStamp 显示每条消息时间、timeStampFormat 全局格式及逐条覆盖、基于区域性的格式化。
  • 消息工具栏与外观:messageToolbarSettings 配置每条消息操作(复制、回复、置顶、删除)及自定义项;enableCompactMode 将所有消息左对齐;cssClass、主题集成、enableRtl、locale、enablePersistence、无障碍特性。
  • 按需加载:loadOnDemand 开启滚动触发的懒加载,用于长会话性能优化,可程序化补充更早消息。

使用方式 安装包 @syncfusion/ej2-interactive-chat 及依赖 ej2-base、ej2-navigations、ej2-inputs、ej2-buttons、ej2-dropdowns、ej2-popups;引入主题 CSS(如 fluent2.css 或 npm 中 @syncfusion/ej2-fluent2-theme 的 chat-ui 样式);创建 ChatUI 实例,设置 user、messages、headerText、showTimeStamp、autoScrollToBottom 等属性,再调用 appendTo 渲染到容器。

常用方法:addMessage(字符串或 MessageModel)、updateMessage、scrollToBottom、scrollToMessage、focus、refresh、dataBind。 常用事件:created、messageSend(可 args.cancel 取消)、userTyping、mentionSelect、itemClicked、附件相关事件。

适用场景 客服支持聊天、AI 机器人界面、团队协作工具、实时帮助小部件、文档问答等。

限制 资料未提供收费与授权、浏览器兼容范围、服务端接口实现细节等;文件上传需自行提供服务端 saveUrl/removeUrl;实际可用属性与事件以所用版本文档为准。