- 移除 getTeacherCourses 中的 page 和 pageSize 参数 - 后端 API 验证导致这些参数被拒绝 - 添加功能测试计划和问题诊断文档 测试结果: - 后端 API 不接受 page/pageSize 参数 - 需要统一错误处理逻辑 (error.response?.data?.message → error.message) - Dashboard 组件有渲染错误需要修复 相关文档: - docs/test-logs/teacher/2026-03-12-functional-test-plan.md - docs/test-logs/teacher/2026-03-12-issue-diagnosis.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
3.5 KiB
3.5 KiB
数据加载问题诊断报告 - 2026-03-12
问题总结
登录功能正常,但核心业务数据无法正常加载。
已发现的问题
问题 1: API 参数不兼容 ⚠️ 高优先级
问题描述:
前端调用 /api/v1/teacher/courses 时传递 page 和 pageSize 参数,后端返回 400 错误:
[property page should not exist, property pageSize should not exist]
原因: 后端 DTO 验证配置导致这些参数被拒绝,尽管 DTO 中定义了这些字段。
修复状态: ✅ 已修复
- 修改
src/api/teacher.ts中的getTeacherCourses函数 - 移除
page和pageSize参数传递
问题 2: 错误处理逻辑不兼容 ⚠️ 高优先级
问题描述:
前端使用 error.response?.data?.message 获取错误信息,但响应拦截器修改后错误对象结构不同。
影响范围:
- 所有使用
try-catch的 API 调用 - 错误消息可能无法正确显示
修复方案:
需要修改所有错误处理代码,使用 error.message 代替 error.response?.data?.message
影响文件:
src/views/teacher/courses/CourseListView.vuesrc/views/teacher/lessons/LessonView.vue- 其他所有使用 API 的组件
问题 3: 响应拦截器数据结构 ⚠️ 中优先级
当前实现:
if (typeof data === 'object' && data !== null && 'code' in data && 'data' in data) {
return data.data;
}
return data;
问题:
- 某些 API 可能直接返回数组或对象,不包含
code字段 - 导致这些 API 的数据被错误处理
需要确认:
- 哪些 API 返回包装格式
{ code, message, data } - 哪些 API 直接返回数据
问题 4: Dashboard 组件渲染错误 ⚠️ 中优先级
错误信息:
[Vue warn]: Unhandled error during execution of render function
at <DashboardView>
影响:
- 教师端控制台页面可能无法正确显示统计数据
需要调查:
- Dashboard 组件的数据绑定
- API 返回的数据格式是否匹配
核心业务流程测试结果
| 流程 | 状态 | 问题描述 |
|---|---|---|
| 教师端控制台 | ⚠️ 部分可用 | API 调用成功,但统计数据全是 0 |
| 课程中心 | ⚠️ 部分可用 | API 参数问题已修复,待验证 |
| 课程详情页 | ⏳ 未测试 | - |
| 备课模式 | ⏳ 未测试 | - |
| 校本课程包 | ⏳ 未测试 | - |
| 上课模式 | ⏳ 未测试 | - |
修复优先级
P0 - 立即修复 (阻塞性问题)
-
API 参数兼容性 - ✅ 已修复
getTeacherCourses- 已移除 page/pageSize 参数
-
错误处理逻辑
- 统一修改为使用
error.message - 影响所有 API 调用
- 统一修改为使用
P1 - 高优先级 (影响功能)
-
Dashboard 组件修复
- 调查渲染错误原因
- 修复数据绑定问题
-
响应拦截器优化
- 确保所有 API 格式正确处理
- 添加更完善的类型判断
P2 - 中优先级 (体验问题)
-
数据加载优化
- 添加加载状态
- 优化错误提示
-
分页功能
- 确认后端分页 API 规范
- 前端适配统一分页格式
下一步行动
立即执行
- 提交当前修复 (API 参数问题)
- 全面修复错误处理逻辑
- 测试所有核心业务流程
后续工作
- 优化响应拦截器
- 完善 Dashboard 组件
- 建立统一的 API 调用规范
测试账号
| 角色 | 账号 | 密码 |
|---|---|---|
| 教师 | teacher1 | 123456 |
| 超管 | admin | admin123 |
| 学校 | school1 | 123456 |