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

62 lines
1.9 KiB
Markdown
Raw Normal View History

2026-08-13 02:22:24 +00:00
# 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
- [x] 首層無需展開即可完成或移除。
- [x] 詳情可看到原文、產品依據、風險與原始連結。
- [ ] 指令:
```bash
cd apps/web && npm run test -- RadarOpportunitiesPage
```
## Notes
- 2026-08-12 首次使用回饋修訂:卡片主動作改成「加入名單並追蹤」,另保留「只標示已處理」與「不適合」;完整判定抽屜同步提供正向處理動作。
- 加入名單成功必須同時把 ReviewState 設為 `completed`,並顯示前往 Contact 的下一步;不能只顯示含糊的「完成」。
- 首層只呈現一個推薦分數、產品與最強證據;英文 priority enum 不直接暴露給使用者。
不要把所有 ProductMatch 四維理由直接塞進首層卡片。