feat(ai): diff弹窗文档对比高亮 + 二次修改未弹窗修复

- 引入diff库,实现字符级差异比对
- diffModal左右两侧增加diff高亮:左侧删除内容标红,右侧新增内容标绿
- systemPrompt增加绝对强制条款:无论指令多小都必须返回updatedHtml
- 前端校验兜底:修改模式下未返回updatedHtml时在聊天面板给出提示
- confirmAiInjection注入前清理diff高亮span,避免污染编辑器
This commit is contained in:
2026-04-19 22:08:05 +08:00
parent 7275906f3c
commit 1ec25065ad
7 changed files with 312 additions and 20 deletions

View File

@@ -0,0 +1,49 @@
# 测试方案
## 测试环境
- 浏览器访问 `http://localhost:4173/`
- 进入「图文报告生成」→ 新建报告
## 测试用例 1微小指令也能弹窗
**步骤**
1. 第一次发送修改指令,确认 diff 弹窗正常弹出
2. 点击「确认并写入报告」
3. 第二次发送非常简短的微调指令,如"把 5x3x2 改成 5x3x10"
**预期结果**
- 第二次也应弹出 diff 弹窗
- 如果未弹窗聊天面板应显示【系统提示】AI 未能生成修改内容
## 测试用例 2diff 高亮显示
**步骤**
1. 编辑器中 AI 可编辑区域写入一段内容
2. 发送修改指令,让 AI 修改其中几个字词
3. 观察 diff 弹窗
**预期结果**
- 左侧「原始版本」中,被 AI 删除的字词显示红色背景 + 删除线
- 右侧「AI 提议版本」中AI 新增的字词显示绿色背景
- 未变更的内容正常显示,无高亮
## 测试用例 3确认注入后无高亮残留
**步骤**
1. 在 diff 弹窗中点击「确认并写入报告」
2. 观察编辑器中 AI 区域的内容
**预期结果**
- 编辑器中不应有红色/绿色的 diff 高亮 span
- 文字格式正常(宋体 12pt
## 测试用例 4编译与部署
**步骤**
1. 执行 `npm run build`
2. 确认无 TypeScript 编译错误
3. 预览服务正常启动并返回 200
**预期结果**
- `vite build` 成功完成
- 预览页面可正常访问