2.4 KiB
2.4 KiB
代码功能性能测试报告答复
修复与优化清单(对应《代码功能性能测试报告.md》)
一、严重问题修复 🔴
- 下载函数重复定义 → 已抽取公共工具
- 新增:
src/utils/download.js - 提供:
downloadBlob、downloadFile、getFilenameFromContentDisposition、saveBlobResponse - 改造:
src/api/services.js全量改用公共工具,移除重复函数
- 会议纪要 API 错误处理不一致 → 已重写
- 位置:
src/api/services.js→meetingMinutesAPI.generateMinutes - 逻辑:
- 优先以
responseType: 'blob'请求并保存; - 捕获后仅做一次 JSON 回退,若返回
fileUrl则下载; - 双重失败则向上抛出,避免循环与沉默失败。
- 优先以
二、中等问题修复 🟡
- 表单输入校验
src/views/KnowledgeBase.vue:新增validateForm(),要求“主题、详细内容”非空。src/views/MeetingMinutes.vue:新增最小校验,至少有一项文本不为空。
- 文件上传限制
src/views/InvoiceExtractor.vue:新增类型与大小限制(PDF/图片,≤10MB),在onChange中过滤,警告提示。
- 环境变量访问方式
env.config.js:改为import.meta.env?.VITE_*,避免对import.meta的可选链访问。
三、轻微问题优化 🟢
- 支持动态文件名
- 下载工具支持从
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、后端敏感配置)。