# 需求分析 ## 时间戳 2026-04-19 18:05 ## 需求来源 用户发现 AI 修改确认弹窗的「原始版本」左侧只显示了一段内容,而编辑器中的 AI 可编辑区域实际上有 2-5 段内容。 ## 现象 从用户提供的 DOM 源码可以清楚看到: ```html

2.腹腔镜探查:...

3.切除胆囊:...

4.检查腹腔内无活动性出血及漏胆后:...

5.手术顺利,麻醉满意:...

``` - `.ai-content` 内只有第 2 段 - 第 3、4、5 段变成了 `.ai-content` 的**兄弟节点**(在 `.ai-region` 内但在 `.ai-content` 外) - 左侧 diff 弹窗只显示 `.ai-content.innerHTML`,所以只有第 2 段 ## 根因分析 **浏览器 contentEditable 机制的锅**: 当用户在 `.ai-content`(一个 contentEditable 的 div)内按回车换行,或粘贴包含多个段落的外部文本时,浏览器的默认行为会截断当前的 `div`,在同级生成新的 `

` 标签。这导致后续的段落脱离了 `.ai-content` 父容器,变成了 `.ai-region` 的直接子节点。 ## 解决方向 **代码层面修复**:在 `handleAIGenerate` 获取 `currentHtml` 之前,自动把 `.ai-region` 内 `.ai-content` 之外的 `

` 节点移回 `.ai-content`。这样: 1. `currentHtml` 就能包含所有段落 2. 左侧 diff 弹窗显示全部内容 3. `confirmAiInjection` 注入时替换 `.ai-content`,此时 `.ai-content` 已包含所有段落 ## 约束条件 - 只移动 `.ai-content` 之后的 `

` 节点,不移动 `.ai-region-label` 或其他元素 - 移动后要同步更新 `contentRef.current` 和 `saveDraftToStorage()` - 不改变现有 diff 弹窗和注入逻辑