- 将'允许修改正文'复选框从id/htmlFor绑定改为label直接包裹input,增加e.stopPropagation防止事件冒泡被拦截 - handleAIGenerate中新增editorRef.current.innerText作为全局上下文注入prompt - currentHtml增加过滤​零宽字符 - 优化systemPrompt,明确告知大模型全局参考内容+目标区域源码的双信息源结构
56 lines
2.0 KiB
Markdown
56 lines
2.0 KiB
Markdown
# 测试方案
|
||
|
||
## 测试环境
|
||
- 浏览器访问 `http://localhost:4173/`
|
||
- 进入「图文报告生成」→ 新建报告
|
||
|
||
## 测试用例 1:Checkbox 可正常切换
|
||
|
||
**步骤**:
|
||
1. 打开右侧「AI 撰写」面板
|
||
2. 观察底部「允许修改正文」复选框,当前应为勾选状态(默认 `aiModifyEnabled = true`)
|
||
3. 点击复选框,观察勾选状态是否消失
|
||
4. 再次点击,观察勾选状态是否恢复
|
||
5. 点击复选框左侧的文字「允许修改正文」,观察勾选状态是否切换
|
||
|
||
**预期结果**:
|
||
- 点击复选框本身:状态正常切换
|
||
- 点击文字标签:状态正常切换
|
||
- 切换时上方「区域锚定」select 的 `disabled` 状态同步变化(禁用/启用)
|
||
|
||
## 测试用例 2:AI 能看到全局报告内容
|
||
|
||
**步骤**:
|
||
1. 在编辑器中输入一些文本,例如「气腹压力为 12mmHg」
|
||
2. 插入一个 AI 可编辑区域(如「手术步骤」)
|
||
3. 在 AI 面板中输入:「你能看到当前气腹压力吗?」
|
||
4. 不勾选「允许修改正文」,直接发送
|
||
|
||
**预期结果**:
|
||
- AI 回复中应提到「12mmHg」或「气腹压力」,表明它读取了全局上下文
|
||
|
||
## 测试用例 3:AI 能基于全局上下文修改目标区域
|
||
|
||
**步骤**:
|
||
1. 编辑器中有完整报告内容(含患者信息、手术步骤等)
|
||
2. 在 AI 可编辑区域(如「手术步骤」)中已有部分内容
|
||
3. 勾选「允许修改正文」
|
||
4. 输入指令:「根据全局报告内容,将手术步骤中提到的止血方法更新为电凝止血」
|
||
5. 发送并查看 diff 确认弹窗
|
||
|
||
**预期结果**:
|
||
- AI 返回的 `updatedHtml` 应能引用全局报告中的其他信息
|
||
- Diff 弹窗能正确展示原文 vs 修改后的内容
|
||
- 确认注入后目标区域内容更新
|
||
|
||
## 测试用例 4:编译与部署
|
||
|
||
**步骤**:
|
||
1. 执行 `npm run build`
|
||
2. 确认无 TypeScript 编译错误
|
||
3. 预览服务正常启动并返回 200
|
||
|
||
**预期结果**:
|
||
- `vite build` 成功完成
|
||
- 预览页面可正常访问
|