kindergarten_java/docs/test-logs/teacher/2026-03-12-issue-diagnosis.md
En 6e11c874d2 chore: 忽略 target 目录和 .class 文件
- 添加 target/ 到 .gitignore
- 从 git 暂存区移除已追踪的 target 目录

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-14 16:50:54 +08:00

3.9 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 调用成功,数据正常显示
课程中心 ✓ 基本可用 课程列表显示正常
课程详情页 待测试 -
备课模式 待测试 -
校本课程包 ✓ 基本可用 数据显示正常
上课模式 ⚠️ 部分可用 数据显示,但操作按钮有问题

最终测试结果 (2026-03-12 下午)

登录状态: ✓ 成功

[测试 1] 教师控制台
  统计数据: ✓
  今日课程: ✓
  推荐课程: ✓

[测试 2] 课程中心
  课程数量: 1
  有标题: ✓
  有图片: ✗ (可能需要上传)

[测试 3] 校本课程
  数据显示: ✓
  创建按钮: ✓

[测试 4] 授课记录
  数据显示: ✓
  操作按钮: ✗

修复优先级

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 123456
学校 school1 123456