57 lines
1.4 KiB
Markdown
57 lines
1.4 KiB
Markdown
|
|
# T012 — 批次列表與獨立分頁
|
|||
|
|
|
|||
|
|
> Status: `done`
|
|||
|
|
> Milestone: `M1`
|
|||
|
|
> Est. change: `~180 lines`
|
|||
|
|
|
|||
|
|
## Goal
|
|||
|
|
|
|||
|
|
完成後,Scout 頁面從 listRuns 瀏覽真正批次,批次頁碼不再由全量 posts 前端分組產生。
|
|||
|
|
|
|||
|
|
## Depends on
|
|||
|
|
|
|||
|
|
- T011
|
|||
|
|
|
|||
|
|
## Inputs
|
|||
|
|
|
|||
|
|
- 讀取 / 依賴:
|
|||
|
|
- 檔案:`apps/web/src/pages/ScoutPage.tsx`
|
|||
|
|
- 既有能力 / API:Pager、ScoutRepo.listRuns
|
|||
|
|
- Spec 段落:§4 流程 D、§9 #10–#13
|
|||
|
|
|
|||
|
|
## Outputs
|
|||
|
|
|
|||
|
|
### 程式變更(預期路徑)
|
|||
|
|
|
|||
|
|
| 路徑 | 動作 | 說明 |
|
|||
|
|
|------|------|------|
|
|||
|
|
| `apps/web/src/pages/ScoutPage.tsx` | edit | 移除 runGroups 主路徑,加入 run page state、載入、選取與 run metadata。 |
|
|||
|
|
| `apps/web/src/pages/ScoutPage.test.tsx` | edit | 驗證第 1 頁載入、翻批次頁、選 run 與結果頁重設。 |
|
|||
|
|
|
|||
|
|
### 行為變更
|
|||
|
|
|
|||
|
|
- 批次預設每頁 10,依 server 順序顯示;切換 run 保留批次頁碼。
|
|||
|
|
|
|||
|
|
### API / 契約(若有)
|
|||
|
|
|
|||
|
|
- 只呼叫 listRuns({page,pageSize}),不得先抓全部 posts。
|
|||
|
|
|
|||
|
|
## Out of scope
|
|||
|
|
|
|||
|
|
- 不在本 task 實作結果時間卡片或 job 完成提示。
|
|||
|
|
|
|||
|
|
## Acceptance
|
|||
|
|
|
|||
|
|
- [x] 批次 total 使用 pagination.total,非目前 list.length。
|
|||
|
|
- [ ] 指令:
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd apps/web && npm test -- src/pages/ScoutPage.test.tsx
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
驗收結果:`npm run build`、ScoutPage 2 tests passed。
|
|||
|
|
|
|||
|
|
## Notes
|
|||
|
|
|
|||
|
|
保留 homework 流程,但不再用 homework 推導新 run。
|