Skip to content

EmptyState 空状态 ​

空状态

业务组件在能力缺失时降级到空状态,这个组件就是那条验收标准的落点。

<pt-empty-state heading="还没有任何报表">创建第一个报表后,这里会列出它们。</pt-empty-state>

业务组件在能力缺失时必须降级到空状态或提示,不能抛未捕获异常 —— 这个组件就是那条验收标准的落点。

图标媒体位

media-variant="icon" 把图标放进 40px 的圆角底色方块。没有内容的插槽不留空白。

<pt-empty-state heading="没有匹配的结果" media-variant="icon">
  <span slot="icon">🔍</span>
  换个关键词,或者把筛选条件放宽一些。
  <pt-button slot="actions" variant="secondary" size="sm">清空筛选</pt-button>
</pt-empty-state>
标题与描述插槽

title 插槽有内容时替代 heading;描述可以用 description 插槽或默认插槽,里面直接放的链接带下划线。

<pt-empty-state>
  <span slot="title">还没有项目</span>
  <span slot="description">从模板开始,或者</span>
  <a href="#">查看入门指南</a>
</pt-empty-state>

结构 ​

虚线框里纵向居中:上半是媒体位(icon 插槽)、标题、描述一组,下半是操作区(actions 插槽)。 没有内容的插槽不留空白 —— 外壳整块藏起来,不会多出一截间距或一个空的底色方块; 内容后加进来(框架条件渲染、异步数据)时自动显示。

  • 标题默认取 heading,没给时是当前 locale 的「暂无数据」;title 插槽有内容时替代它,可以放富文本。
  • 描述用 description 插槽或默认插槽都行(默认插槽是旧写法,继续兼容),两者同时用时默认插槽排在后面。 描述里直接放的 <a> 颜色随正文、带下划线。
  • 操作区里的按钮横排,放不下时折行。

媒体位 ​

media-variant 两档:default 不加外壳;icon 把图标放进 40px 的圆角底色方块,图标 24px。 default 下没写尺寸的 <svg> 兜底成 32px,放插画时自己给尺寸。

宽度与内边距 ​

宿主占满容器宽度(width: 100%),需要更窄时在宿主上写 max-width。 内边距按组件自己的宽度切换:窄于 768px 是 24px,宽于等于 768px 是 48px。 用的是容器查询而不是视口断点 —— 空状态多半放在卡片、侧栏、下拉面板里,视口宽不代表它宽。

标题字重是 500,不是 kit 其它标题的 600(照源包,见排版 · 字重)。

API ​

属性

属性Attribute类型默认值说明
headingheadingstring | undefined—标题。默认取当前 locale 的「暂无数据」;title 插槽有内容时以插槽为准
mediaVariantmedia-variant"default" | "icon"'default'媒体位样式:default 不加外壳,icon 放进 40px 圆角底色方块、图标 24px

插槽

名称说明
(默认)描述文案(与 description 插槽等价,兼容旧写法;两者可同时用,默认插槽在后)
actions操作区
description描述文案
icon媒体位:图标或插画。`media-variant="icon"` 时放进 40px 的底色方块
title标题,有内容时替代 heading 文字

可定制的内部元素(::part())

part说明
actions操作区
base外层容器(虚线框)
description描述
media媒体位
title标题

Apache-2.0 协议开源