Skip to content

Thinking 思考中 🍓

介绍

Thinking 是一个用于展示思考中状态的组件,支持 状态管理内容展开/收起自定义样式。通过不同状态(开始/思考中/完成/错误)的视觉反馈,帮助用户直观理解AI的思考流程。组件内置过渡动画,提供灵活的扩展插槽,适合在智能对话、数据分析等场景中使用。

💌 消息

此组件可以和 BubbleList 等组件一起使用,以实现更丰富的交互体验。

代码使用

最基础的集成方式

通过 content 属性可以设置内容展示

通过 v-model 属性,我们可以设置 默认状态。

通过 status 属性设置组件的状态,一共有四个默认状态,分别是 startthinkingenderror

自动收起属性,当组件 status 状态变成 end 时,自动收起。该属性默认为 false

禁用操作

buttonWidthmaxWidth 属性,可以设置 展开收起按钮展开内容 的最大宽度。两者都是 string 类型,意味着你可以使用 px%vwvh 等单位。

通过 colorbackgroundColor 来快速设置内容区域的背景颜色和字体颜色。类型为 string,意味着可以使用 css 的颜色值。

组件提供多个自定义插槽,方便开发者自定义组件样式

  • #status-icon: 状态图标插槽
  • #label: 状态文字插槽
  • #arrow: 箭头插槽
  • #content: 内容插槽
  • #error: 错误提示插槽

属性

属性名类型是否必填默认值描述
contentString''显示的主要内容文本 无打字效果,由接口返回决定
modelValueBooleantrue通过 v-model 绑定展开状态,默认为展开状
statusThinkingStatus'start'组件状态:start(开始)/thinking(思考中)/end(完成)/error(错误)
autoCollapseBooleanfalse是否在组件状态变为 end 时自动收起内容区域
disabledBooleanfalse是否禁用组件交互
buttonWidthString'160px'触发按钮宽度
durationString'0.2s'过渡动画时长
maxWidthString'500px'内容区域最大宽度
backgroundColorString'#fcfcfc'内容区域背景色
colorString'var(--el-color-info)'内容文字颜色

事件

事件名参数类型描述
@change{value:boolean,status:ThinkingStatus}Function展开状态或状态变化时触发

插槽

插槽名参数类型描述
#status-icon{ status }Slot自定义状态图标
#label{ status }Slot自定义按钮文字
#arrow-Slot自定义箭头图标
#content{ content }Slot自定义内容区域(非错误状态)
#error-Slot自定义错误信息内容展示

功能特性

  1. 多状态管理

    • 支持start/thinking/end/error四种状态,自动切换对应图标和文案
    • 错误状态时强制显示固定错误提示
  2. 交互反馈

    • 展开/收起内容区域时带有平滑滑动动画
    • 按钮点击反馈支持自定义过渡效果
  3. 样式定制

    • 通过CSS变量控制尺寸、颜色等视觉属性
    • 提供完整的插槽扩展能力,支持自定义图标和内容
  4. 智能行为

    • 状态切换时自动调整展开状态
    • 禁用状态时保持视觉反馈但阻断交互