feat: 模板AI区域化+默认配置优化+API密钥安全(20260419_2316)

- 默认模板: 手术步骤段落包裹进 .ai-region AI可编辑区域
- API密钥: DEFAULT_AI_PROVIDERS.kimi.apiKey 预设默认值,
  输入框增加onCopy/onCut防复制, storage.ts增加XOR+Base64透明加密
- 默认模型: kimi modelName改为 moonshot-v1-auto
- 抽帧配置: 12个位置改为指定百分比[7.9,9.3,46.2,49.1,63.9,64.8,
  68.8,73.7,80.2,85.0,96.3,98.6], 默认模式从uniform改为keep
This commit is contained in:
2026-04-19 23:24:36 +08:00
parent 3bec69986e
commit 0039b18a26
9 changed files with 329 additions and 34 deletions

View File

@@ -0,0 +1,72 @@
# 功能变更测试文档20260419_2316
## 测试项 1模板手术步骤 AI 区域化
### 测试场景
1. 清除浏览器缓存 / 以新用户身份登录
2. 进入报告编辑器,新建报告
3. **预期结果**
- "手术步骤、术中出现的情况及处理"标题下方出现一个蓝色虚线边框的 AI 区域
- 区域右上角显示蓝色标签"手术步骤、术中出现的情况及处理-AI可编辑区域"
- 区域内部包含原有的 5 个手术步骤段落
- 打开 AI 面板,选择目标区域为"手术步骤",发送消息
- AI 可以正常对该区域内容进行修改
---
## 测试项 2API 密钥安全增强
### 测试场景 A默认值预设
1. 新用户首次登录,进入系统设置 → AI 接口集成
2. **预期结果**
- API 密钥输入框中已预填值,显示为密码圆点(不可见明文)
- 供应商为 Kimi模型名称为 `moonshot-v1-auto`
### 测试场景 B防复制
1. 在 API 密钥输入框中尝试 `Ctrl+C` 复制或右键复制
2. **预期结果**:复制操作被阻止,剪贴板内容不变
### 测试场景 C加密存储
1. 打开浏览器 DevTools → Application → LocalStorage
2. 找到 `systemSettings`
3. **预期结果**:值为 Base64 编码的乱码字符串,无法直接阅读出 apiKey 明文
4. 系统在读写 `systemSettings` 时正常工作,无异常
### 测试场景 D向后兼容
1. 在已有明文 `systemSettings` 的旧数据环境下刷新页面
2. **预期结果**:系统正常读取旧数据,无报错
---
## 测试项 3默认模型名
### 测试场景
1. 新用户首次登录,进入系统设置
2. **预期结果**:模型名称 (Model Name) 默认为 `moonshot-v1-auto`
3. 点击"测试连接",下拉列表中可选择该模型
---
## 测试项 4抽帧百分比 + 模式
### 测试场景 A默认值
1. 新用户首次登录,进入系统设置 → 视频分析设置
2. **预期结果**
- 抽帧模式显示为"保持当前抽帧"(而非"整体均匀抽取"
- 12 个抽帧位置百分比显示为7.9%, 9.3%, 46.2%, 49.1%, 63.9%, 64.8%, 68.8%, 73.7%, 80.2%, 85.0%, 96.3%, 98.6%
### 测试场景 B重置后
1. 修改抽帧设置后,点击"恢复默认"
2. **预期结果**:恢复为上述 12 个百分比和 keep 模式
### 测试场景 C实际抽帧
1. 上传视频,点击"自动关键帧摘取"
2. **预期结果**:按照 12 个指定百分比位置截取关键帧
---
## 回归测试
- `tsc --noEmit` 零错误
- `npm run build` 构建成功
- 预览服务器正常启动并可访问
- 现有报告编辑、AI 对话、视频分析功能不受影响