Skip to content

FxStatistic 统计组件 ​

展示统计数值与倒计时。含 FxStatistic(统计数字)与 FxCountdown(倒计时)两个组件。不依赖任何 UI 框架,样式走 @fx/styles token。

FxStatistic / FxCountdown 属于 @fx/components。

基础用法 ​

突出一个或一组数字(统计值、金额、排名等),可在数字前后与标题处加图标、单位等元素;总交易数一列用 requestAnimationFrame 做了线性过渡(文档站无 @vueuse/core,用原生 rAF 实现)。

倒计时 ​

FxCountdown 是薄包装 FxStatistic 的倒计时组件,到达目标时间触发 finish,每帧触发 change。value 设置目标时间(时间戳毫秒或 Dayjs),默认 format="HH:mm:ss";format 支持 Y / M / D / H / m / s / S token,[ ] 包裹的内容视为转义文本不参与替换。

TIP

格式范围建议在天(DD)及以上。月 / 年按近似值(30 天 / 365 天)计算,跨度大时会有精度偏差。

卡片用法 ​

卡片式统计展示,可自由组合:标题加 tooltip 提示、底部加环比与箭头图标。

Statistic API ​

Attributes ​

参数说明类型默认值
value数值内容number | Dayjs0
title标题string—
prefix前缀(与 prefix slot 互斥)string—
suffix后缀(与 suffix slot 互斥)string—
decimal-separator小数点分隔符string'.'
group-separator千分位分隔符string','
precision数值精度(小数位数)number0
formatter自定义数值呈现(优先级最高)(...args: any[]) => string | number—
value-style数值样式StyleValue—

Slots ​

名称说明
title自定义标题
prefix自定义前缀
suffix自定义后缀

Exposes ​

名称说明类型
displayValue当前显示值ComputedRef<string | number>

Countdown API ​

Attributes ​

参数说明类型默认值
value目标时间(时间戳毫秒或 Dayjs)number | Dayjs0
format格式化(Y/M/D/H/m/s/S,转义用 [ ])string'HH:mm:ss'
prefix前缀string—
suffix后缀string—
title标题string—
value-style数值样式StyleValue—

Events ​

名称说明类型
change每帧触发,参数为剩余毫秒(value: number) => void
finish倒计时归零时触发() => void

Slots ​

名称说明(透传 FxStatistic)
title自定义标题
prefix自定义前缀
suffix自定义后缀

Exposes ​

名称说明类型
displayValue当前显示值(格式化字符串)ComputedRef<string>

实现说明 ​

  • Statistic 数值规则:formatter 优先 → 非数字或 NaN 原样返回 → 数字按 precision 补零/截断、groupSeparator 三位分隔、decimalSeparator 拼接小数。
  • Countdown 薄包装:内部渲染 <FxStatistic>,formatter 固定为按 format 渲染剩余毫秒;驱动方式用浏览器原生 requestAnimationFrame,每帧计算 timestamp - Date.now(),到 0 停止并触发 finish。
  • format token:Y/M 为近似值(月按 30 天、年按 365 天);S 为毫秒,SSS 显示三位毫秒。
  • 样式 token:标题 --color-text-secondary + --fw-normal + 14px;数值 --color-text-primary + --fw-normal + 20px,prefix/suffix 各 4px 间距,统一走 @fx/styles token 不引用第三方框架变量。