Call Record Viewer Specification
ADDED Requirements
Requirement: 通话记录查看按钮
系统 SHALL 在AI调解实时看板的每条调解记录角色名称后显示通话记录查看按钮。
Scenario: 显示通话记录按钮
- WHEN 调解记录加载完成
- THEN 在每条记录的角色名称后显示胶囊形状的"通话记录"按钮
- AND 按钮包含电话图标和"通话记录"文字
Scenario: 点击通话记录按钮
- WHEN 用户点击通话记录按钮
- THEN 系统应打开通话记录详情弹窗
- AND 弹窗标题格式为"AI调解员与[角色名]的通话"
- AND 标题后显示任务ID(jobId)
Requirement: 通话记录弹窗数据加载
系统 SHALL 在打开通话记录弹窗时调用API获取通话记录数据。
Scenario: 获取通话记录数据
- WHEN 用户点击通话记录按钮
- THEN 系统应调用OutboundBotAPIService.getConversationLog API
- AND API参数应包含:
- caseId:从URL参数获取,若为空则从localStorage的case_data_timeline中获取case_id
- personId:从调解记录的person_id字段获取
- jobId:从调解记录的job_id字段获取
Scenario: API返回多条数据
- WHEN API返回的data数组包含多条记录
- THEN 系统应只使用最后一条记录进行展示
Scenario: API调用失败
- WHEN API调用失败或返回错误
- THEN 弹窗应显示错误提示信息
- AND 提供重试按钮
Requirement: 外呼状态展示
系统 SHALL 根据外呼状态(callStatus)展示不同的内容。
Scenario: 已接通状态展示
- WHEN callStatus为已接通状态(值为1, 20-31之一)
- THEN 弹窗顶部应显示录音播放器
- AND 弹窗中间区域应显示双方对话记录
Scenario: 未接通状态展示
- WHEN callStatus为未接通状态(值为0, 2-19, 32之一)
- THEN 弹窗应显示提示信息"未接通,无通话记录"
- AND 不显示录音播放器和对话记录
Requirement: 录音播放器
系统 SHALL 在已接通状态的通话记录弹窗中提供录音播放功能。
Scenario: 录音播放器展示
- WHEN 通话记录处于已接通状态且有recordUrl
- THEN 弹窗顶部应显示HTML5音频播放器
- AND 播放器应支持播放/暂停操作
- AND 播放器应显示当前播放进度和总时长
Scenario: 录音文件播放
- WHEN 用户点击播放按钮
- THEN 系统应播放recordUrl指定的.wav格式录音文件
- AND 录音文件URL可直接使用,无需拼接
Scenario: 录音加载失败
- WHEN 录音文件加载失败
- THEN 播放器应显示"录音文件加载失败"提示
- AND 提供重试按钮
Requirement: 对话记录展示
系统 SHALL 以类似微信聊天的样式展示双方对话记录。
Scenario: 解析对话记录
- WHEN 获取到通话记录数据
- THEN 系统应将conversations JSON字符串解析为对象数组
- AND 每个对话项包含timestamp、speaker、script、action字段
Scenario: AI调解员消息展示
- WHEN 对话记录的speaker为"Robot"
- THEN 消息气泡应显示在左侧
- AND 头像应显示机器人图标
- AND 头像下方应显示"AI调解员"
- AND 消息背景色应为浅蓝色(#e3f2fd)
Scenario: 当事人消息展示
- WHEN 对话记录的speaker为"Contact"
- THEN 消息气泡应显示在右侧
- AND 头像应显示当事人名字的首字
- AND 头像下方应显示调解记录中的creator字段值
- AND 消息背景色应为浅绿色(#e8f5e9)
Scenario: 时间戳展示
- WHEN 对话记录包含有效timestamp
- THEN 应在消息气泡下方显示格式化时间
- AND 时间格式应为"YYYY-MM-DD HH:mm"
Scenario: 过滤无效对话
- WHEN 对话记录的script字段为null或空字符串
- THEN 系统不应展示该条对话记录
Requirement: 对话记录弹窗样式
系统 SHALL 为通话记录弹窗提供清晰美观的样式设计。
Scenario: 弹窗尺寸
- WHEN 通话记录弹窗打开
- THEN 弹窗宽度应为600px
- AND 弹窗最大高度应为视口高度的80%
- AND 对话记录区域应支持垂直滚动
Scenario: 对话区域滚动
- WHEN 对话记录内容超过可视区域高度
- THEN 对话区域应显示垂直滚动条
- AND 滚动条样式应与系统整体风格一致
Scenario: 响应式适配
- WHEN 屏幕宽度小于600px
- THEN 弹窗宽度应自适应屏幕宽度
- AND 保持适当的左右边距
Related Capabilities
- 外呼通话API接口规范 (outbound-call-api)
- AI调解实时看板 (mediation-dashboard)