组件/MotionMetric

MotionMetric

由调用方数据驱动的指标卡、图表与复合仪表

自 0.6.3BETA

当前组件文档正在开发中

该页面正在持续迁移,示例与 API 可能会继续调整。

用法

全部变体

每个周期在 periods 中携带自己的 data,用 v-model:period 切换。

示例加载中...

最佳实践

  • 每个周期提供真实的 data,受控时响应更新事件;不要只改按钮文案而复用同一序列。
  • 计时器的 remaining / total、监控状态、噪声读数与消息送达都由调用方负责;running 只表示意图。
  • 读数、条码分数、圆环进度与图表使用一致的 target / min / max / unit;信用分组合默认范围为 300–850,可覆盖。
  • 为 series、metrics、groups、cells 提供稳定 ID、真实标签与完整单位;缺失的点不会被补造。
  • 用 labels、formatValue 与已授权的头像插槽本地化;尊重减少动态效果,不添加轮询或常驻动画。

API 参考

属性

属性名类型默认值说明
variantMotionMetricVariantm-progress-piano目录、复合能力或原始交互 ID。
interactionMotionMetricInteractionprogress-indicator-piano仅 animated-metric-card 使用的交互分支。
dataMotionMetricData—调用方数据集。
seriesMotionMetricSeries[]—覆盖当前数据集的序列。
metricsMotionMetricReadout[]—覆盖当前数据集的读数。
statusstring—调用方状态;组件不据此推断业务成功。
periodstringFirst period当前周期,配合 v-model:period。
periodsMotionMetricPeriod[]—周期选项,每项携带自己的数据。
filterStyle'pills' | 'select'Source-appropriate原生胶囊按钮或原生下拉。
activeIndexnumber0受控的图表、矩阵或阶段索引。
modelValuenumberdata.value / data.threshold数值读数;警报布局中为阈值。
range[number, number][data.min ?? 30, data.max ?? 120]噪声范围上下界;只派发输入,不测量音频。
runningbooleanfalse计时器运行状态;不启动内部时钟。
messagestringEmpty反馈草稿。
disabledbooleanfalse禁用原生输入与动作事件。
animatedbooleantrue启用数值与仪表动效;仍受可见性与减少动态效果限制。
size'xs' | 'sm' | 'md' | 'lg'md间距与数值字号。
labelsPartial<MotionMetricLabels>English defaults覆盖控件与空状态文案。
formatValue(value, unit?) => stringNumber with up to 2 decimals + unit只格式化显示,不改图表数据。

事件

事件名参数说明
update:periodstring选择周期时触发。
update:activeIndexnumber选择图表点、矩阵格或步骤时触发。
update:modelValuenumber进度、噪声值或警报阈值变化时触发。
update:range[number, number]噪声上下界变化时触发。
update:runningboolean开始或暂停的意图;没有内部时钟。
update:messagestring反馈草稿变化时触发。
select{ id: string, index: number }选中数据点时触发;图表点的 id 为空。
filter{ groupId: string, period: string }仪表分组切换周期时触发。
actionstringdetails、share、more、add、resume 或 all。
sendstring发送去除首尾空白后的非空消息。

插槽

插槽名作用域说明
header{ data }自定义标题区。
avatar—调用方提供的已授权头像。
preview{ data }反馈布局中的内容预览。
footer{ data }来源、单位或更新时间。

类型

类型字段说明
MotionMetricDatatitle, description, value, target, min, max, unit, previous, rank, status, remaining, total, threshold, columns, metrics, series, groups, cells, weekdays, steps, profiles, messages无业务默认值;remaining / total 以秒计,仪表的 target 默认 100。
MotionMetricSeriesid, label, points, unit?, tone?独立序列;点含 label / value,可选 description、tone 与睡眠阶段 level(0–100)。
MotionMetricReadoutid, label, value, unit?, previous?, target?, description?, status?, tone?, grade?数值或文本读数;grade 用于信用报告。
MotionMetricGroupid, label, value?, target?, unit?, columns?, cells?, metrics?, series?, period?, periods?命名子布局;销售、财务、信用分组可带独立周期,传入 period 时受控。
MotionMetricCellid, label, value, description?, selected?活动强度或日历日;选择时派发 id 与 index。
MotionMetricStepid, label, value, status?分段相对宽度与调用方阶段状态。
MotionMetricProfileid, name, initials?, status, detail?, value?, segments?, flight?flight 含 label/from/to/departure/arrival/progress(0–100);不内置头像 URL。
MotionMetricMessageid, author, text, time?调用方消息;send 不自行追加,也不声称送达。
MotionMetricPeriodvalue, label, data选中数据覆盖基础 data;顶层 series / metrics / status 优先。

