web-app/src/utils/timeFormatter.jsformatMinutes(durationInSeconds):将秒数格式化为"XX分钟"calculateDuration(startTime):计算从startTime到现在的分钟数getFallbackStartTime():获取页面加载时间作为降级方案web-app/src/hooks/useTaskTimer.jsuseTaskTimer(startTime){ duration, isFallback } 状态web-app/src/services/ProcessAPIService.jsgetTaskTime(mediation_id, node_id) 方法的JSDoc注释web-app/src/contexts/CaseDataContext.jsxloadCaseData 成功后,提取 timeline.id 和 timeline.current_node.idProcessAPIService.getTaskTime(mediation_id, node_id)startTime 存储到Context状态中getFallbackStartTime() 作为降级方案web-app/src/components/dashboard/FloatingControlPanel.jsxuseTaskTimer HookstartTimeuseTaskTimer 获取实时duration"已进行:25分钟" 替换为动态时间显示Task 1.1 (时间工具) ─┐
Task 1.2 (计时Hook) ─┤
├→ Task 3.1 (Context集成) → Task 4.1 (UI展示)
Task 2.1 (API文档) ──┘
如果集成过程中出现问题,可以:
1. 注释掉FloatingControlPanel中的动态时间显示
2. 恢复为固定的"25分钟"显示
3. 删除新增的hooks和utils文件