跳转到内容

空状态 empty-state

数据展示组件。三层同源:无头内核给出解剖与状态机,Vue 组件与自定义元素只是它的两层外壳,行为完全一致。

示例

基础用法

图标、标题、说明、操作四个槽都可选,只有 root 是必须的

还没有任何工单

新建一条工单,或者换个筛选条件再看看。

尺寸

size 只换留白与字号,语义一点不动;不传即 md

sm

塞进侧栏或卡片里的那一档。

md

缺省档,列表与表格用它。

lg

整页只有这一块时用它。

播报方式

缺省 polite 让 root 成为活区,筛完就地播报;off 让它只是个普通容器

没有匹配「曦寒」的结果

换个词,或者去掉几个筛选条件。

用作结果页

同一套部件也承载 404、403 这类结果:换掉图标与文案,操作槽里放回退出口

404 页面不存在

地址可能敲错了,或者这条记录已经被删掉。

403 没有权限

这块内容需要更高的角色,找管理员要一下。

500 服务出错

请求没能处理完,稍后再试一次。

按语气着色

空状态自己不带语气,图标槽里放一枚带 tone 的图标,成功、警示、出错就各是一族颜色

全部导入成功

128 条记录已入库,没有需要人工处理的行。

部分行被跳过

有 6 行缺少必填字段,这次没有导入它们。

导入没有完成

文件读到一半中断,这次改动已经整体回滚。

产物

自定义元素<xh-empty-state>
Vue 组件XhEmptyStateAction XhEmptyStateDescription XhEmptyStateIcon XhEmptyStateRoot XhEmptyStateTitle
状态机无,connect 直接由 props 算属性
皮肤@xihan-ui/styles/empty-state.css

解剖

部件名即 data-part 属性值,也是皮肤的选择器。加粗的是必备部件,不渲染它组件不工作(Web Components 适配器会在诊断通道上报 wc.missing-part)。

data-scope="empty-state"root · icon · title · description · action

Props

属性类型必填说明
liveEmptyStateLive缺省 polite。
sizeSize尺寸档位,只改留白与字号,不改语义。

connect API

connect 产出的对象。getXxxProps() 铺到对应部件的宿主元素上,其余是可读状态与操作入口。

成员类型说明
liveEmptyStateLive生效的播报方式,缺省补齐后的值。
getRootProps() => T['element']
getIconProps() => T['element']
getTitleProps() => T['element']
getDescriptionProps() => T['element']
getActionProps() => T['element']

键盘

规格出处:W3C APG

无键盘交互(不接收焦点,或焦点行为完全由原生元素提供)。

Released under The MIT License