# Mediation State Control Specification ## ADDED Requirements ### Requirement: 状态控制按钮显示逻辑 系统 SHALL 根据案件当前状态动态显示状态控制按钮。 #### Scenario: 案件处于进行中状态 Given 案件状态为1(进行中) When 页面加载时 Then 应显示"终止"按钮,样式为红色渐变 #### Scenario: 案件处于暂停状态 Given 案件状态为5(暂停) When 页面加载时 Then 应显示"恢复"按钮,样式为绿色渐变 #### Scenario: 案件处于其他状态 Given 案件状态为0(初始)、2(成功)、3(失败)、4(人工接管)或其他状态 When 页面加载时 Then 不应显示状态控制按钮 ### Requirement: 确认对话框机制 用户点击状态控制按钮时 SHALL 显示确认对话框。 #### Scenario: 用户点击终止按钮 Given 用户看到"终止"按钮 When 用户点击该按钮 Then 应显示确认对话框,标题为"确认终止调解" And 对话框应包含操作说明文本 And 应提供确认和取消按钮 #### Scenario: 用户点击恢复按钮 Given 用户看到"恢复"按钮 When 用户点击该按钮 Then 应显示确认对话框,标题为"确认恢复调解" And 对话框应包含操作说明文本 And 应提供确认和取消按钮 ### Requirement: API调用和状态更新 确认操作后 SHALL 调用API并更新页面状态。 #### Scenario: 成功终止调解 Given 用户确认终止操作 When 系统调用ProcessAPIService.updateMediationState({action: 0}) And API返回成功响应 Then 应显示成功消息"调解已终止" And 应触发mediation-terminated事件关闭外呼气泡 And 应重新加载当前页面数据 And 按钮状态应相应更新 #### Scenario: 成功恢复调解 Given 用户确认恢复操作 When 系统调用ProcessAPIService.updateMediationState({action: 1}) And API返回成功响应 Then 应显示成功消息"调解已恢复" And 应重新加载当前页面数据 And 按钮状态应相应更新 #### Scenario: API调用失败 Given 用户确认操作 When 系统调用API失败 Then 应显示相应的错误消息 And 页面状态应保持不变 And 按钮应恢复到可点击状态 ### Requirement: 加载状态管理 操作过程中 SHALL 提供适当的加载状态反馈。 #### Scenario: API调用期间 Given 用户已确认操作 When 系统正在调用API Then 状态控制按钮应显示loading状态 And 应禁用相关操作按钮 And 应显示操作进度提示 #### Scenario: 页面刷新期间 Given API调用成功 When 系统正在刷新页面数据 Then 应显示数据加载指示器 And 应暂时禁用用户交互 ### Requirement: 状态显示规则 系统 SHALL 根据案件状态显示相应的状态文本和指示器颜色。 #### Scenario: 进行中状态显示 Given 案件状态为1(进行中) When 页面显示状态信息时 Then 状态文本应显示为"调解进行中-阶段X:节点名称" And 状态圆点应显示为绿色 #### Scenario: 暂停状态显示 Given 案件状态为5(暂停) When 页面显示状态信息时 Then 状态文本应显示为"AI调解暂停中" And 状态圆点应显示为红色(#e63946) ### Requirement: 外呼气泡联动关闭 终止操作成功后 SHALL 自动关闭外呼气泡组件。 #### Scenario: 终止成功后关闭外呼气泡 Given 用户成功执行终止操作 When API返回成功响应 Then 系统应触发自定义事件"mediation-terminated" And OutboundCallWidget应监听该事件 And 外呼气泡应自动关闭(isVisible=false) And 外呼任务数据应从localStorage中清除 ## MODIFIED Requirements ### Requirement: 按钮组件位置调整 状态控制按钮 SHALL 位于FloatingControlPanel组件中。 #### Scenario: 按钮容器布局 Given 页面包含FloatingControlPanel组件 When 添加状态控制按钮后 Then 状态控制按钮和人工接管按钮应水平排列 And 状态控制按钮应位于人工接管按钮左侧 And 按钮间应有15px的间距 #### Scenario: 样式隔离 Given 页面同时包含状态控制按钮和人工接管按钮 When 渲染页面时 Then 状态控制按钮应使用独立的CSS类名(state-control-btn) And 人工接管按钮应使用独立的CSS类名(floating-control-btn) And 两种按钮样式应完全隔离互不影响 ## REMOVED Requirements 无 ## Related Capabilities - 人工接管功能 (implement-manual-takeover) - 案件状态管理 (case-state-management) - API集成规范 (api-integration-spec)