组件/Suggestion Chips

Suggestion Chips

横向排列的提问建议胶囊,供用户一键发起后续对话。

Verified自 0.3.9

Suggestion Chips

基础用法

Suggestion Chips

示例加载中...

纵向追问列表

layout="list" 把胶囊改成带分隔线的纵向行,行首是一枚回车折返箭头,逐行错峰浮现。这是答案定稿后收尾的形态:追问是一份可以读完的清单,而不是一条需要横向拖动的轨道。

流式回答里的追问

正文流完后,来源堆叠与追问列表一起变为可用。

示例加载中...

交互契约

  • layout="list" 只改版式,不改数据与事件:select 仍然携带完整建议对象。
  • 列表形态下每行按位置错峰入场(每行 90ms);减弱动效下入场直接关闭,行本身照常显示。
  • 行分隔线画在每行的下边框上,包括最后一行——这是上游的观感,与截图一致。
  • suggestions 为空数组时整个组件不渲染,无需在外层再包一层 v-if
  • 每个胶囊以 suggestion.id 作为 key,请保证同一组内 id 唯一。
  • 点击派发 select,参数是被点中的完整建议对象,而不是索引或 id。
  • 组件不维护选中态,也不会在点击后移除建议;是否清空由消费方决定。
  • 容器溢出时可横向滚动,滚动条被隐藏,两侧用渐变遮罩提示可滚动。
  • 容器为 role="list",胶囊为 role="listitem":这会覆盖 <button> 的隐式语义,屏幕阅读器将其读作列表项而非按钮。若需要按钮语义,请在外层补充说明文本。

API

Props

属性名类型默认值说明
suggestionsAiSuggestion[]建议列表;AiSuggestion{ id: string, text: string }。必填。
layout'wrap' | 'list''wrap'list 改为带分隔线与折返箭头的纵向行。

Events

事件名参数说明
select(suggestion: AiSuggestion)点击某个胶囊时派发,携带该建议对象。

Slots

TxSuggestionChips 不暴露插槽。胶囊文案取自 suggestion.text,需要富文本时请改用自定义实现。

最佳实践

  • 一次给出 3~5 条建议;超出屏宽虽可滚动,但被折叠的选项实际很少被点到。
  • 文案写成用户会说的话(「补充单元测试」),而不是功能名(「测试生成」)。
  • 点击后通常应清空或替换建议列表,避免用户重复发送同一条。
  • id 用稳定标识而非文案本身,便于埋点统计与后续去重。