Welcome

AI 助手 / 对话入口的欢迎页:问候主副标题与助手头像,下方“你可能想问”提示卡片栅格,支持换一批、加载骨架与居中/左对齐,点卡片经 OnPrompt 把提问交给宿主。

最后更新

说明

面向 AI 对话、智能助手起手的欢迎 / 空态组件,纯展示、不依赖任何浏览器 API。Title 与 Description 组成问候语(均作为翻译键),头像由 Avatar(文字缩写)、AvatarSrc(图片)、AvatarIcon(图标名,不本地化)任一项驱动,ShowAvatar 可强制显隐。Prompts 为 WelcomePrompt 列表(Key / Text / Icon / Description / Disabled),渲染成“你可能想问”卡片栅格:Columns 控制列数(默认 2,设为 0 按容器自适应),PromptsTitle(默认“你可能想问”)为提示区标题,Refreshable 在标题右侧放一个“换一批”按钮(RefreshText 默认“换一批”)并触发 OnRefresh。点某张卡片经 OnPrompt 回传该 WelcomePrompt,宿主据此把提问送进会话(常与 Bubble 配合搭出初始态);Disabled 项不可点。Align 在 center(默认,居中、头像在上)与 start(左对齐、头像在左)之间切换。Loading 为真时提示区显示骨架卡片。Header 插槽接在简介之下,ChildContent 插槽置于提示区之下(可放输入框或能力标签)。问候语、提示区标题与“换一批”文案走词条;提示卡片文本视为业务内容、由调用方传入并直接展示不本地化。所有外观通过 CSS 令牌接入框架明暗主题。

常见能力:

  • 问候主副标题 + 助手头像(文字 / 图片 / 图标任一驱动,ShowAvatar 可强制显隐)
  • Prompts 渲染“你可能想问”卡片栅格,Columns 控制列数(0 自适应)
  • Refreshable 换一批按钮 + OnRefresh;PromptsTitle / RefreshText 走词条
  • OnPrompt 回传点选卡片(Disabled 项不可点),常与 Bubble 衔接会话起手
  • Align 居中 / 左对齐两种版式,Loading 显示提示区骨架卡片
  • Header 插槽接简介下,ChildContent 插槽置于提示区下(输入框 / 能力标签)
  • 纯展示、无 JS 互操作,明暗主题随 CSS 令牌自动适配

用法

<Welcome Align="center" AvatarIcon="sparkles"
        Title="你好,我是 Known 助手"
        Description="可以帮你搭建模型、生成页面,也能解答框架用法。"
        Prompts="@_prompts" Columns="2" Refreshable="true"
        OnPrompt="Ask" OnRefresh="Shuffle">
    <ChildContent><Input Placeholder="输入你的问题" OnEnter="@Send" /></ChildContent>
</Welcome>

@code {
    List<WelcomePrompt> _prompts = new()
    {
        new("帮我设计一个订单实体", "database") { Description = "字段与校验" },
        new("多语言 Local 怎么用", "globe") },
    };
    void Ask(WelcomePrompt p) => _draft = p.Text; // 送入会话
    void Shuffle() { /* 换一批 */ }
}

API 参数

参数 类型 默认值 说明
Align string "center" 对齐方向:center(居中,默认)或 start(左对齐)。
Avatar string null 助手头像文字缩写(无图片、无图标时显示,作为翻译键)。
AvatarIcon string null 助手头像图标名(Icon Type,不本地化)。无图片时、且无文字缩写时生效。
AvatarSrc string null 助手头像图片地址。
ChildContent RenderFragment null 额外内容插槽(位于提示区之下,如输入框 / 能力标签)。
Columns int 2 提示卡片栅格列数。默认 2;设为 0 时按容器宽度自适应。
Description string null 问候副标题 / 简介(作为翻译键)。
Header RenderFragment null 头部自定义内容(位于简介之下)。
Loading bool false 加载态:提示区显示骨架卡片。
OnPrompt EventCallback<WelcomePrompt> — 事件 点击某条提示卡片的回调。
OnRefresh EventCallback — 事件 “换一批”点击回调。
Prompts List<WelcomePrompt> null “你可能想问”提示卡片数据。其中文本视为业务内容、直接展示不本地化。
PromptsTitle string "你可能想问" 提示区标题(作为翻译键)。留空则不显示标题行。
Refreshable bool false 是否在提示区右侧显示“换一批”按钮。
RefreshText string "换一批" “换一批”按钮文本(作为翻译键)。
ShowAvatar Nullable<bool> null 是否显示头像。默认根据 Avatar / AvatarSrc / AvatarIcon 任一非空自动判定。
Title string null 问候主标题(作为翻译键)。
Visible bool true 取得或设置组件是否可见,默认为false。
VisibleChanged EventCallback<bool> — 事件 取得或设置组件可见性变化时的回调事件。
Class string null 取得或设置组件的CSS类名,用于自定义样式。
Disabled bool false 取得或设置组件是否禁用,默认为false。
Style string null 取得或设置组件的内联样式,用于自定义样式。

所有组件均继承 BaseComponent,除上表参数外还支持 Class、Style、Disabled、Visible。

微信公众号二维码 扫码关注公众号
QQ 交流群二维码 扫码加入 QQ 群