分组 ID

变体分组 ID说明
cache-stats-card / cacheable-bandwidth-costbandwidthgroup.value / unit 为可缓存量;group.metrics 为已缓存与不可缓存分配。
network-telemetryAny ID每组是一个命名活动矩阵。
sales-dashboardanalytics, target双柱图与分段销售目标。
credit-score-cardsreport, utilization, history等级条目、余额/额度与历史分数。
finance-dashboardsavings, credit, expenses, assets像素储蓄、条码、堆叠支出与可筛选的资产分配。
marketing-cardschannels, campaign渠道分配与图表/读数分栏。
health-cardsgoals, period, hydration, workout, steps, sleep, heart, target每日圆环、周期圆点、图表、睡眠阶段与周目标。
system-metrics-cardAny ID每组含分位读数与独立图表;顶层 metrics 为错误分解。
course-progress-cardAny ID培训图表与参会者读数。

MotionMetricLabels

labels 的键与默认值,导出为 MOTION_METRIC_DEFAULT_LABELS:

{
  period: 'Period', empty: 'No data for this period', details: 'View details', share: 'Share', more: 'More actions',
  scrubber: 'Select a data point', current: 'Current', target: 'Target', remaining: 'Remaining',
  low: 'Low', high: 'High', minimum: 'Minimum', maximum: 'Maximum', threshold: 'Threshold',
  start: 'Start', pause: 'Pause', message: 'Message', send: 'Send', all: 'See all', resume: 'Resume',
  analysis: 'Analysis', average: 'Average',
}

CSS 变量

变量用途
--tx-mm-pad根内边距。
--tx-mm-gap区块间距。
--tx-mm-number数值字号。
--tx-chart-categorical-1..6各序列颜色。
--tx-chart-grid-line图表参考线。
--tx-color-*, --tx-text-color-*, --tx-fill-color-*, --tx-bg-color, --tx-border-color-*共享语义主题。

变体与源码映射

目录条目

目录 ID交互能力
m-cache-bandwidthcacheable-bandwidth-cost缓存/不可缓存分配、总量与费用
m-net-matrixnetwork-telemetry-matrix最终确认读数与独立网络矩阵
m-progress-pianoprogress-indicator-piano28 个钢琴键与数值目标输入
m-server-stepserver-performance-step-bars带顶部高亮的阶梯柱
m-overview-scrubberoverview-bar-scrubber-card条纹柱、活动点与滑动提示
m-sales-dualsales-analytics-dual-bars销售/收益双柱与销量目标
m-sales-arcsales-target-segmented-arc挂牌/交付分段半圆
m-sales-radial-dashsales-overview-radial-dashboard排名横幅、径向目标与双读数
m-credit-barcodecredit-score-barcode-meter42 条信用刻度与周期下拉
m-mono-stockmono-stock单色股票曲线、周期数据与悬停值
m-users-pillusers-growth-pill-progress星标/个人信息与可选择胶囊条
m-views-waveviews-hourly-wave-chart小时波形、真实平均值与周期筛选
m-mono-heatmapmono-heatmap调用方提供的 28 天灰度活动矩阵
m-timer-preptimer-preparation-segmented剩余时间、选中阶段与分段步骤
m-noise-levelnoise-decibel-level信号条、当前值输入与双范围控件

源码能力

路径相对于上游 src/components/metrics/;MOTION_METRIC_SOURCE_MAP 导出完整映射。

