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/implement-mediation-state-control/specs/mediation-state-control/spec.md | 134 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 134 insertions(+), 0 deletions(-)
diff --git a/openspec/changes/implement-mediation-state-control/specs/mediation-state-control/spec.md b/openspec/changes/implement-mediation-state-control/specs/mediation-state-control/spec.md
new file mode 100644
index 0000000..003d038
--- /dev/null
+++ b/openspec/changes/implement-mediation-state-control/specs/mediation-state-control/spec.md
@@ -0,0 +1,134 @@
+# 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)
\ No newline at end of file
--
Gitblit v1.8.0