# 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` 的使用方式