Dashboard Grid 仪表盘网格
自动填充的仪表盘磁贴网格:能放几列就放几列,磁贴可以跨列或占满整行。KPI 磁贴通过属性配置,其他内容放进插槽。
基础用法
网页近似预览,真机效果以 HarmonyOS 渲染为准。
API
从组件库源码中的 @Param / @Event / @BuilderParam 声明自动提取。
SDashboardGrid
仪表盘分区:可选标题,加上一个自动填充的磁贴网格(repeat(auto-fill, minmax(minTileWidth, 1fr)))——手机上 1 列,平板和桌面上 2 至 4 列以上,没有断点。磁贴可以通过 span 跨列(会被限制在当前列数以内),或通过 full 占满整行。
标题行的操作放在 actionsBuilder: wrapBuilder(rangePicker)(全局 @Builder)中,这样磁贴仍然使用尾随闭包。
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
title | ResourceStr | undefined | undefined | |
description | ResourceStr | undefined | undefined | |
minTileWidth | number | 240 | 磁贴的最小宽度(vp) |
gap | number | 16 | |
maxColumns | number | 0 | 列数上限(0 表示不限) |
actionsBuilder | WrappedBuilder<[]> | undefined | undefined | 标题行的尾部内容(筛选、日期范围、操作);需要设置 title。这是一个区域而不是插槽:以全局 @Builder 的 actionsBuilder: wrapBuilder(myActions) 传入(没有 this:请渲染一个组件)。 |
插槽: 子组件(尾随闭包)
SDashboardTile
仪表盘卡片。快捷属性会渲染为 KPI 磁贴(标题 + 图标、大号数值、带趋势图标的变化量);插槽可在其下方添加任意其他内容(图表、表格、列表)。
| 属性 | 类型 | 默认值 | 说明 |
|---|---|---|---|
title | ResourceStr | undefined | undefined | |
icon | string | undefined | undefined | |
value | ResourceStr | undefined | undefined | |
delta | ResourceStr | undefined | undefined | |
trend | DashboardTrendDashboardTrend = 'up' | 'down' | 'none' | 'none' | |
span | number | 1 | 跨越的列数(会被限制在当前列数以内) |
variant | CardVariantCardVariant = 'default' | 'outline' | 'elevated' | 'ghost' | 'filled' | 'default' | 磁贴的卡片变体(主题的 --card-* 令牌同样适用于任何 SCard) |
tokens | CardTokens | {} | 实例级卡片令牌(ADR D13),例如 { background: 'transparent', shadow: 'none' } |
full | boolean | false | 占满整行 |
插槽: 子组件(尾随闭包)