35 lines
1.5 KiB
Markdown
35 lines
1.5 KiB
Markdown
# 需求分析 — 2026-04-16-19-28-04
|
||
|
||
## 原始需求摘要
|
||
|
||
在 `/report-editor` 页面进行操作(填写基本信息、上传视频、自动/手动截取关键帧、拖拽图片到 placeholder),离开该页面进入 `/report-manage` 等其他界面后,再次返回 `/report-editor` 时,**所有内容全部丢失**:
|
||
- 报告编辑器中的文本和图片丢失;
|
||
- 基本信息(患者姓名、住院号等)丢失;
|
||
- 视频分析面板中的视频列表和关键帧截图全部丢失。
|
||
|
||
此前两次修复尝试未能解决该问题。
|
||
|
||
## 需求拆解
|
||
|
||
### 功能点
|
||
- 彻底修复路由切换后报告内容、基本信息、视频分析数据全部丢失的问题;
|
||
- 确保自动保存机制(草稿保存)在任何情况下都不会用空值覆盖已有的有效 draft;
|
||
- 确保组件卸载时保存的 draft 100% 反映用户最新的操作状态。
|
||
|
||
### 非功能点
|
||
- 最小化对现有 UI 和交互逻辑的侵入;
|
||
- 保持现有 localStorage 存储机制不变;
|
||
- 同时兼顾 React 18 `StrictMode` 在开发/预览环境下的双重挂载行为。
|
||
|
||
## 影响范围预估
|
||
|
||
| 模块 | 影响程度 | 说明 |
|
||
|------|---------|------|
|
||
| `src/pages/ReportEditor.tsx` | 高 | 自动保存逻辑 `saveDraftToStorage` 和自动保存 effect 需要重构 |
|
||
| `useLayoutEffect` 安全网 | 中 | 需要添加依赖数组,避免重复执行 |
|
||
| 其他组件 | 无 | 不涉及修改 |
|
||
|
||
## 待确认问题
|
||
|
||
无。根因已定位,修复方案明确。
|