Files
Mdeical_Sur_Report/工程分析/20260419_0333/需求分析.md
admin 854a00c2fa fix(editor): Checkbox点击失效 + AI全局上下文注入
- 将'允许修改正文'复选框从id/htmlFor绑定改为label直接包裹input,增加e.stopPropagation防止事件冒泡被拦截
- handleAIGenerate中新增editorRef.current.innerText作为全局上下文注入prompt
- currentHtml增加过滤​零宽字符
- 优化systemPrompt,明确告知大模型全局参考内容+目标区域源码的双信息源结构
2026-04-19 03:35:52 +08:00

38 lines
1.7 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-19 03:33
## 需求来源
用户反馈 AI 辅助撰写功能存在两个 Bug
1. 「允许修改正文」复选框无法被点击切换
2. AI 大模型无法看到编辑器中的报告内容,无法执行修改正文的指令
## 问题一Checkbox 无法切换
**现象**AI 面板底部的「允许修改正文」复选框点击无反应,无法关闭或开启。
**根因分析**
- 当前实现使用独立的 `<input id="aiModifyEnabled">` + `<label htmlFor="aiModifyEnabled">` 组合
- 在复杂的 React 组件树中,`id`/`htmlFor` 绑定可能因事件冒泡、DOM 结构覆盖或 React 重渲染导致失效
- 外层 `.ai-region` 等元素可能对点击事件有拦截
**约束条件**
- 最小化改动,只改包裹结构,不改样式语义
- 必须保留 `cursor-pointer` 和原有视觉样式
## 问题二AI 无法读取编辑器内容
**现象**:用户在 AI 区域外写入了「气腹压力为 12mmHg」等信息但问 AI「你能看到当前气腹压力吗」时AI 回答无法看到。
**根因分析**
- `handleAIGenerate` 目前只将「目标 AI 区域的 HTML 源码」发送给大模型
- 目标区域可能为空(默认只有 `&#8203;`),导致大模型收到的上下文只有用户指令
- AI 看不到编辑器中其他区域(如基本信息、其他手术步骤)的内容
**约束条件**
- 必须保留现有 `currentHtml` 作为修改目标(用于 diff 注入)
- 全局上下文使用纯文本而非 HTML减少 token 消耗和格式干扰
- 需要过滤 `&#8203;` 零宽字符
- systemPrompt 需同步更新,明确告知大模型有两个信息源:全局参考内容 + 目标区域源码