From 88a31d5a960bd10f3799bc00f8aa24461567d06e Mon Sep 17 00:00:00 2001
From: shimai <shimai@example.com>
Date: Tue, 07 Apr 2026 15:23:43 +0800
Subject: [PATCH] Merge branch 'test/tony.cheng/260312' of http://120.79.193.119:9090/r/~chengmw/cloud-melody-front into test/shimai.huang/260309

---
 openspec/changes/upgrade-homepage-layout/design.md |  163 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 163 insertions(+), 0 deletions(-)

diff --git a/openspec/changes/upgrade-homepage-layout/design.md b/openspec/changes/upgrade-homepage-layout/design.md
new file mode 100644
index 0000000..aefb0ce
--- /dev/null
+++ b/openspec/changes/upgrade-homepage-layout/design.md
@@ -0,0 +1,163 @@
+# Design: 首页布局升级优化
+
+## Context
+
+当前首页(index.html)需要按照最新原型进行全面升级,涉及多个新组件的添加和现有组件的修改。本次升级主要目标是提升调解员工作效率,通过可视化展示关键信息。
+
+**原型参考**: `document/原型/index.html` 和用户提供的原型图片
+
+## Goals / Non-Goals
+
+### Goals
+- 1:1还原原型图视觉效果
+- 新增蓝色顶部Header,统一系统导航风格
+- 提供预警消息实时提示,提升调解员响应速度
+- 可视化展示申请双方信息和协商沟通进度
+- 增强调解成功率数据展示,提供同比分析
+
+### Non-Goals
+- 不修改现有API调用机制,复用CaseDataContext
+- 不修改底部悬浮控制面板
+- "查看详细策略建议"功能暂不实现跳转
+
+## Decisions
+
+### 1. 组件架构
+
+**Decision**: 新增独立组件,不侵入现有组件逻辑
+
+```
+components/
+├── common/
+│   ├── AppHeader.jsx          # 顶部Header(新增)
+│   └── WarningAlert.jsx       # 预警提示(新增)
+└── dashboard/
+    ├── PartyInfoCard.jsx      # 申请双方信息(新增)
+    ├── NegotiationProgress.jsx # 协商沟通(新增)
+    ├── AISuggestionCard.jsx   # AI调解建议(新增)
+    └── TabContainer.jsx       # 修改MediationDataBoard
+```
+
+**Rationale**: 保持单一职责,便于维护和测试
+
+### 2. 数据流设计
+
+**Decision**: 复用现有CaseDataContext,新增两个API调用
+
+```
+CaseDataContext
+├── caseData (现有)
+│   ├── mediation.success_rate
+│   ├── mediation.yoy_success_rate
+│   ├── mediation.yoy_before_hours
+│   └── mediation.mediation_count
+├── processNodes (现有)
+└── 新增API调用:
+    ├── getWarningNotifyList(mediationId)
+    └── getPersonList(caseId)
+```
+
+**Rationale**: 
+- 预警消息和当事人列表数据独立于timeline,需单独API获取
+- 成功率同比数据从现有timeline字段获取,无需新API
+
+### 3. Header数据来源
+
+**Decision**: 调解员信息从URL参数获取,使用getMergedParams工具
+
+```javascript
+// 从URL参数获取
+const params = getMergedParams();
+const mediatorInfo = {
+  trueName: params.trueName || '调解员',
+  unit: params.unit || '',
+  roleName: params.roleName || '',
+  avatar: params.avatar || DEFAULT_AVATAR
+};
+```
+
+**Rationale**: 调解员信息由外部系统传入,保持与现有参数获取机制一致
+
+### 4. 预警消息展示策略
+
+**Decision**: 
+- 单条消息: 直接在消息条展示完整内容
+- 多条消息: 展示第一条 + "还有N条预警" + "查看更多"按钮
+- 点击"查看更多": 弹出Modal展示全部预警列表
+
+### 5. 协商沟通进度计算
+
+**Decision**: 
+```javascript
+const currentRound = timeline.mediation?.mediation_count || 0;
+const nodeCount = processNodes.length;
+
+// 总次数计算
+let totalRounds = nodeCount;
+if (currentRound > nodeCount && !isLastNode) {
+  totalRounds = currentRound + 1;
+}
+
+// 渲染点线块
+const dots = Array(totalRounds).fill(false).map((_, i) => i < currentRound);
+```
+
+## Layout Structure
+
+```
+┌────────────────────────────────────────────────────────┐
+│  AppHeader (蓝色背景)                                    │
+│  [矛盾纠纷应用]                    [🔔2] [👤李X萌 XX区..]│
+├────────────────────────────────────────────────────────┤
+│  TopSection (现有案件信息头部)                           │
+├────────────────────────────────────────────────────────┤
+│  MediationProgress (调解进度条)                          │
+├────────────────────────────────────────────────────────┤
+│  WarningAlert (浅黄色预警提示)                           │
+│  ⚠️ 预警:申请人张三情绪激动...        [还有2条] [查看更多]│
+├────────────────────────────────────────────────────────┤
+│  TabContainer                                          │
+│  ┌─────────────────────────────────────────────────────┤
+│  │ MediationDataBoard (调解分析Tab)                     │
+│  │ ┌──────────────────────┬─────────────────────────┐  │
+│  │ │ 诉求差距分析          │ 申请双方                 │  │
+│  │ │ ┌────────────────┐   │ [👤申请人] VS [🏢被申请人]│  │
+│  │ │ │ 主要分歧点...   │   │                         │  │
+│  │ │ └────────────────┘   │ 预计调解成功率            │  │
+│  │ │                      │ 68% ↑+8% 较3小时前       │  │
+│  │ │ AI调解建议            │                         │  │
+│  │ │ ┌────────────────┐   │ 协商沟通                 │  │
+│  │ │ │ 建议调解员...   │   │ 第6轮                   │  │
+│  │ │ │ [查看详细策略]  │   │ ●━●━●━●━●━○             │  │
+│  │ │ └────────────────┘   │                         │  │
+│  │ └──────────────────────┴─────────────────────────┘  │
+│  └─────────────────────────────────────────────────────┤
+└────────────────────────────────────────────────────────┘
+```
+
+## Risks / Trade-offs
+
+### Risk 1: API响应延迟
+- **风险**: 预警消息和当事人列表API可能响应慢
+- **缓解**: 组件内部loading状态,不阻塞整体页面渲染
+
+### Risk 2: URL参数缺失
+- **风险**: 调解员信息URL参数可能为空
+- **缓解**: 提供默认值和默认头像
+
+### Risk 3: 布局兼容性
+- **风险**: 新增Header可能影响现有页面滚动
+- **缓解**: Header使用fixed定位,调整body padding-top
+
+## Migration Plan
+
+1. 先创建API服务和新组件(不影响现有功能)
+2. 在App.js中添加AppHeader(影响最小)
+3. 在MediationProgress下方添加WarningAlert
+4. 修改MediationDataBoard布局,集成新组件
+5. 调整CSS样式,验证视觉效果
+
+## Open Questions
+
+- [已解答] AI调解建议内容来源? → 先使用Mock数据
+- [已解答] "查看详细策略建议"跳转? → 暂不跳转,提示"功能升级中"

--
Gitblit v1.8.0