40 lines
2.3 KiB
Markdown
40 lines
2.3 KiB
Markdown
# 需求分析 —— 2026-04-18-18-36-43
|
||
|
||
## 需求来源
|
||
用户提出报告管理列名修正、字段下划线控制、下载功能、右对齐排版修复及默认模板调整等五项改进需求。
|
||
|
||
## 需求概述
|
||
|
||
### 需求 1:ReportManage 列名"患者号"改为"住院号"
|
||
报告管理列表中表头显示为"患者号",但实际数据对应的是住院号字段,需修正列名。
|
||
|
||
### 需求 2:TemplateManage 字段管理增加"下划线"控制
|
||
在模板管理的字段管理面板中,每个字段增加"打印时显示下划线"单选框,默认勾选。若取消勾选,则该字段在打印输出时不显示底部下划线。需在 `FormField` 数据结构中增加 `hasUnderline` 属性,并在打印样式中支持 `.no-underline` 类。
|
||
|
||
### 需求 3:ReportEditor / TemplateManage 新增下载按钮
|
||
在报告编辑器和模板管理页面的打印按钮旁新增"下载"按钮,点击弹出模态框,支持导出 PDF 和 JSON:
|
||
- PDF:复用现有 `printDocument()`,传入自定义文件名
|
||
- JSON:通过 `Blob` + `URL.createObjectURL` 实现下载
|
||
- 默认文件名格式:`图文报告-{手术名称}-{患者}-{住院号}-{下载时间}.pdf/.json`
|
||
|
||
### 需求 4:修复右对齐时签名与图片框分离
|
||
当编辑器中设置右对齐时,"手术者签名:"文字与 `class="image-placeholder"` 图片框被拆分为两行。根本原因是 `display: inline-flex` 在右对齐布局下容易触发换行。需将运行时插入的占位符以及默认模板中的占位符 `display` 属性从 `inline-flex` 改为 `inline-block`,并配合 `line-height` 垂直居中。
|
||
|
||
### 需求 5:默认模板手术者签名右对齐
|
||
将 `defaultContent.ts` 中「手术者签名」行默认设为 `text-align: right`,并应用需求 4 中的 `inline-block` 修复。
|
||
|
||
## 涉及文件
|
||
- `src/pages/ReportManage.tsx`(需求 1)
|
||
- `src/types.ts`(需求 2:FormField 扩展)
|
||
- `src/utils/print.ts`(需求 2、3:打印样式 + 文件名支持)
|
||
- `src/pages/TemplateManage.tsx`(需求 2、3、4)
|
||
- `src/pages/ReportEditor.tsx`(需求 3、4)
|
||
- `src/utils/defaultContent.ts`(需求 4、5)
|
||
|
||
## 需求影响范围
|
||
- 报告管理列表展示
|
||
- 模板字段配置体系
|
||
- 编辑器/模板管理器工具栏交互
|
||
- 打印输出样式
|
||
- 文件导出功能
|