Skip to content

AiConversations 会话记录

AiConversations 是一个专为 AI 会话设计的侧边栏列表组件,提供了会话的新增、切换、重命名和删除等完整交互能力。

基础用法

展示了会话列表的基本渲染和交互。

今天
Vue 3 组件开发指南15:35
最近 7 天
如何优化 Web 性能4/20性能优化是前端开发中至关重要的一环...
基础用法

自定义主题

通过 theme-overrides 属性可以轻松定制组件的局部样式。

今天
深色主题会话16:35
自定义主题

置顶与时间分组

组件默认支持按时间分组展示,并支持置顶对话功能。

置顶
置顶的对话16:35
今天
普通对话16:34
置顶与分组

虚拟滚动

处理海量历史对话记录时,通过开启 virtual-scroll 提升性能。

对话历史记录 #016:35
对话历史记录 #115:35
对话历史记录 #214:35
对话历史记录 #313:35
对话历史记录 #412:35
对话历史记录 #511:35
对话历史记录 #610:35
对话历史记录 #709:35
对话历史记录 #808:35
虚拟滚动

API

Props

参数说明类型默认值
data会话列表数据AiConversation[][]
activeId当前选中的会话 IDstring''
loading是否正在加载booleanfalse
theme-overrides主题变量覆盖AiConversationsThemeVars
grouped是否按时间分组显示对话booleantrue
virtual-scroll是否启用虚拟滚动booleanfalse
virtual-scroll-height虚拟滚动容器高度number400
virtual-scroll-item-height虚拟滚动每项高度number50
virtual-scroll-overscan虚拟滚动缓冲区数量number3

Events

事件名说明参数
update:activeId选中项改变时触发(id: string) => void
create点击新增按钮时触发() => void
delete点击删除按钮时触发(item: AiConversation) => void
edit完成标题编辑时触发(item: AiConversation, newTitle: string) => void
click点击会话项时触发(item: AiConversation) => void
pin点击置顶按钮时触发(item: AiConversation, pinned: boolean) => void

Slots

插槽名说明参数
add-icon自定义新增按钮图标
add-text自定义新增按钮文本
group-label自定义分组标签文本{ label: string }
edit-icon自定义编辑按钮图标
delete-icon自定义删除按钮图标
empty列表为空时的展示

Methods

方法名说明参数
scrollToItem滚动到指定 ID 项(id: string)
scrollToIndex滚动到指定索引项(index: number)

在 Nuxt 中使用

该组件完美支持 Nuxt 3/4。在 Nuxt 项目中,组件会被自动按需导入。

有关详细配置,请阅读 Nuxt 集成文档

主题变量

变量名说明默认值
--yh-ai-conversations-bg-color容器背景色var(--yh-bg-color)
--yh-ai-conversations-border-color边框颜色var(--yh-border-color)
--yh-ai-conversations-header-padding头部内边距16px
--yh-ai-conversations-item-padding项目内边距12px 16px
--yh-ai-conversations-hover-bg-color悬停时的背景色var(--yh-bg-color-page)
--yh-ai-conversations-active-bg-color选中时的背景色var(--yh-color-primary-light-9)
--yh-ai-conversations-active-text-color选中时的文字颜色var(--yh-color-primary)
--yh-ai-conversations-title-font-size标题字体大小14px
--yh-ai-conversations-time-font-size时间字体大小12px

Released under the MIT License.