From 6bb08c2297be1b6415c8bc02e6917eba6ee355e5 Mon Sep 17 00:00:00 2001
From: shimai <shimai@example.com>
Date: Fri, 03 Apr 2026 10:42:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/test/tony.cheng/260312' into test/shimai.huang/260309

---
 openspec/changes/add-call-record-viewer/proposal.md |   78 +++++++++++++++++++++++++++++++++++++++
 1 files changed, 78 insertions(+), 0 deletions(-)

diff --git a/openspec/changes/add-call-record-viewer/proposal.md b/openspec/changes/add-call-record-viewer/proposal.md
new file mode 100644
index 0000000..a3a9968
--- /dev/null
+++ b/openspec/changes/add-call-record-viewer/proposal.md
@@ -0,0 +1,78 @@
+# Proposal: 在AI调解实时看板增加通话记录查看功能
+
+## Change ID
+`add-call-record-viewer`
+
+## Summary
+在AI调解实时看板的每条调解记录中增加"通话记录"查看功能,允许调解员查看AI调解员与当事人(申请人/被申请人)的外呼通话详情,包括录音播放和文字对话记录。
+
+## Why
+当前AI调解实时看板仅展示调解记录的文字摘要,调解员无法了解AI调解员与当事人之间具体的通话内容和沟通过程。通过增加通话记录查看功能,调解员可以:
+- 回顾AI调解员与当事人的完整对话过程
+- 了解当事人的真实诉求和态度变化
+- 为后续人工介入调解提供更全面的背景信息
+- 作为调解过程的重要证据留存
+
+## What Changes
+- **前端UI变更**
+  - 在每条调解记录的角色名称后增加"通话记录"胶囊按钮
+  - 新增通话记录详情弹窗组件
+  - 弹窗顶部显示录音文件播放器
+  - 弹窗中间区域展示双方对话记录(类似微信聊天界面)
+
+- **API集成**
+  - 调用 `OutboundBotAPIService.getConversationLog` 获取通话记录
+  - 处理多种外呼状态的展示逻辑
+
+- **交互逻辑**
+  - 已接通状态:显示完整通话记录和录音播放
+  - 未接通状态:显示提示信息"未接通,无通话记录"
+
+## Impact
+- **受影响的规格**
+  - 新增能力:`call-record-viewer`(通话记录查看)
+
+- **受影响的代码**
+  - `web-app/src/components/dashboard/TabContainer.jsx` - MediationBoard组件增加通话记录按钮和弹窗
+  - `web-app/src/services/OutboundBotAPIService.js` - 确认getConversationLog接口参数
+  - `web-app/src/components/dashboard/TabContainer.css` - 新增通话记录弹窗样式
+
+## Stakeholders
+- 调解员:主要使用者,需要通过通话记录了解调解过程细节
+- 系统管理员:关注通话记录数据的安全性和准确性
+- 产品负责人:确保功能符合业务需求
+
+## Success Criteria
+- 每条调解记录后正确显示"通话记录"胶囊按钮
+- 点击按钮能正确弹出通话记录详情弹窗
+- 弹窗标题正确显示"AI调解员与xxx(角色名)的通话"
+- 已接通状态能正确播放录音和展示对话记录
+- 未接通状态显示正确的提示信息
+- 对话记录以类似微信聊天的样式展示,能区分双方
+- API调用失败时有合理的错误提示
+
+## Risks & Mitigations
+- **风险**:录音文件加载失败或格式不支持
+  - **缓解**:提供明确的错误提示,支持用户手动重试
+- **风险**:大量通话记录数据导致加载缓慢
+  - **缓解**:按需加载,仅在点击按钮时请求数据
+- **风险**:不同浏览器音频播放兼容性
+  - **缓解**:使用HTML5标准audio标签,提供格式兼容性检测
+
+## Dependencies
+- 已存在的 `OutboundBotAPIService.getConversationLog` API
+- `ProcessAPIService.getProcessRecords` 返回的调解记录数据结构(需包含person_id和job_id)
+- 案件数据Context中的caseId
+
+## Timeline
+预计开发时间:2个工作日
+- UI设计与开发:1天
+- API集成与联调:0.5天
+- 测试与优化:0.5天
+
+## Alternatives Considered
+1. **在外呼气泡组件中查看通话记录**:与调解记录脱节,用户体验不连贯
+2. **跳转到独立的通话记录页面**:增加页面跳转复杂度,不符合快速查看的场景
+3. **仅在已接通记录显示按钮**:未接通状态用户无法了解情况,信息不完整
+
+选择在调解记录卡片内直接查看的方式,保持用户操作的连贯性和上下文关联。

--
Gitblit v1.8.0