# P8→NS1/RNS1 缺失项 #4:助教看板的"距升档"进度条 ## 简要结论 - 状态:⚠️ 部分解决 - 风险等级:🔴 高 - 后端仅返回 `perfGap` 文本字段(如"距升档 13.8h"),无进度百分比数据;`perf-progress-bar` 组件已开发但未在看板页面中使用,看板仅以文字形式展示距升档信息。 ## 详细审查 ### 审查范围 - `apps/backend/app/schemas/xcx_board.py`(CoachBoardItem schema) - `apps/backend/app/services/board_service.py`(get_coach_board 服务) - `apps/miniprogram/miniprogram/pages/board-coach/board-coach.wxml`(看板模板) - `apps/miniprogram/miniprogram/pages/board-coach/board-coach.ts`(看板逻辑) - `apps/miniprogram/miniprogram/pages/board-coach/board-coach.json`(组件引用) - `apps/miniprogram/miniprogram/components/perf-progress-bar/perf-progress-bar.ts`(进度条组件) ### 发现 1. **后端 Schema 无进度百分比字段** - `CoachBoardItem` 中与升档相关的字段: - `perf_hours: float` — 当前定档业绩小时数 - `perf_gap: str | None` — 文本描述(如"距升档 13.8h") - `perf_reached: bool` — 是否已达标 - 缺少:`perf_pct`(进度百分比)、`perf_target`(目标小时数)、`perf_tier`(当前档位)等可视化所需字段 2. **perf-progress-bar 组件已开发,功能完整** - 组件支持:`filledPct`(填充百分比)、`clampedSparkPct`(火星位置)、`currentTier`(当前档位 0~5)、`ticks`(刻度数组) - 支持高光动画和火花动画 - 已在 `task-list` 和 `coach-detail` 页面中使用 3. **看板页面未引用进度条组件** - `board-coach.json` 的 `usingComponents` 中无 `perf-progress-bar` - `board-coach.wxml` 中升档信息仅以文字展示: - 未达标:`{{item.perfGap}}` - 已达标:`✅ 已达标` ### 证据 ```python # CoachBoardItem — 仅有文本字段,无百分比 class CoachBoardItem(CamelModel): perf_hours: float = 0.0 perf_hours_before: float | None = None perf_gap: str | None = None # "距升档 13.8h" 或 None perf_reached: bool = False # 缺少: perf_pct, perf_target, current_tier, ticks 等 ``` ```html {{item.perfGap}} ✅ 已达标 ``` ```json // board-coach.json — 未引用 perf-progress-bar { "usingComponents": { "coach-level-tag": "/components/coach-level-tag/coach-level-tag", "filter-dropdown": "/components/filter-dropdown/filter-dropdown", // ... 无 perf-progress-bar } } ``` ### 建议 1. **后端**:在 `CoachBoardItem` 中增加进度可视化字段: - `perf_pct: float` — 当前业绩占目标的百分比(0~100) - `perf_target: float` — 当前档位目标小时数 - `current_tier: int` — 当前档位(0~5) - `ticks: list[dict]` — 档位刻度数组(复用 `perf-progress-bar` 组件的 ticks 格式) 2. **前端**:在 `board-coach.json` 中引入 `perf-progress-bar` 组件,在卡片的 perf 维度区域渲染进度条 3. 可参考 `coach-detail` 页面中 `perf-progress-bar` 的使用方式