# 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` 中升档信息仅以文字展示：
     - 未达标：`<text class="bottom-right bottom-right--warning">{{item.perfGap}}</text>`
     - 已达标：`<text class="bottom-right bottom-right--success">✅ 已达标</text>`

### 证据

```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
<!-- board-coach.wxml — 仅文字展示，无进度条 -->
<text class="bottom-right bottom-right--warning"
      wx:if="{{dimType === 'perf' && !item.perfReached}}">
  {{item.perfGap}}
</text>
<text class="bottom-right bottom-right--success"
      wx:elif="{{dimType === 'perf' && item.perfReached}}">
  ✅ 已达标
</text>
```

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