# P9→NS1/RNS1 缺失项 #2:助教详情页档位进度时间轴的视觉规范 ## 简要结论 - 状态:⚠️ 部分解决 - 风险等级:🟠 中 - 已实现 `perf-progress-bar` 进度条组件(含渐变填充、刻度标记、高光/火花动画),但非 P9 定义的"时间轴"样式,缺少当前档位高亮节点和升档动画。 ## 详细审查 ### 审查范围 - `apps/backend/app/schemas/xcx_coaches.py` — `tier_nodes` 字段定义 - `apps/backend/app/services/coach_service.py` — `_build_tier_nodes()` 实现 - `apps/miniprogram/miniprogram/components/perf-progress-bar/` — 进度条组件 - `apps/miniprogram/miniprogram/pages/coach-detail/coach-detail.wxml` — 绩效概览区域 - `apps/miniprogram/miniprogram/pages/coach-detail/coach-detail.ts` — 进度条数据构建 ### 发现 1. **后端:tier_nodes 数据已返回** - `CoachDetailResponse.tier_nodes: list[float]` 已定义 - `_build_tier_nodes()` 从配置表读取档位节点 2. **前端:进度条组件已实现,但非时间轴** - `perf-progress-bar` 组件实现了水平进度条,含: - 渐变填充条(`ppb-fill` + `ppb-gradient-bar`) - 刻度标记(`ppb-ticks`,由 `ticks` 数组动态渲染) - 高光动画(`ppb-shine`)和火花动画(`ppb-spark`) - 当前档位高亮(`ppb-tick--done` class) - 但这是**水平进度条**,非 P9 定义的**垂直时间轴**样式 - 缺少 P9 定义的"档位节点"(tierNodes)的时间轴展示(如里程碑节点、连接线、当前位置标记) 3. **动画已实现但非"升档动画"** - 高光(shine)和火花(spark)是循环播放的装饰动画 - 非 P9 定义的"升档时触发的庆祝动画" 4. **前端 tier_nodes 未使用 API 数据** - `coach-detail.ts` 中 `tierNodes` 硬编码为 `[0, 100, 130, 160, 190, 220]`,注释标注 "Mock,实际由接口返回" - API 返回的 `tier_nodes` 未被前端消费 ### 证据 前端硬编码 tierNodes: ```typescript const tierNodes = [0, 100, 130, 160, 190, 220] // Mock,实际由接口返回 ``` 进度条组件刻度渲染(水平进度条,非时间轴): ```html {{item.label}} ``` ### 建议(如未完全解决) 1. 将前端 `tierNodes` 改为使用 API 返回的 `detail.tierNodes` 数据 2. 如需时间轴样式,新建 `tier-timeline` 组件,展示垂直时间轴(里程碑节点 + 连接线 + 当前位置) 3. 添加升档动画:当 `currentTier` 变化时触发一次性庆祝效果