thread-master/docs/product/demand-radar/tasks/T574-fe-crm-board-eight-col...

58 lines
1.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# T574 — fe-crm-board-eight-columns
> Status: `done`
> Milestone: `M4`
> Kind: `feat`
> Est. change: `~200 lines`
## Goal
完成後系統應:`/app/crm` 以單一 Contact 工作清單呈現,可搜尋、篩選、排序、分頁與安全移除。
## Depends on
- T502、T503、T569
## Inputs
- Spec`../spec.md` §3.4、§4.6.4、§5.3
## Outputs
### 程式變更(預期路徑)
| 路徑 | 動作 | 說明 |
|------|------|------|
| `apps/web/src/pages/CrmBoardPage.tsx` | edit | 搜尋/篩選/排序/分頁工作清單+同頁詳情+安全移除 |
| `apps/web/src/App.tsx` | edit | 註冊 `/app/crm` |
| `apps/web/src/data/live/radarRepos.ts` | edit | crm contacts 列表實作 |
| `apps/web/src/styles/radar.css` | edit | 響應式清單+右側詳情樣式 |
### 行為變更
- 「待追蹤」為**跨階段篩選**`needs_follow_up=true`),不是第八個階段,也不重複畫 Contact。
- 空名單顯示引導(去 `/app/radar` 加入名單),不顯示空白。
- 名單固定每頁 20 筆,支援名稱/帳號搜尋、階段篩選、最近接觸/意向排序。
- 手機版維持單欄,詳情排到清單下方;不產生整頁橫向捲動。
- 安全移除需明示歷史保留,並經確認後執行。
## Out of scope
- 手動合併/拆分聯絡人
- 統計T591
## Acceptance
- [x] 分頁與後端 filter 結果一致;待追蹤篩選不重複 Contact
- [x] 空名單有引導
- [x] 搜尋、移除與 live repository DELETE 有自動測試
- [x] 指令:
```bash
cd apps/web && npm run build && npm run check:tokens && npm run test && npm run lint
```
## Notes
同時把 T553 的「即將推出」佔位換成真頁。2026-08-12 依首次使用回饋,由八格改為單一工作清單:避免待追蹤重複 Contact也避免名單多時橫向溢出詳情固定在右側手機改排在下方階段改用單一選單。