Skip to content

AiEditorSender 面板输入

AiEditorSender 是一个功能更强大的 AI 对话输入组件,灵感源自 Element Plus X EditorSender。它集成了附件展示、工具栏及自定义插槽,适用于复杂的 AI 交互场景。

基础用法

包含默认的输入框、字数统计及发送按钮。

基础用法

附件展示与操作

内置附件列表布局(仅展示用,上传逻辑需外部控制),支持预览和移除。

代码片段.ts
界面原型.png
附件展示与操作

状态与工具栏插槽

通过 toolbaractions 插槽,你可以自由扩展输入框底部的业务逻辑。

状态与工具栏插槽

命令面板 (Command Panel)

通过输入 / 触发命令面板,支持模糊搜索、图标、描述及级联子命令等功能。

基础命令面板

基础命令面板

带描述的命令

带描述的命令

级联命令菜单

级联命令菜单

自定义触发字符

自定义触发字符

API

Props

属性名说明类型默认值
model-value输入内容双向绑定string''
placeholder占位文本string''
disabled是否禁用booleanfalse
loading是否处于加载/发送中状态booleanfalse
attachments附件列表AttachmentItem[][]
show-word-limit是否展示字数限制booleantrue
max-length最大字数限制numberundefined
rows默认初始行数number1

命令面板 Props

属性名说明类型默认值
enable-commands是否启用命令面板booleantrue
command-trigger命令触发字符string'/'
commands命令列表AiCommandItem[][]
command-panel-position命令面板位置'top' | 'bottom''bottom'
command-panel-align命令面板对齐方式'start' | 'center' | 'end''start'
command-panel-width命令面板宽度string | number320
command-panel-max-height命令面板最大高度number400
show-command-description是否显示命令描述booleantrue
show-command-icon是否显示命令图标booleantrue
command-search-delay命令搜索防抖延迟(毫秒)number150
enable-command-cascade是否启用级联菜单booleantrue
cascade-offset级联面板偏移量(像素)number4

Events

事件名说明回调参数
update:model-value内容变化时触发(value: string)
send点击发送或按 Enter (不加 Shift) 时触发(value: string)
change内容改变完成时触发(value: string)
remove-attachment点击附件移除按钮时触发(index: number, item: AttachmentItem)
clear清空内容时触发()

命令面板 Events

事件名说明回调参数
command-select选择命令时触发(command: AiCommandItem, parentCommand?: AiCommandItem)
command-search搜索命令时触发(keyword: string)
command-panel-show命令面板显示时触发()
command-panel-hide命令面板隐藏时触发()
command-cascade打开级联子菜单时触发(command: AiCommandItem, parentCommand: AiCommandItem)

Slots

插槽名说明
header顶部附件展示区插槽
toolbar底部左侧快捷工具栏插槽
actions底部右侧追加操作插槽(在字数统计后,发送按钮前)
submit自定义发送按钮

AiCommandItem

属性名说明类型是否必填
id唯一标识string
label显示文本string
keywords模糊搜索关键词string[]
icon图标名称string
description命令描述文本string
disabled是否禁用该命令boolean
children子命令列表(级联菜单)AiCommandItem[]
level命令层级深度number
data自定义扩展数据Record<string, unknown>

AttachmentItem

属性名说明类型
name文件名string
url文件链接string
status上传状态'uploading' | 'success' | 'error'
percentage上传进度number

在 Nuxt 中使用

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

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

主题变量

变量名说明默认值
--yh-ai-editor-sender-bg面板背景色var(--yh-bg-color-overlay)
--yh-ai-editor-sender-radius圆角大小12px
--yh-ai-editor-sender-border边框样式1px solid var(--yh-border-color)
--yh-ai-editor-sender-shadow面板阴影0 4px 16px rgba(0, 0, 0, 0.08)
--yh-ai-editor-sender-focus-border聚焦边框样式1px solid var(--yh-color-primary)

Released under the MIT License.