1.9 KiB
1.9 KiB
T812 — inbox card detail and actions
Status:
doneMilestone:M1Est. change:~190 lines
Goal
完成後卡片首層只呈現問題、主推產品、主要證據、分數/時間與完成/移除;完整理由、回覆、CRM 位於詳情層。
Depends on
- T810、T811
Inputs
apps/web/src/pages/RadarOpportunitiesPage.tsxapps/web/src/components/radar/**- Spec §6.1–§6.2、驗收 #2–#5
Outputs
程式變更(預期路徑)
| 路徑 | 動作 | 說明 |
|---|---|---|
apps/web/src/components/radar/OpportunityInboxCard.tsx |
add | 首層卡片與 actions |
apps/web/src/components/radar/OpportunityDetailDrawer.tsx |
add | 證據、風險、產品匹配與既有操作 |
apps/web/src/pages/RadarOpportunitiesPage.tsx |
edit | 接 card、drawer、狀態更新 |
apps/web/src/styles/radar.css |
edit | 卡片層級與 mobile 操作區 |
行為變更
- 完成不建立 Contact;accept 成功才走既有 CRM binding 並同步完成。
- 移除需要原因,成功後提供復原。
API / 契約(若有)
- 所有 action 透過 RadarRepo;錯誤時保留原卡片狀態。
Out of scope
- 不改 CRM backend、不新增 reply meter。
Acceptance
- 首層無需展開即可完成或移除。
- 詳情可看到原文、產品依據、風險與原始連結。
- 指令:
cd apps/web && npm run test -- RadarOpportunitiesPage
Notes
- 2026-08-12 首次使用回饋修訂:卡片主動作改成「加入名單並追蹤」,另保留「只標示已處理」與「不適合」;完整判定抽屜同步提供正向處理動作。
- 加入名單成功必須同時把 ReviewState 設為
completed,並顯示前往 Contact 的下一步;不能只顯示含糊的「完成」。 - 首層只呈現一個推薦分數、產品與最強證據;英文 priority enum 不直接暴露給使用者。
不要把所有 ProductMatch 四維理由直接塞進首層卡片。