edit | blame | history | raw

Design Document: AI调解状态控制功能

架构概述

本功能将在现有的调解看板界面中添加状态控制能力,允许用户暂停或恢复AI自动调解流程。设计遵循现有系统的组件结构和交互模式。

组件设计

1. 状态控制按钮组件

位置:位于FloatingControlPanel组件中,人工接管按钮左侧
显示逻辑
const stateNum = Number(state); if (stateNum === 1) { // 显示"终止"按钮,红色渐变样式 buttonText = "终止"; buttonClass = "state-control-btn--terminate"; } else if (stateNum === 5) { // 显示"恢复"按钮,绿色渐变样式 buttonText = "恢复"; buttonClass = "state-control-btn--resume"; } else { // 不显示按钮 showButton = false; }

2. 状态显示规则

状态文本显示
- state=1: "调解进行中-阶段X:节点名称"
- state=5: "AI调解暂停中"
- 其他状态: 使用translateMediationState翻译

状态圆点颜色
- state=5: 红色 (#e63946)
- 其他状态: 默认绿色 (var(--success-color))

2. 确认对话框设计

触发条件:用户点击状态控制按钮
内容结构
- 标题:根据操作类型显示"确认终止调解"或"确认恢复调解"
- 描述文本:说明操作的影响
- 输入框:可选的备注信息
- 操作按钮:确认/取消

3. 状态管理集成

数据来源:从CaseDataContext获取案件状态
更新机制:API调用成功后重新加载案件数据

4. 外呼气泡联动关闭

触发条件:终止操作API调用成功后
实现机制
1. FloatingControlPanel触发自定义事件mediation-terminated
2. OutboundCallWidget监听该事件
3. 事件处理:
- 设置isVisible=false关闭气泡
- 设置isMinimized=true最小化
- 清空localStorage外呼任务数据
- 清空组件状态中的通话列表

API集成设计

请求流程

1. 用户点击按钮
2. 显示确认对话框
3. 用户确认操作
4. 调用ProcessAPIService.updateMediationState
5. 处理API响应
6. 成功:刷新页面数据
7. 失败:显示错误提示

错误处理策略

  • 网络错误:显示通用网络错误提示
  • 业务错误:显示具体的错误信息
  • 状态冲突:提示当前状态不允许该操作

UI/UX设计

视觉设计

终止按钮(红色渐变主题):
- 背景:linear-gradient(135deg, #e63946 0%, #c1121f 100%)
- 阴影:0 2px 8px rgba(230, 57, 70, 0.3)
- 文字颜色:白色
- 悬停效果:背景变为linear-gradient(135deg, #f04a57 0%, #d41926 100%)
- 悬停阴影:0 4px 16px rgba(230, 57, 70, 0.4)

恢复按钮(绿色渐变主题):
- 背景:linear-gradient(135deg, #52c41a 0%, #389e0d 100%)
- 阴影:0 2px 8px rgba(82, 196, 26, 0.3)
- 文字颜色:白色
- 悬停效果:背景变为linear-gradient(135deg, #5fd42b 0%, #42b417 100%)
- 悬停阴影:0 4px 16px rgba(82, 196, 26, 0.4)

样式类名规范
- 基础类:.state-control-btn
- 终止变体:.state-control-btn--terminate
- 恢复变体:.state-control-btn--resume
- 与人工接管按钮样式(.floating-control-btn)完全隔离

交互设计

加载状态
- 按钮显示loading状态
- 禁用其他相关操作
- 显示操作进度提示

反馈机制
- 操作成功:显示成功消息,自动刷新数据
- 操作失败:显示错误消息,保持当前界面状态

技术实现考虑

性能优化

  • 状态检查在组件渲染时进行,避免不必要的重渲染
  • API调用使用现有的请求拦截器和错误处理机制
  • 页面刷新采用增量更新而非全页面重载

安全考虑

  • 操作前进行身份验证检查
  • 记录操作日志用于审计
  • 防止重复提交同一操作

可维护性

  • 遵循现有的组件命名和结构规范
  • 复用现有的样式和交互组件
  • 保持与人工接管功能的一致性

测试策略

单元测试

  • 按钮显示逻辑的边界条件测试
  • API调用成功/失败场景测试
  • 状态转换的正确性验证

集成测试

  • 完整的用户操作流程测试
  • 与现有功能的兼容性测试
  • 异常场景的恢复能力测试

用户验收测试

  • 实际调解场景下的功能验证
  • 易用性和直观性评估
  • 性能影响评估