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,52 @@
# 功能变更需求文档20260419_2316
## 需求 1模板手术步骤放入 AI 可编辑区域
### 问题背景
当前默认模板中"手术步骤、术中出现的情况及处理"下的 5 个 `<p>` 段落是静态纯文本,用户希望将其完整包裹进 AI 专属可编辑区域(`.ai-region`),使 AI 可以直接对该部分内容进行生成和修改。
### 需求描述
修改 `defaultContent.ts`,将 line 54-76 的手术步骤段落用 `.ai-region` 容器包裹,结构与其他 AI 区域保持一致:
- `data-ai-id="手术步骤"`
- `data-ai-title="手术步骤、术中出现的情况及处理"`
- 顶部标签显示"手术步骤、术中出现的情况及处理-AI可编辑区域"
- 内部 `.ai-content` 包含原有 5 个 `<p>` 段落
---
## 需求 2API 密钥默认预设、密文显示与轻度加密
### 问题背景
当前系统首次使用时 API 密钥为空,用户每次都需要手动填写;且密钥在 localStorage 中以明文存储,存在安全风险。
### 需求描述
1. **默认值**`DEFAULT_AI_PROVIDERS.kimi.apiKey` 预设为 `sk-2IAFn8ORoSdUcCxYX6DmXJWbH7BxftSSA8kN88mD1KUDTmkv`
2. **前端脱敏**SystemSettings 中 API 密钥输入框已是 `type="password"`,需补充 `onCopy`/`onCut` 事件拦截阻止复制
3. **轻度加密**`storage.ts` 中对 `systemSettings` key 的读写增加透明 XOR+Base64 加密层localStorage 中不以明文存储,所有调用方无感知
---
## 需求 3默认模型名称切换为 moonshot-v1-auto
### 需求描述
`DEFAULT_AI_PROVIDERS.kimi.modelName``'kimi-k2-5'` 改为 `'moonshot-v1-auto'`;同步修改所有 fallback 默认值和 migration 代码中的硬编码模型名。
---
## 需求 4预设 12 个特定的视频抽帧百分比 + 默认 keep 模式
### 需求描述
1. 将默认的 12 个抽帧位置百分比从均匀计算 `[7.7, 15.4, ...]``[5,10,15,...]` 改为指定硬编码数组:
`[7.9, 9.3, 46.2, 49.1, 63.9, 64.8, 68.8, 73.7, 80.2, 85.0, 96.3, 98.6]`
2. 将默认抽帧模式从 `'uniform'` 改为 `'keep'`
3. 修改所有初始化入口:`Login.tsx``initData()``SystemSettings.tsx``useState` 初始值和 `resetToDefault()``ReportEditor.tsx` 的 fallback
---
## 影响范围
- `src/utils/defaultContent.ts`
- `src/types.ts`
- `src/utils/storage.ts`
- `src/pages/Login.tsx`
- `src/pages/SystemSettings.tsx`
- `src/pages/ReportEditor.tsx`