From db1c11f7eb2351c1063214e9bec702d3b8124d20 Mon Sep 17 00:00:00 2001 From: Administrator Date: Sat, 18 Apr 2026 18:13:07 +0800 Subject: [PATCH] =?UTF-8?q?2026-04-18-18-08-37=20-=20=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E5=99=A8=E5=B7=A5=E5=85=B7=E6=A0=8F=E6=96=B0=E5=A2=9E=E5=AD=97?= =?UTF-8?q?=E5=8F=B7=E8=A1=8C=E8=B7=9D=E9=80=89=E6=8B=A9=E3=80=81=E4=BF=AE?= =?UTF-8?q?=E5=A4=8D=E5=AD=97=E4=BD=93=E9=80=89=E6=8B=A9=E3=80=81=E6=A8=A1?= =?UTF-8?q?=E6=9D=BF=E6=8E=92=E7=89=88=E9=97=B4=E8=B7=9D=E8=B0=83=E6=95=B4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/ReportEditor.tsx | 35 ++++++ src/pages/TemplateManage.tsx | 33 ++++++ src/utils/defaultContent.ts | 24 ++-- 工程分析/实现方案-2026-04-18-18-08-37.md | 91 +++++++++++++++ 工程分析/测试方案-2026-04-18-18-08-37.md | 134 +++++++++++++++++++++++ 工程分析/需求分析-2026-04-18-18-08-37.md | 34 ++++++ 6 files changed, 339 insertions(+), 12 deletions(-) create mode 100644 工程分析/实现方案-2026-04-18-18-08-37.md create mode 100644 工程分析/测试方案-2026-04-18-18-08-37.md create mode 100644 工程分析/需求分析-2026-04-18-18-08-37.md diff --git a/src/pages/ReportEditor.tsx b/src/pages/ReportEditor.tsx index 6281d71..9a2b88e 100644 --- a/src/pages/ReportEditor.tsx +++ b/src/pages/ReportEditor.tsx @@ -505,6 +505,19 @@ export default function ReportEditor() { saveDraftToStorage(); }; + const changeLineHeight = (height: string) => { + const sel = window.getSelection(); + if (!sel || !sel.rangeCount) return; + let node = sel.getRangeAt(0).commonAncestorContainer; + if (node.nodeType === Node.TEXT_NODE) node = node.parentNode as Node; + const block = (node as HTMLElement).closest('p, div, td, h1, h2, h3, li'); + if (block) { + (block as HTMLElement).style.lineHeight = height; + if (editorRef.current) contentRef.current = editorRef.current.innerHTML; + saveDraftToStorage(); + } + }; + const insertTable = () => { editorRef.current?.focus(); setTableModal({ isOpen: true, rows: '2', cols: '3' }); @@ -1313,6 +1326,7 @@ export default function ReportEditor() {
+ +
diff --git a/src/pages/TemplateManage.tsx b/src/pages/TemplateManage.tsx index f18623e..864a353 100644 --- a/src/pages/TemplateManage.tsx +++ b/src/pages/TemplateManage.tsx @@ -359,6 +359,18 @@ export default function TemplateManage() { editorRef.current?.focus(); }; + const changeLineHeight = (height: string) => { + const sel = window.getSelection(); + if (!sel || !sel.rangeCount) return; + let node = sel.getRangeAt(0).commonAncestorContainer; + if (node.nodeType === Node.TEXT_NODE) node = node.parentNode as Node; + const block = (node as HTMLElement).closest('p, div, td, h1, h2, h3, li'); + if (block) { + (block as HTMLElement).style.lineHeight = height; + saveTemplateContent(); + } + }; + const saveTemplateContent = () => { if (!currentTemplateId || !editorRef.current) return; const allTemplates = storage.get('templates', []); @@ -739,6 +751,27 @@ export default function TemplateManage() { + +
diff --git a/src/utils/defaultContent.ts b/src/utils/defaultContent.ts index 95e6b92..8e322f2 100644 --- a/src/utils/defaultContent.ts +++ b/src/utils/defaultContent.ts @@ -1,7 +1,7 @@ const smartField = (key: string) => ` ×​`; export const defaultReportContent = ` -
+
× 插入图片 @@ -34,7 +34,7 @@ export const defaultReportContent = ` 手术名称:${smartField('title')}

- +
@@ -53,23 +53,23 @@ export const defaultReportContent = ` 手术步骤、术中出现的情况及处理:

-

+

1.患者仰卧位,麻醉成功后,常规消毒术野、铺无菌巾,于脐下穿刺建立CO2气腹,气腹压力为12mmHg,进镜探查无穿刺损伤,分别于剑突下2.0cm、右锁中线肋缘下2.0cm各点穿刺置穿刺器,插入相应手术器械。

-

+

2.腹腔镜探查:腹腔内无腹水形成,无明显粘连,肝脏色红质软,无明显结节硬化改变,胆囊大小约 cm× cm× cm,壁轻度水肿,张力可,胆囊三角解剖关系清楚,胆囊管及胆总管无明显扩张。胃、十二指肠、小肠、结肠、脾脏及盆腔未见明显异常。术中诊断:胆囊结石伴慢性胆囊炎。遂行腹腔镜胆囊切除术。

-

+

3.切除胆囊:钳夹胆囊颈部并解剖胆囊三角,游离出胆囊动脉及胆囊管,明确胆囊与胆总管的关系,距胆总管0.3cm处近端以一枚可吸收夹,远端夹一枚钛夹夹闭胆囊管,两夹间以剪刀剪断胆囊管,另用一枚可吸收夹夹闭胆囊动脉后离断。顺行游离胆囊浆膜,完整切除胆囊后装入标本袋取出。胆囊床严密止血并覆盖止血材料。

-

+

4.检查腹腔内无活动性出血及漏胆后,清点器械纱布无误,拔除腔镜器械,排出腹腔残余气体,缝合各刺孔,术毕。

-

+

5.手术顺利,麻醉满意。切除的标本经家属过目后送病理。术中出血约 ml,术中输血成分,输血量,是否有输血不良反应。

@@ -124,23 +124,23 @@ export const defaultReportContent = `
手术开始时间:${smartField('startTime')} 手术终止时间:${smartField('endTime')}
-

+

手术后情况:${smartField('postOpCondition')}

-

+

切除标本描述:${smartField('specimenDescription')}

-

+

是否送病理检查:${smartField('pathologyCheck')}

-

+

冰冻病理结果:${smartField('frozenPathology')}

-

+

手术者签名:×插入/点击放置图片

diff --git a/工程分析/实现方案-2026-04-18-18-08-37.md b/工程分析/实现方案-2026-04-18-18-08-37.md new file mode 100644 index 0000000..74151e8 --- /dev/null +++ b/工程分析/实现方案-2026-04-18-18-08-37.md @@ -0,0 +1,91 @@ +# 实现方案 —— 2026-04-18-18-08-37 + +## 方案目标 +修复并增强编辑器工具栏的字体/字号/行距功能,调整默认模板排版细节。 + +## 需求 1:修复字体选择并新增字号、行距功能 + +### 修改文件 +`src/pages/ReportEditor.tsx` 和 `src/pages/TemplateManage.tsx` + +### 实现步骤 +1. **修复字体选择**:确保工具栏中的字体选择 ``: + ```tsx + + ``` + `execCommand('fontSize')` 使用 1-7 的相对字号,3 对应 12pt,4 对应 14pt,5 对应 18pt。 +3. **新增行距选择**:`execCommand` 不支持行距,需手写 `changeLineHeight` 函数: + ```tsx + const changeLineHeight = (height: string) => { + const sel = window.getSelection(); + if (!sel || !sel.rangeCount) return; + let node = sel.getRangeAt(0).commonAncestorContainer; + if (node.nodeType === Node.TEXT_NODE) node = node.parentNode as Node; + const block = (node as HTMLElement).closest('p, div, td, h1, h2, h3'); + if (block) { + (block as HTMLElement).style.lineHeight = height; + if (editorRef.current) contentRef.current = editorRef.current.innerHTML; + saveDraftToStorage(); + } + }; + ``` + 在工具栏增加行距 `