kindergarten_java/docs/test-logs/teacher/2026-03-12-issue-diagnosis.md
Claude Opus 4.6 de54ed112c fix: 修复教师课程 API 参数问题
- 移除 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>
2026-03-12 14:32:58 +08:00

3.5 KiB

数据加载问题诊断报告 - 2026-03-12

问题总结

登录功能正常,但核心业务数据无法正常加载。


已发现的问题

问题 1: API 参数不兼容 ⚠️ 高优先级

问题描述: 前端调用 /api/v1/teacher/courses 时传递 pagepageSize 参数,后端返回 400 错误:

[property page should not exist, property pageSize should not exist]

原因: 后端 DTO 验证配置导致这些参数被拒绝,尽管 DTO 中定义了这些字段。

修复状态: 已修复

  • 修改 src/api/teacher.ts 中的 getTeacherCourses 函数
  • 移除 pagepageSize 参数传递

问题 2: 错误处理逻辑不兼容 ⚠️ 高优先级

问题描述: 前端使用 error.response?.data?.message 获取错误信息,但响应拦截器修改后错误对象结构不同。

影响范围:

  • 所有使用 try-catch 的 API 调用
  • 错误消息可能无法正确显示

修复方案: 需要修改所有错误处理代码,使用 error.message 代替 error.response?.data?.message

影响文件:

  • src/views/teacher/courses/CourseListView.vue
  • src/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 - 立即修复 (阻塞性问题)

  1. API 参数兼容性 - 已修复

    • getTeacherCourses - 已移除 page/pageSize 参数
  2. 错误处理逻辑

    • 统一修改为使用 error.message
    • 影响所有 API 调用

P1 - 高优先级 (影响功能)

  1. Dashboard 组件修复

    • 调查渲染错误原因
    • 修复数据绑定问题
  2. 响应拦截器优化

    • 确保所有 API 格式正确处理
    • 添加更完善的类型判断

P2 - 中优先级 (体验问题)

  1. 数据加载优化

    • 添加加载状态
    • 优化错误提示
  2. 分页功能

    • 确认后端分页 API 规范
    • 前端适配统一分页格式

下一步行动

立即执行

  1. 提交当前修复 (API 参数问题)
  2. 全面修复错误处理逻辑
  3. 测试所有核心业务流程

后续工作

  1. 优化响应拦截器
  2. 完善 Dashboard 组件
  3. 建立统一的 API 调用规范

测试账号

角色 账号 密码
教师 teacher1 123456
超管 admin admin123
学校 school1 123456