40 lines
2.0 KiB
Markdown
40 lines
2.0 KiB
Markdown
# 需求分析 — 2026-04-16-22-35-38
|
||
|
||
## 原始需求摘要
|
||
|
||
将默认手术报告模板中红色的 `*姓名* *性别* *年龄* *科室* *床号* *住院号*` 等占位符,替换为可填写的智能占位方框。这些方框需与 `ReportEditor` 右侧【基本信息】表单双向绑定,同时也要在 `TemplateManage` 的模板编辑中体现字段绑定关系。
|
||
|
||
## 需求拆解
|
||
|
||
### 功能点
|
||
|
||
1. **修正字段映射一致性**
|
||
- 上一版本中 `BINDABLE_FIELDS` 里的 `gender`、`age` 等 key 与 `Report` 接口中的 `patientGender`、`patientAge` 不一致,导致双向绑定无法命中实际表单字段。
|
||
- 需要统一 key 命名,使其与 `Report` 接口及右侧表单字段名完全一致。
|
||
|
||
2. **更新默认模板内容 (`defaultContent.ts`)**
|
||
- 将当前纯文本红色占位符(如 `<span style="color: #ff0000;">*姓名*</span>`)替换为 `smart-field-wrapper` 智能控件。
|
||
- 同步将手术日期、手术名称、手术者、助手、麻醉师、麻醉方式等灰色提示文本也替换为绑定控件,提升默认模板的智能化程度。
|
||
|
||
3. **确保双向绑定生效**
|
||
- 替换后,新建报告时从默认模板加载的内容中已内嵌 `data-bind` 属性,用户在方格中输入即可自动同步右侧表单;右侧表单修改也会同步回方格。
|
||
|
||
### 非功能点
|
||
|
||
- 不引入新的依赖或文件,仅修改现有常量与字段映射。
|
||
- 保持 `npm run lint` 通过。
|
||
- 老用户已有的自定义模板不会被强制覆盖,仅默认模板生效。
|
||
|
||
## 影响范围预估
|
||
|
||
| 模块 | 影响程度 | 说明 |
|
||
|------|---------|------|
|
||
| `src/types.ts` | 中 | 修正 `BINDABLE_FIELDS` 的 key,精简为右侧表单实际存在的字段 |
|
||
| `src/utils/defaultContent.ts` | 高 | 将占位符替换为智能控件 HTML |
|
||
| `src/pages/TemplateManage.tsx` | 低 | 字段库按钮随 `BINDABLE_FIELDS` 自动更新 |
|
||
| `src/pages/ReportEditor.tsx` | 低 | 无需改动,已有双向绑定逻辑直接生效 |
|
||
|
||
## 待确认问题
|
||
|
||
无。需求明确,修改范围可控。
|