AgentCards

把智能体一轮回答里查到的东西画进气泡:一张卡 = 标题头 + 字段网格 + 标签行,数据来自 IAgentService 交回的 AgentReply.Cards(AgentCard / AgentCardField 纯 DTO)。刻意不做按钮与链接,卡片只读;三样全空的卡片收成一句「(无结果)」。

最后更新

说明

面向「模型说查到 3 条、不如把那 3 条摆出来」的结构化结果展示组件,由顶栏智能体抽屉挂在 Bubble 的 ChildContent 里,宿主则在 IAgentService 实现里填 AgentReply.Cards。Items 为 AgentCard 列表:Title 与 Icon 组成卡片头(Icon 留空回退 file-text),Summary 是一行说明,Fields 为 AgentCardField(Label / Value)列表、交给 Descriptions 排布(两列还是一行取决于视口宽度过不过 web.css 里那条 1150px 断点,与卡片容器宽度无关),Tags 排成一行小胶囊标签。为 WebAssembly 宿主着意保持纯数据:卡片只靠 JSON 过边界,不带按钮、链接与回调,「点开这张单据」这类交互留给宿主自己的页面;要加交互请加宿主自己的组件,而不是往 AgentCard 塞 RenderFragment。Items 为空或 null 时整个组件不渲染(气泡不留空占位);某张卡的标题、说明、字段、标签全空时收成一句「(无结果)」,而不是一个空盒子。分工沿用抽屉的口径:卡片是业务数据,一律不本地化——标题、字段名与取值都按原样显示,宿主若要译名请自己译好再交回。Class / Style / Visible 沿用 BaseComponent;样式走 CSS 令牌,明暗主题自动适配。

常见能力:

  • 一张卡 = 标题头(Icon 留空回退 file-text)+ Summary + Fields 字段网格 + Tags 标签行
  • 数据来自 AgentReply.Cards(AgentCard / AgentCardField 纯 DTO),JSON 过边界,WASM 宿主同样可用
  • 刻意只读:无按钮、无链接、无回调,点开单据这类交互留给宿主自己的页面
  • Fields 交给 Descriptions 排布,两列/一行由视口 1150px 断点决定,不看容器宽度
  • Items 为空或 null 整块不渲染;四样全空的卡片收成一句「(无结果)」
  • 卡片内容视为业务数据不本地化,宿主译好再交回;外观走 CSS 令牌适配明暗

用法

"<AgentCards Items="@cards" />

@code {
    List<AgentCard> cards =
    [
        new()
        {
            Title = "本月的三笔逾期",
            Icon = "alert-circle",
            Summary = "按发货日期排序,已剔除暂停客户",
            Fields = [new AgentCardField("SO-1024", "逾期 6 天 · ¥18,000"), new AgentCardField("SO-1031", "逾期 3 天 · ¥4,200")],
            Tags = ["华东区"],
        },
    ];
}"

API 参数

参数 类型 默认值 说明
Items List<AgentCard> null 卡片清单。为空或 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 群