thread-master/docs/product/opportunity-inbox/tasks/T812-inbox-card-detail-and-...

1.9 KiB
Raw Permalink Blame History

T812 — inbox card detail and actions

Status: done Milestone: M1 Est. change: ~190 lines

Goal

完成後卡片首層只呈現問題、主推產品、主要證據、分數時間與完成移除完整理由、回覆、CRM 位於詳情層。

Depends on

  • T810、T811

Inputs

  • apps/web/src/pages/RadarOpportunitiesPage.tsx
  • apps/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 操作區

行為變更

  • 完成不建立 Contactaccept 成功才走既有 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 四維理由直接塞進首層卡片。