52 lines
2.4 KiB
Markdown
52 lines
2.4 KiB
Markdown
# 代码功能性能测试报告答复
|
||
|
||
## 修复与优化清单(对应《代码功能性能测试报告.md》)
|
||
|
||
### 一、严重问题修复 🔴
|
||
1) 下载函数重复定义 → 已抽取公共工具
|
||
- 新增:`src/utils/download.js`
|
||
- 提供:`downloadBlob`、`downloadFile`、`getFilenameFromContentDisposition`、`saveBlobResponse`
|
||
- 改造:`src/api/services.js` 全量改用公共工具,移除重复函数
|
||
|
||
2) 会议纪要 API 错误处理不一致 → 已重写
|
||
- 位置:`src/api/services.js` → `meetingMinutesAPI.generateMinutes`
|
||
- 逻辑:
|
||
- 优先以 `responseType: 'blob'` 请求并保存;
|
||
- 捕获后仅做一次 JSON 回退,若返回 `fileUrl` 则下载;
|
||
- 双重失败则向上抛出,避免循环与沉默失败。
|
||
|
||
### 二、中等问题修复 🟡
|
||
1) 表单输入校验
|
||
- `src/views/KnowledgeBase.vue`:新增 `validateForm()`,要求“主题、详细内容”非空。
|
||
- `src/views/MeetingMinutes.vue`:新增最小校验,至少有一项文本不为空。
|
||
|
||
2) 文件上传限制
|
||
- `src/views/InvoiceExtractor.vue`:新增类型与大小限制(PDF/图片,≤10MB),在 `onChange` 中过滤,警告提示。
|
||
|
||
3) 环境变量访问方式
|
||
- `env.config.js`:改为 `import.meta.env?.VITE_*`,避免对 `import.meta` 的可选链访问。
|
||
|
||
### 三、轻微问题优化 🟢
|
||
1) 支持动态文件名
|
||
- 下载工具支持从 `Content-Disposition` 解析文件名,若未提供则回退默认名:`saveBlobResponse()`。
|
||
|
||
## 回归测试结论
|
||
- 构建:容器内 `npm install && npm run dev` 正常,Vite 监听 `0.0.0.0:3000`。
|
||
- 基本功能:
|
||
- 路由切换正常;
|
||
- 知识库提交校验生效;
|
||
- 会议纪要至少一项校验生效;
|
||
- 发票提取仅接受 PDF / 图片且 ≤10MB;
|
||
- 竞品调研下载流程正常(需后端配合)。
|
||
- 下载:若响应为 blob,并且提供 `Content-Disposition`,可自动使用服务端文件名;否则使用回退名。
|
||
- 错误处理:会议纪要下载流程在 blob 失败时做一次 JSON 回退,不再二次递归或死循环。
|
||
|
||
## 影响面
|
||
- 统一了下载行为,降低重复代码。
|
||
- 提高了用户输入、上传的安全性与后端容错性。
|
||
|
||
## 后续建议(与测试报告一致)
|
||
- 引入公共错误提示封装与请求防抖;
|
||
- 增加单元测试(download 工具、表单校验、API 异常分支);
|
||
- 完善安全策略(XSS 过滤、CORS、后端敏感配置)。
|