Skip to content

对话输入框

@astryxdesign/core v0.7.1 · ChatComposerInput

属性 ​

属性类型默认值说明
v-modelstring—草稿内容。放在 ChatComposer 里时,不传就用外层那份草稿。
placeholderstring先用外层的,再用本地化的“Type a message…”草稿为空时才显示的提示文字。
maxRowsnumber8超过几行以后输入框开始自己滚动。
triggersChatComposerTrigger[]—敲哪些字符会弹出候选列表。每个触发项带上字符、搜索来源、以及选中后插什么。
debounceMsnumber150异步搜索的等待时间。同步数据源不等待。
hasHistorybooleantrue光标在草稿首尾时按方向键,翻出之前提交过的内容。
labelstring本地化的“Message input”编辑区给读屏用的名字。
isDisabledboolean跟随外层输入区不能编辑。不传就跟着外层输入区的禁用状态。
pasteAsToken{ onPaste } | false内置的长度阈值粘贴的长文本会变成一个标签。传 useChatPasteAsToken 的返回值可以改阈值,传 false 就原样插入文字。
pasteAction(event, text) => boolean | void—纯文本粘贴时最先拿到机会。返回 true 表示你处理了,输入框不再自己插入。

事件 ​

事件参数说明
update:modelValuestring序列化后的草稿,标签的值也算在里面。v-model 绑的就是它。
changestring草稿变了,不管是手打、粘贴,还是代码塞进去的。
submitstring没按 Shift 的回车。Shift+回车是换行。
filesFile[]粘贴或拖进来的文件。拖文件进来不会让页面跳走。
keydownKeyboardEvent候选列表没有接这个按键时的按下事件。调 preventDefault() 可以跳过回车发送和历史翻阅。

暴露的方法 ​

名称类型说明
insertToken(token) => string | undefined在光标处塞一个标签,返回它的 id。
expandToken(id: string) => void把一个标签还原成它序列化出来的文字。
insertText(text: string) => void在光标处插入纯文本。
focus() => void聚焦到编辑区,用户原来在这个框里的光标位置不动。
getValue() => string序列化后的草稿,标签的值也算在里面。