History 历史记录
History 组件用于显示和管理聊天历史记录,支持两种显示模式:下拉菜单模式和独立菜单模式。组件提供历史会话的查看、选择和删除功能。
代码演示
基础用法
展示基本的历史记录下拉菜单功能。
独立菜单模式
使用 standalone 属性直接显示历史记录菜单。
自定义日期格式化和分组
使用 customDateFormatter 和 groupBy 属性自定义日期显示和分组逻辑。
自定义额外内容
使用 extra 属性为每个历史记录项添加自定义内容。
Agent 模式
启用 Agent 模式后,支持搜索、收藏、多选与加载更多等增强能力。
ActionRef 外部控制
使用 actionRef 可以外部触发历史记录重新加载。
空状态渲染与搜索触发方式
使用 emptyRender 自定义空状态显示,使用 searchOptions.trigger 配置搜索触发方式。
API
History
HistoryDataType
HistoryChatType
功能特性
显示模式
- 下拉菜单模式(默认):显示为一个可点击的历史图标,点击后显示下拉菜单
- 独立菜单模式:直接显示为菜单列表,适用于侧边栏等场景
数据分组
- 默认按日期分组(今日、昨日、一周内、更早)
- 支持自定义分组逻辑
- 每组内按时间倒序排列
交互功能
- 查看历史:点击历史记录项可切换到对应会话
- 删除记录:鼠标悬停显示删除按钮,支持确认删除
- 自定义操作:通过
extra属性添加自定义按钮或标签
样式定制
组件使用了 Ant Design 的 Menu 组件,可以通过以下方式定制样式:
国际化支持
组件支持国际化,通过 I18nProvide(或 I18nContext)统一提供文案,例如:
Agent 配置
通过 agent 属性启用并配置 Agent 模式。组件会根据提供的回调函数自动显示对应的功能按钮:
SearchOptions 配置
搜索框相关配置选项:
注意事项
- 请求函数:
request函数必须返回Promise<HistoryDataType[]>,用于获取历史数据 - 会话ID:
sessionId变更时会自动重新获取数据 - 删除功能:需要提供
onDeleteItem回调函数才能启用删除功能 - 独立模式:在独立模式下,组件直接渲染菜单,不包含下拉触发器
- 性能优化:大量历史记录时建议实现虚拟滚动或分页加载
- 功能按钮:新对话和加载更多按钮会根据是否提供对应的回调函数自动显示
- Loading 状态:搜索、加载更多、新对话、收藏和删除功能都有内置的 loading 状态管理,无需外部配置
- 空状态渲染:通过
emptyRender可以自定义历史记录为空时的显示内容,适用于独立模式和下拉菜单模式 - 搜索触发方式:默认为实时搜索(
change),输入时带 360ms 防抖;也可设置为回车触发(enter),减少搜索请求次数 - 全局加载状态:通过
loading属性可以在 GroupMenu 区域显示加载动画,适用于初始化加载或刷新数据时的状态展示
