iter(g10): 新增 statistic 统计数值组件

This commit is contained in:
HIsheR
2026-10-26 10:25:07 +08:00
parent cf65939af4
commit 2f8ccb68d8
12 changed files with 260 additions and 12 deletions
+30 -1
View File
@@ -1,6 +1,6 @@
# @ui-arch 组件库 Agent 文档(无图形版)
> 自动生成于 2026-10-26T02:22:42.729Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
> 自动生成于 2026-10-26T02:24:35.622Z,数据源:各包 ua.manifest.json,勿手改。人类版文档站:apps/docs/index.html。
> 组件 = 普通函数,传 props 返回 DOM;状态用 signal 双向绑定:读 signal() 写 signal(v)。
## 快速上手
@@ -977,6 +977,34 @@ descriptions({ title: '订单信息', column: 2, bordered: true, items: [{ label
现场演示:apps/docs/demo.html#sec-descriptions
### statistic — 统计数值 Statistic
参数:
- title:string —— 指标名(小字灰标题);缺省不渲染
- value(必填):Signal<number> —— 数值信号:变化时从当前显示值滚动到新值,首跑即入场动画
- precision(默认 0):number —— 小数位,千分位分隔自动带;缺省 0
- prefix:string —— 数字前缀(如 ¥);缺省不渲染
- suffix:string —— 数字后缀(如 元 / %);缺省不渲染
- trend:'up' | 'down' —— 环比方向:up 红 / down 绿(A 股涨红跌绿口径);缺省不渲染
示例:
```
const gmv = signal(128000); statistic({ title: '本月 GMV', value: gmv, prefix: '¥', precision: 2, trend: 'up' })
```
手把手:
1. value 必须传信号:组件用 effect 监听,值变了自动滚动过渡,不要在外部手动改文本
2. 首跑也会从 0 滚到目标值(入场动画);不想要就初始化信号为终值后在挂载后再改
3. precision 控制小数位,千分位由 toLocaleString 自动加,不要自己拼格式化
4. trend 只表达方向与颜色(涨红跌绿),数值本身与环比幅度仍由调用方组织
5. 多条指标并排时用 descriptions 或 flex 容器排列,本组件不自带网格
6. 用户开启「减弱动效」时组件直接落终值,无需调用方判断
现场演示:apps/docs/demo.html#sec-statistic
API 速览:
- button(props):按钮,variant = primary | ghost | danger,disabled 支持布尔或信号禁用
@@ -1017,6 +1045,7 @@ API 速览:
- timeline(props):时间线,items 按序渲染纵向事件流(标题 / 时间 / 正文 + 语义色节点),mode 控制轴线左右,pending 追加进行中节点
- segmented(props):分段控制器,胶囊分段 + 滑动滑块,value 信号双向绑定,←→ 环形导航,整组或单项可禁用
- descriptions(props):描述列表,items(label/value/span) 铺进 column 列网格,bordered 切表格形态,窄屏自动单列
- statistic(props):统计数值,标题 + 大号数字 + 前后缀 + 环比趋势,value 变化时 rAF 滚动过渡(400ms easeOutCubic),减弱动效偏好下直落终值
一行用法: