Skip to content

XSender 输入框

使用import { XSender } from 'vue-element-plus-x'
文档
编辑此页更新日志Issue 反馈

介绍

XSender 这个组件内置了输入框标签选择指令弹窗提及用户等场景智能对话的场景功能。

📌 Warning

⚠️ 插件版本需要大于 1.3.98 版本,之前旧版本插件名为 EditorSender ,其中API 有很大的使用差异,需要注意。

代码演示

基础用法

这是一个XSender 输入框,最简单的使用例子。

提示语

可以通过 placeholder 设置输入框的提示语。

自动聚焦

可以通过 auto-focus 设置输入框自动聚焦。

状态属性

可以通过简单属性是,实现组件的状态

💌 Info

  • 通过 loading 属性,可以控制输入框是否加载中。
  • 通过 disabled 属性,可以控制输入框是否禁用。
  • 通过 clearable 属性,可以控制输入框是否出现删除按钮,实现清空。

提交方式

可以通过 submitType 设置输入框的提交方式。

布局变体

通过 variant 属性设置输入框的变体。默认 'default' | 上下结构 'updown'

这个属性,将左右结构的 输入框,变成 上下结构的 输入框。上面为 输入框,下面为 内置的 前缀和操作列表栏

自定义操作列表

通过 #action-list 插槽用于自定义输入框的操作列表内容。

💌 Info

当你使用 #action-list 插槽时,会隐藏内置的输入框的操作按钮。你可以通过和 组件实例方法 相结合,实现更丰富的操作。

自定义前缀

通过 #prefix 插槽用于自定义输入框的前缀内容。

自定义头部

💯 欢迎使用 Element Plus X
🦜 自定义头部内容

通过 #header 插槽用于自定义输入框的头部内容,还可以通过 headerAnimationTimer 属性设置头部动画时间。

自定义底部

自定义输入框样式

通过 customStyle 方便对输入框的样式透传,你可以设置 maxHeight 来限制输入框的高度。这样实现在一定的高度下出现滚动条。

输入长度限制

当前输入长度: / 200

可以通过 maxLength 来限制输入框的最大输入长度。

💔 Danger

该配置项性能开销较大 非必要情况请别设置(像豆包和文心一言都不对这块做限制不应因小失大)

进阶用法

输入框

可以通过 setInput 插入一个输入框,提供用户填写预设内容。 使用 setChatNode 可以预设输入框内容(如文案、输入项等)。

标签选择框

可以通过 setSelect 插入一个标签选择框提供用户选择预设内容。 使用 showSelect 可以基于传入的元素唤起选择弹窗。 使用 setChatNode 可以预设输入框内容(如文案、标签选择等)。

提及用户

默认可以通过 @ 触发提及用户选择弹窗。 可以通过 setMention 插入一个提及用户标签。 使用 setChatNode 可以预设输入框内容(如文案、提及等)。

指令弹窗

默认可以通过自定义设置触发符触发选择弹窗。 可以通过 setTrigger 插入一个指令标签。 使用 setChatNode 可以预设输入框内容(如文案、指令等)。

前置提示词

前置标签状态:

可以通过 showTip 唤起前置提示词。 使用 closeTip 可以关闭前置提示词。

属性

Props

属性类型是否必填默认值说明
placeholderstringfalse请输入内容提示占位语
devicePC | H5 | autofalseauto交互设备
autoFocusbooleanfalsefalse渲染完成后是否自动聚焦
variantdefault | updownfalsedefault布局变体
maxLengthnumberfalse-1输入长度限制
submitTypeenter | shiftEnterfalseenter提交类型
customStyleCSSStyleDeclarationfalse{}自定义输入框样式
loadingbooleanfalsefalse加载中状态
disabledbooleanfalsefalse禁用状态
clearablebooleanfalsefalse显示清空按钮
headerAnimationTimernumberfalse300头部动画时间
mentionConfigMentionConfigfalsenull提及用户配置
triggerConfigTriggerConfig[]falsenull指令弹窗配置
selectConfigSelectConfig[]falsenull标签选择弹窗配置
tipConfigTipConfig | booleanfalsetrue前置提示词配置(true 启用默认配置,false 禁用,对象表示启用并传入配置)
getPlugin() => typeof XSenderfalsenull自定义底层插件版本

tipConfig 会原样透传给底层 x-sender 插件:组件本身不对配置做合并处理,true/false 用于开关功能,对象用于自定义配置项。

MentionConfig

属性类型是否必填默认值说明
dialogTitlestringtrue''提及用户弹窗标题
options<{ id: string, name: string, avatar?: string }>[]true[]数据选项
callEverybooleanfalsefalse是否需要提及所有人选项
everyTextstringfalse所有人提及所有人的选项文案
asyncMatch(matchStr: string) => Promise<MentionItem[]>falsenull提及弹窗选项启用异步匹配模式
emptyTextstringfalse暂无数据异步匹配选项为空时的提示文案

TriggerConfig

属性类型是否必填默认值说明
dialogTitlestringtrue''指令弹窗标题
keystringtruenull触发指令选择的按键符
options<{ id: string, name: string }>[]true[]数据选项

SelectConfig

属性类型是否必填默认值说明
dialogTitlestringtrue''标签选择弹窗标题
keystringtruenull选择标签标识
options<{ id: string, name: string, preview?: string }>[]true[]数据选项
multiplebooleanfalsefalse开启多选
emptyTextstringfalse暂无数据无选项时的提示文案
showSearchbooleanfalsefalse开启搜索功能
placeholderstringfalse输入关键字查询搜索提示占位语
searchEmptyTextstringfalse暂无数据搜索内容为空时的提示文案

TipConfig

属性类型是否必填默认值说明
tipTemplatestringfalse''前置提示词模板
dialogTemplatestringfalse''指令弹窗模板
closeNamesstring[]false[]关闭弹窗的按键符列表
offsetTopnumberfalse0弹窗顶部偏移量