# 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,也避免名單多時橫向溢出;詳情固定在右側(手機改排在下方),階段改用單一選單。