integrate-dashboard-api-data
为首页Dashboard集成ProcessAPI的实时数据,替换现有静态Mock数据,实现从URL参数获取案件信息,调用ProcessAPIService.getCaseProcessInfo获取timeline数据,并通过React Context + localStorage方式全局共享,动态更新页面各组件的数据展示。
当前首页Dashboard使用的是硬编码的静态数据,无法反映真实案件的调解进度和状态。需要集成后端API实现:
1. 动态数据加载:根据URL参数动态获取不同案件的调解数据
2. 全局数据共享:通过Context和localStorage确保数据在组件间共享和持久化
3. 实时状态同步:页面各区域(顶部信息、进度条、选项卡等)同步显示最新的调解状态
4. 用户体验提升:增加Loading状态和错误提示,提升用户体验
web-app/src/contexts/CaseDataContext.jsx - 案件数据全局Contextweb-app/src/utils/urlParams.js - URL参数解析工具web-app/src/utils/stateTranslator.js - 状态翻译工具(mediation.state → 中文)web-app/src/App.js - 集成Context Provider,添加数据加载逻辑web-app/src/components/dashboard/TopSection.jsx - 从Context获取动态数据web-app/src/components/dashboard/MediationProgress.jsx - 从Context获取当前节点动态计算进度web-app/src/components/dashboard/TabContainer.jsx - MediationDataBoard组件从Context获取数据web-app/src/components/dashboard/FloatingControlPanel.jsx - 从Context获取状态和节点名称选择原因:
- Context:实现组件树内的全局状态共享,避免props逐层传递
- localStorage:页面刷新后数据不丢失,提升用户体验
- 组合使用:Context作为运行时状态管理,localStorage作为持久化备份
默认参数(开发环境):javascript { caseId: "202601281644031088", caseTypeFirst: "24_01-2", platform_code: "AI_0001", authorization: "" // 可选 }
URL格式: http://localhost:3000?caseId=xxx&caseTypeFirst=xxx&platform_code=xxx&authorization=xxx
mediation.state → 中文状态
0 → "待调解"
1 → "调解中"
2 → "调解成功"
3 → "调解失败"
URL参数
↓
解析 & 默认值填充
↓
调用 ProcessAPIService.getCaseProcessInfo(caseId, params)
↓
获取 timeline 数据
↓
存储到 Context + localStorage
↓
各组件从 Context 读取并展示