源码变体能力
AnimatedMetricCard.tsxanimated-metric-card29 个交互分支,没有通用占位卡
Budget.tsxbudget三行 64 列预算矩阵与详情事件
CacheStatsCard.tsxcache-stats-card查询/缓存读数与带宽分配
CourseProgressCard.tsxcourse-progress-card课程圆环、继续/全部动作、培训柱与参会者
CreditScoreCards.tsxcredit-score-cards分数半圆、等级报告、使用率与历史曲线
FeedbackCard.tsxfeedback-card调用方预览、可编辑消息、发送事件与消息列表
FinanceDashboard.tsxfinance-dashboard储蓄像素、信用条码、堆叠支出与资产筛选
Growth.tsxgrowth三组像素高度增长柱
GrowthCalendar.tsxgrowth-calendar可选择增长胶囊与调用方日历
HealthCards.tsxhealth-cards每日圆环、周期圆点、饮水、锻炼、步数、睡眠阶段、心率与周目标
MarketingCards.tsxmarketing-cards渠道分配与活动图表/读数分栏
NetworkTelemetry.tsxnetwork-telemetry汇总统计与各网络像素矩阵
NoiseCards.tsxnoise-cards独立噪声读数与双范围控件
OverviewChart.tsxoverview-chart月度条纹柱与选中读数
ProgressIndicator.tsxprogress-indicator36 键进度、比较与数值输入
PromptsCard.tsxprompts-card30 段提示词配额表
RealTimeAlerts.tsxreal-time-alerts预算柱与可编辑阈值线,只派发输入
RunningStatsCard.tsxrunning-stats-card距离/时长与含零值的每日柱
SalesDashboard.tsxsales-dashboard四项汇总、销售双柱与分段目标
SalesOverview.tsxsales-overview排名横幅、12 段目标与双统计
SavingsCards.tsxsavings-cards储蓄进度、添加事件、目标与交易柱
ServerPerformance.tsxserver-performance带顶帽的阶梯性能柱
StatusCards.tsxstatus-cards个人状态、活动/睡眠时间线与航班进度
StockChartCard.tsxstock-chart-card外部股票序列与首末值差量
SystemMetricsCard.tsxsystem-metrics-card延迟/滞后图、分位读数与错误分解
TimerCard.tsxtimer-card剩余秒数、阶段提示、步骤与运行事件
UserMetrics.tsxuser-metrics四项受众统计与浏览量/平均波形
UsersChartCard.tsxusers-chart-card受众面积图、次要读数与详情事件
VisitorsChartCard.tsxvisitors-chart-card两条独立访客曲线与多序列提示

AnimatedMetricCard 交互

目录条目的 15 个交互加上下表 14 个,构成全部 29 个分支。可直接作为 variant,或用 variant="animated-metric-card" 加 interaction 选择。

交互能力
mono-revenue营收曲线
mono-credit信用圆环与等级
mono-wallet余额与流入/流出
mono-savings储蓄目标与进度
mono-activity-ring独立活动目标同心环
mono-users活跃用户与地区徽标
mono-kfactor推荐倍数圆环
mono-latency分位值与延迟折线
mono-bandwidth速度半圆与延迟/丢包
mono-server独立 CPU/RAM 圆环与节点/堆数据
mono-progress构建圆环、步骤与调用方状态
mono-radar事件半圆与调用方警报数
mono-timer-arc剩余时间圆环与开始/暂停事件
mono-timer-ring独立专注/休息同心环

概述

  • 组件不读取网络、音频、健康、金融或监控服务,不生成数据,也不启动计时器;series、metrics、status、remaining 等由调用方更新。
  • 缺少数据时显示空状态,不显示固定读数。
  • 图表默认提供可用键盘操作的数据点滑块;噪声上下界互为原生边界,不会交叉。
  • 离屏、文档隐藏、KeepAlive 失活或减少动态效果时停止数值与圆环动效。

技术实现

  • 复用 SVG/D3 图表、TxStatCard、TxSlider、TxInput、TxButton 与 TxTextMorph。
  • 上游:Amicro 提交 43c29ce 的 Metrics 组件,MIT,Copyright (c) 2026 SYED SUBHAN UDDIN。
  • 源码:packages/tuffex/packages/components/src/motion-metric/。