Files
Mdeical_Sur_Report/工程分析/需求分析-2026-04-18-00-02-08.md

46 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 需求分析 — 2026-04-18-00-02-08
## 原始需求摘要
1. **修复拖拽关键帧插入兼容性**:拖拽关键帧到 `.image-placeholder` 后,虚线边框和背景色未消失,且图片缺少 `max-height:100%;object-fit:contain;` 约束,可能溢出占位符。
2. **图片占位符插入改为自定义弹窗 + 分类隔离**
- 替换 `insertImage` 中的 `prompt` 弹窗为自定义 React Modal。
- 占位符分为两类:
- **手术影像占位frame 模式)**:支持自动帧插入、一键插入、拖拽插入。
- **静态图片占位manual 模式)**:仅支持点击后从弹窗选择图片来源(本地上传/签名/素材),防止系统自动将手术关键帧填入 Logo 或签名位置。
- 自动帧插入和一键插入逻辑需跳过 `data-mode="manual"` 的占位符。
- 拖拽到 manual 占位符时需拦截并提示。
3. **表格插入改为自定义弹窗**:替换 `insertTable` 中的 `prompt` 弹窗为自定义 React Modal中间弹出子窗口选择行数和列数。
## 需求拆解
### 功能点
- **F1**`ReportEditor.tsx``fillPlaceholder` 函数补齐 `border='none'``background='transparent'`,图片 style 增加 `max-height:100%;object-fit:contain;`
- **F2**`ReportEditor.tsx``TemplateManage.tsx``insertImage` 改为打开自定义 Modal替代 `prompt`。Modal 包含:
- 宽高输入框(默认 200*200
- 模式选择手术影像占位frame/ 静态图片占位manual
- 确认/取消按钮
- **F3**:生成 placeholder HTML 时manual 模式添加 `data-mode="manual"` 属性。
- **F4**`ReportEditor.tsx``autoCaptureFrames`setTimeout 回调内)、`insertFrameToPlaceholder` 的空占位符选择器,从 `.image-placeholder:not(.has-image)` 改为 `.image-placeholder:not(.has-image):not([data-mode="manual"])`
- **F5**`ReportEditor.tsx``handleDrop` 增加拦截:若目标 placeholder 的 `data-mode === 'manual'`,弹出提示并阻止填充。
- **F6**`ReportEditor.tsx``TemplateManage.tsx``insertTable` 改为打开自定义 Modal替代 `prompt`),包含行数/列数输入和确认/取消按钮。
### 非功能点
- 向后兼容:已有报告中已有的 placeholder 结构不受影响(没有 `data-mode` 属性的占位符默认为 frame 模式)。
- Modal 样式复用现有的 `bg-black/50 backdrop-blur-sm` + `bg-white rounded-2xl` 风格。
## 影响范围预估
| 模块 | 影响程度 | 说明 |
|------|---------|------|
| `src/pages/ReportEditor.tsx` | 高 | fillPlaceholder 修复insertImage 改为 ModalinsertTable 改为 ModalautoCaptureFrames 选择器insertFrameToPlaceholder 选择器handleDrop 拦截;新增 3 个 Modal 的 JSX |
| `src/pages/TemplateManage.tsx` | 高 | insertImage 改为 ModalinsertTable 改为 Modal新增 2 个 Modal 的 JSX |
## 待确认问题
无(用户已明确需求,且本次无需人工确认)。