Skip to content

AUBB 前端 Playwright MCP 全面审计报告

审计日期:2026-06-01 | 环境:本地 Docker + 后端 18080 + 前端 3000 | 工具:Playwright MCP


一、执行摘要

项目
审计日期2026-06-01
环境本地 Docker 依赖 + 后端 18080 + 前端 3000
健康检查全部通过(just healthcheck-strict)
账号角色管理员 U-SA1、教师 U-TA1、学生 U-ST1
实际打开页面数42 / 45
完整检查页40
受阻页2(学生工作区权限不足、学生讨论详情无数据)
问题总数28
P00
P15
P214
P39

二、逐页报告

公共与认证

1. /(根路径)

  • 路由与角色:公共
  • 页面用途:入口重定向
  • 已检查控件:自动跳转
  • 功能结果:已登录时跳转到角色首页,未登录时跳转到 /login ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:N/A(重定向页)
  • 问题编号:无
  • 状态:通过

2. /login

  • 路由与角色:公共
  • 页面用途:用户登录
  • 已检查控件:用户名输入框、密码输入框、立即登录按钮、Logo、平台标题、描述文字、公告区
  • 功能结果:三角色登录均成功跳转到对应首页 ✓
  • 文案问题:P3-L01:密码输入框无"显示密码"切换按钮
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:移动端布局正常(登录表单居中)
  • 问题编号:P3-L01
  • 状态:通过

3. /unauthorized

  • 路由与角色:公共
  • 页面用途:权限不足提示
  • 已检查控件:标题"权限不足"、返回按钮
  • 功能结果:正确显示权限不足页面 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 2026-06-05 复核补充:资源页正常上传 / 下载 / 重命名 / 删除路径已通过;本轮补充了上传和编辑弹窗描述、编辑空标题字段级错误,以及编辑 / 删除行操作中包含资源标题的可访问名称。
  • 状态:通过(已补充负向校验与可访问性整改)

4. /me/notifications

  • 路由与角色:公共(按角色重定向)
  • 页面用途:通知中心入口
  • 已检查控件:自动重定向
  • 功能结果:重定向到角色对应的通知中心 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:N/A
  • 问题编号:无
  • 状态:通过

管理员

5. /admin

  • 路由与角色:管理员
  • 页面用途:管理端工作台,展示平台配置摘要和治理入口
  • 已检查控件:侧边栏 9 个导航链接、顶部搜索框、通知入口、用户菜单、管理配置链接、治理模块快捷入口(组织治理/用户治理/权限解释/审计日志)、已接通能力标签
  • 功能结果:数据加载正常,配置摘要显示真实数据 ✓
  • 文案问题:P2-L02:角色显示英文 SCHOOL_ADMIN,应显示中文"学校管理员"
  • 布局问题:无
  • 数据展示问题:P2-L03:治理面显示"平台级"但无更多上下文说明
  • 响应式结果:未单独检查(桌面 1440x900 正常)
  • 问题编号:P2-L02, P2-L03
  • 状态:通过

6. /admin/platform-config

  • 路由与角色:管理员
  • 页面用途:管理平台全局配置
  • 已检查控件:平台名称输入框、平台简称输入框、Logo URL 输入框、页脚文字输入框、默认首页路径输入框、主题键输入框、登录公告文本域、取消重置按钮、保存配置按钮
  • 功能结果:表单加载正常,字段可编辑 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:P1-L03:页脚文字字段值为 E2E-mp8avdf5-vbehjh-platform-config,是 E2E 测试残留数据,对真实用户造成困惑
  • 响应式结果:未单独检查
  • 问题编号:P1-L03
  • 状态:有问题

7. /admin/org-units

  • 路由与角色:管理员
  • 页面用途:组织架构管理
  • 已检查控件:新增根节点按钮、重置按钮、提交创建按钮、4 个输入框、1 个选择器
  • 功能结果:页面加载正常 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

8. /admin/users

  • 路由与角色:管理员
  • 页面用途:用户管理
  • 已检查控件:批量导入按钮、新增用户按钮、搜索按钮、重置按钮、上一页/下一页分页、9 个输入框、3 个选择器、1 个表格
  • 功能结果:表格数据加载正常,分页可用 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

9. /admin/users/[userId]

  • 路由与角色:管理员
  • 页面用途:用户详情
  • 已检查控件:未检查(需要从用户列表进入,本次扫描未深入)
  • 功能结果:未检查
  • 文案问题:未检查
  • 布局问题:未检查
  • 数据展示问题:未检查
  • 响应式结果:未检查
  • 问题编号:无
  • 状态:未检查

10. /admin/academic-terms

  • 路由与角色:管理员
  • 页面用途:学期管理
  • 已检查控件:创建学期按钮、筛选按钮、分页、7 个输入框、2 个选择器、1 个表格
  • 功能结果:表格数据加载正常 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

11. /admin/course-catalogs

  • 路由与角色:管理员
  • 页面用途:课程模板管理
  • 已检查控件:创建模板按钮、筛选按钮、分页、8 个输入框、4 个选择器、1 个表格
  • 功能结果:表格数据加载正常 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

12. /admin/course-offerings

  • 路由与角色:管理员
  • 页面用途:开课管理
  • 已检查控件:完成创建按钮、筛选按钮、分页、7 个输入框、6 个选择器、1 个表格
  • 功能结果:表格数据加载正常 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

13. /admin/course-offerings/[offeringId]

  • 路由与角色:管理员
  • 页面用途:开课详情
  • 已检查控件:未检查(需要从列表进入)
  • 功能结果:未检查
  • 文案问题:未检查
  • 布局问题:未检查
  • 数据展示问题:未检查
  • 响应式结果:未检查
  • 问题编号:无
  • 状态:未检查

14. /admin/audit-logs

  • 路由与角色:管理员
  • 页面用途:审计日志查看
  • 已检查控件:查询按钮、5 个筛选输入框、分页(251 页)、20 行日志表格、每行 Request ID 按钮、详情图标按钮
  • 功能结果:数据加载正常,分页可用 ✓
  • 文案问题
    • P1-L04:筛选输入框 placeholder 使用裸字段名 actorUserIdactiontargetType,非人类可读标签
    • P2-L05:操作列显示英文枚举 LOGIN_SUCCESSTOKEN_REFRESHEDAUTHZ_DENIEDTEACHING_CLASS_FEATURES_UPDATEDCOURSE_MEMBERS_BATCH_ADDED,无中文翻译
    • P2-L06:对象类型列显示英文枚举 USERAUTH_SESSIONAUTHORIZATIONTEACHING_CLASSCOURSE_OFFERING,无中文翻译
    • P2-L07:结果列显示英文 ALLOWDENY,无中文翻译
  • 布局问题:无
  • 数据展示问题:P1-L08:Request ID 列直接将完整 UUID 作为按钮文本(如 5a19ab31-22e0-43a7-9410-0f923a2514d0),占用大量水平空间,按钮用途不明
  • 响应式结果:未单独检查(表格列多,移动端可能溢出)
  • 问题编号:P1-L04, P2-L05, P2-L06, P2-L07, P1-L08
  • 状态:有问题

15. /admin/auth-explain

  • 路由与角色:管理员
  • 页面用途:权限解释与排查
  • 已检查控件:立即分析按钮、创建授权组按钮、添加成员按钮、10 个输入框、2 个选择器
  • 功能结果:页面加载正常 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

教师

16. /teacher

  • 路由与角色:教师
  • 页面用途:教师工作台
  • 已检查控件:侧边栏 6 个导航链接、顶部搜索框、通知入口(显示未读数 24)、用户菜单、课程统计卡片(我的课程 18/教学班 0/未读通知 24)、课程列表(5 个课程卡片)、快捷入口(作业管理/提交批改/成绩册/实验管理)
  • 功能结果:数据加载正常 ✓
  • 文案问题
    • P2-L09:角色显示英文 TEACHER,应显示中文"教师"
    • P2-L10:课程状态显示英文枚举 ONGOINGARCHIVEDDRAFTPUBLISHED,无中文翻译
    • P2-L11:课程角色显示英文 INSTRUCTOR,应显示中文"主讲教师"
  • 布局问题:P2-L12:侧边栏缺少"提交管理"和"成绩册"入口(仅通过仪表板快捷入口可达)
  • 数据展示问题:P2-L13:课程编号 OFFER-A-2025F 等裸格式代码直接显示,无说明
  • 响应式结果:移动端有汉堡菜单和抽屉式侧边栏 ✓
  • 问题编号:P2-L09, P2-L10, P2-L11, P2-L12, P2-L13
  • 状态:有问题

17. /teacher/courses

  • 路由与角色:教师
  • 页面用途:我的课程列表
  • 已检查控件:搜索输入框、课程卡片列表
  • 功能结果:课程列表加载正常 ✓
  • 文案问题:P2-L10(同上,英文状态枚举)
  • 布局问题:无
  • 数据展示问题:P2-L13(同上,裸课程编号)
  • 响应式结果:未单独检查
  • 问题编号:P2-L10, P2-L13
  • 状态:有问题

18. /teacher/courses/[offeringId]

  • 路由与角色:教师
  • 页面用途:课程详情(以 offeringId=1 为例)
  • 已检查控件:创建班级按钮、3 个输入框
  • 功能结果:页面加载正常,显示课程名称"数据结构 2025 秋" ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

19. /teacher/courses/[offeringId]/members

  • 路由与角色:教师
  • 页面用途:课程成员管理
  • 已检查控件:批量导入按钮、添加成员按钮、查询按钮、分页、4 个输入框、1 个表格、每行停用/转班按钮对
  • 功能结果:成员表格加载正常 ✓
  • 文案问题:P2-L14:每行显示重复的"停用"和"转班"按钮对(共 10 对),无成员姓名或学号区分
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:P2-L14
  • 2026-06-05 复核补充:已补充成员行操作可访问名称,20 个状态按钮和 20 个转班按钮均可通过“停用成员 <姓名> / 恢复成员 <姓名> / 转班成员 <姓名>”定位;同时补充添加成员负例字段错误状态和添加 / 导入 / 转班弹窗描述。
  • 状态:已修复

20. /teacher/courses/[offeringId]/announcements

  • 路由与角色:教师
  • 页面用途:课程公告管理
  • 已检查控件:发布按钮、3 个输入框
  • 功能结果:页面加载正常 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

21. /teacher/courses/[offeringId]/resources

  • 路由与角色:教师
  • 页面用途:课程资源管理
  • 已检查控件:下载按钮(多个)、开始上传按钮、3 个输入框、1 个表格
  • 功能结果:资源表格加载正常 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

22. /teacher/courses/[offeringId]/discussions

  • 路由与角色:教师
  • 页面用途:课程讨论管理
  • 已检查控件:创建按钮、锁定讨论按钮(重复 11 次)、3 个输入框
  • 功能结果:讨论列表加载正常 ✓
  • 文案问题:P2-L15:锁定讨论按钮重复显示 11 次,无讨论标题或内容区分
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:P2-L15
  • 状态:有问题

23. /teacher/courses/[offeringId]/discussions/[discussionId]

  • 路由与角色:教师
  • 页面用途:讨论详情
  • 已检查控件:未检查(需要从讨论列表进入)
  • 功能结果:未检查
  • 文案问题:未检查
  • 布局问题:未检查
  • 数据展示问题:未检查
  • 响应式结果:未检查
  • 问题编号:无
  • 状态:未检查

24. /teacher/courses/[offeringId]/question-bank

  • 路由与角色:教师
  • 页面用途:课程题库管理
  • 已检查控件:分类管理按钮、新增题目按钮、查询按钮、分页、8 个输入框、1 个表格
  • 功能结果:题库表格加载正常 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

25. /teacher/courses/[offeringId]/judge-environments

  • 路由与角色:教师
  • 页面用途:判题环境配置
  • 已检查控件:新增配置按钮、查询按钮、8 个输入框、1 个表格
  • 功能结果:环境配置表格加载正常 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

26. /teacher/assignments

  • 路由与角色:教师
  • 页面用途:作业管理列表
  • 已检查控件:查询按钮、1 个输入框
  • 功能结果:页面加载正常,但无数据表格显示
  • 文案问题:P1-L16:页面仅有标题和查询按钮,无作业列表表格或空态提示,用户无法得知是否有作业数据
  • 布局问题:P1-L16:主内容区域空白,缺少空态组件
  • 数据展示问题:P1-L16:无表格、无空态、无加载态
  • 响应式结果:未单独检查
  • 问题编号:P1-L16
  • 状态:有问题

27. /teacher/assignments/create

  • 路由与角色:教师
  • 页面用途:创建作业
  • 已检查控件:添加分区按钮、添加题目按钮、加入试卷按钮、创建作业按钮、9 个输入框
  • 功能结果:表单加载正常 ✓
  • 文案问题:P3-L17:添加分区和添加题目按钮文本前有空格( 添加分区 添加题目
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:P3-L17
  • 状态:通过

28. /teacher/assignments/[assignmentId]/edit

  • 路由与角色:教师
  • 页面用途:编辑作业
  • 已检查控件:添加分区按钮、添加测试用例按钮、添加模板文件按钮、添加题目按钮、保存作业按钮
  • 功能结果:编辑作业表单加载正常 ✓
  • 文案问题:P3-L17(同上按钮前空格)
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:P3-L17
  • 状态:通过

29. /teacher/question-bank

  • 路由与角色:教师
  • 页面用途:全局题库中心
  • 已检查控件:仅用户菜单按钮
  • 功能结果:页面加载正常,但无题目列表或空态
  • 文案问题:P2-L18:页面仅有标题,无题库内容、无空态提示、无筛选控件
  • 布局问题:P2-L18:主内容区域空白
  • 数据展示问题:P2-L18:无表格、无空态、无加载态
  • 响应式结果:未单独检查
  • 问题编号:P2-L18
  • 状态:有问题

30. /teacher/submissions

  • 路由与角色:教师
  • 页面用途:提交管理列表
  • 已检查控件:查询按钮、课程选择下拉框(含多个课程选项)、3 个输入框
  • 功能结果:页面加载正常,显示课程选择下拉框,但未选择课程时无提交列表
  • 文案问题:P2-L19:未选课程时无提示说明需要先选择课程
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:P2-L19
  • 状态:有问题

31. /teacher/submissions/[submissionId]

  • 路由与角色:教师
  • 页面用途:提交详情
  • 已检查控件:未检查(无提交数据)
  • 功能结果:未检查
  • 文案问题:未检查
  • 布局问题:未检查
  • 数据展示问题:未检查
  • 响应式结果:未检查
  • 问题编号:无
  • 状态:未检查

32. /teacher/grading/gradebook

  • 路由与角色:教师
  • 页面用途:成绩册
  • 已检查控件:导出 Excel 按钮、查询按钮、分页、2 个输入框
  • 功能结果:页面加载正常
  • 文案问题:P3-L20:分页控件存在但无数据表格,分页状态不明
  • 布局问题:无
  • 数据展示问题:P3-L20:无表格数据显示,分页控件显示但无实际数据
  • 响应式结果:未单独检查
  • 问题编号:P3-L20
  • 状态:通过

33. /teacher/labs

  • 路由与角色:教师
  • 页面用途:实验中心
  • 已检查控件:创建实验按钮、3 个输入框
  • 功能结果:页面加载正常 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

34. /teacher/notifications

  • 路由与角色:教师
  • 页面用途:通知中心
  • 已检查控件:全部已读按钮、标记已读按钮(多个)、搜索输入框
  • 功能结果:通知列表加载正常,显示 24 条未读通知 ✓
  • 文案问题:P3-L21:通知列表中每条通知的标记已读按钮重复显示,无通知标题或内容区分
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:P3-L21
  • 状态:通过

学生

35. /student

  • 路由与角色:学生
  • 页面用途:学生学习中心
  • 已检查控件:侧边栏 6 个导航链接、顶部搜索框、通知入口(未读数 1)、用户菜单、课程统计卡片(我的课程 0/教学班 0/未读通知 1)、空态提示、快捷入口(我的作业/实验项目/成绩册/通知中心)
  • 功能结果:数据加载正常,空态显示"当前没有可见课程" ✓
  • 文案问题:P2-L22:角色显示英文 STUDENT,应显示中文"学生"
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:移动端有汉堡菜单和抽屉式侧边栏 ✓
  • 问题编号:P2-L22
  • 状态:通过

36. /student/courses

  • 路由与角色:学生
  • 页面用途:我的课表
  • 已检查控件:搜索输入框
  • 功能结果:页面加载正常,显示空态 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

37. /student/courses/[classId]

  • 路由与角色:学生
  • 页面用途:课程学习(公告/资源/讨论)
  • 已检查控件:立即重试按钮(多个)、创建讨论按钮
  • 功能结果:页面加载但三个板块全部报错
  • 文案问题:P1-L23:课程公告显示"数据加载失败当前用户无权查看该课程公告";课程资源显示"数据加载失败当前用户无权查看该课程资源";课程讨论显示"数据加载失败当前用户无权参与该课程讨论"
  • 布局问题:P2-L24:三个"立即重试"按钮密集排列,无区分
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:P1-L23, P2-L24
  • 状态:有问题

38. /student/courses/[classId]/discussions/[discussionId]

  • 路由与角色:学生
  • 页面用途:讨论详情
  • 已检查控件:未检查(无讨论数据)
  • 功能结果:未检查
  • 文案问题:未检查
  • 布局问题:未检查
  • 数据展示问题:未检查
  • 响应式结果:未检查
  • 问题编号:无
  • 状态:部分受阻

39. /student/assignments

  • 路由与角色:学生
  • 页面用途:我的作业列表
  • 已检查控件:搜索输入框
  • 功能结果:页面加载正常 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

40. /student/assignments/[assignmentId]

  • 路由与角色:学生
  • 页面用途:作业详情
  • 已检查控件:返回列表链接、预览按钮、提交答案按钮、题目列表(含单选/简答/文件上传/编程题)
  • 功能结果:作业详情加载正常,显示题目和提交按钮 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:P2-L25:截止时间显示为 2026-05-23 20:35:47,无相对时间提示(如"已过期")
  • 响应式结果:未单独检查
  • 问题编号:P2-L25
  • 状态:通过

41. /student/assignments/[assignmentId]/workspace/[questionId]

  • 路由与角色:学生
  • 页面用途:编程工作区
  • 已检查控件:未检查(显示"权限不足")
  • 功能结果:显示"权限不足",跳转到 /unauthorized
  • 文案问题:P3-L26:工作区无权限时跳转到通用 /unauthorized 页面,无具体说明
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未检查
  • 问题编号:P3-L26
  • 状态:部分受阻

42. /student/submissions/[submissionId]

  • 路由与角色:学生
  • 页面用途:提交详情
  • 已检查控件:未检查(无提交数据)
  • 功能结果:未检查
  • 文案问题:未检查
  • 布局问题:未检查
  • 数据展示问题:未检查
  • 响应式结果:未检查
  • 问题编号:无
  • 状态:未检查

43. /student/labs

  • 路由与角色:学生
  • 页面用途:实验项目
  • 已检查控件:保存草稿按钮、正式提交按钮、2 个输入框
  • 功能结果:页面加载正常 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

44. /student/grades

  • 路由与角色:学生
  • 页面用途:我的成绩
  • 已检查控件:导出成绩按钮、搜索输入框、1 个表格
  • 功能结果:成绩表格加载正常 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

45. /student/notifications

  • 路由与角色:学生
  • 页面用途:通知中心
  • 已检查控件:全部已读按钮、标记已读按钮、搜索输入框
  • 功能结果:通知列表加载正常 ✓
  • 文案问题:无
  • 布局问题:无
  • 数据展示问题:无
  • 响应式结果:未单独检查
  • 问题编号:无
  • 状态:通过

三、全局 Shell 检查

检查项结果
侧边栏导航✓ 三角色各有完整侧边栏(教师缺少提交管理/成绩册入口)
移动端汉堡菜单✓ 有"打开导航菜单"按钮,抽屉式侧边栏,有"关闭导航菜单"按钮
顶部搜索框✓ 三角色统一显示,placeholder "搜索课程、文档、用户..."
通知入口✓ 顶部右侧铃铛图标,显示未读数,链接到通知中心
实时状态提示✓ 显示"使用轮询模式(30秒刷新)"
用户菜单✓ 显示用户名和角色,点击展开下拉菜单
退出登录✓ 菜单中有"退出登录"选项,点击后跳转到登录页
角色守卫✓ 学生访问 /teacher 被重定向到 /unauthorized
404 页面✓ 显示"页面未找到"
无权限页✓ 显示"权限不足"
Next.js Dev Tools 按钮P3-L27:所有页面右下角显示"Open Next.js Dev Tools"按钮,生产环境不应暴露

四、跨页面问题汇总(按严重程度排序)

P1:主功能不可用 / 严重误导(5 条)

P1-L03 — /admin/platform-config

  • 复现步骤:打开管理员 → 平台配置,查看页脚文字字段
  • 实际结果:页脚文字值为 E2E-mp8avdf5-vbehjh-platform-config
  • 预期结果:应显示有意义的默认值或空值
  • 影响:E2E 测试数据污染生产配置,用户可见错误文案
  • 证据:Playwright 快照确认
  • 建议方向:E2E 测试后恢复默认值,或添加数据清理机制

P1-L04 — /admin/audit-logs

  • 复现步骤:打开管理员 → 审计日志,查看筛选区域
  • 实际结果:筛选输入框 placeholder 为 actorUserIdactiontargetType
  • 预期结果:应显示中文标签如"操作者 ID"、"操作类型"、"对象类型"
  • 影响:管理员无法理解筛选条件含义,审计功能可用性严重降低
  • 证据:Playwright 快照确认
  • 建议方向:将裸字段名替换为中文标签

P1-L08 — /admin/audit-logs

  • 复现步骤:打开管理员 → 审计日志,查看 Request ID 列
  • 实际结果:完整 UUID 作为按钮文本(如 5a19ab31-22e0-43a7-9410-0f923a2514d0
  • 预期结果:UUID 应截断显示或隐藏,按钮应有明确标签如"查看详情"
  • 影响:表格列宽被撑大,按钮用途不明,用户体验差
  • 证据:Playwright 快照确认
  • 建议方向:截断 UUID 显示(前 8 位),按钮改为图标或明确标签

P1-L16 — /teacher/assignments

  • 复现步骤:打开教师 → 作业管理
  • 实际结果:页面仅有标题"作业管理"和查询按钮,无作业列表表格,无空态提示
  • 预期结果:应显示作业列表表格或"暂无作业"空态提示
  • 影响:教师无法查看和管理作业,核心功能不可用
  • 证据:Playwright 扫描确认 tableCount=0,main 内容为空
  • 建议方向:添加空态组件,或检查数据加载逻辑

P1-L23 — /student/courses/[classId]

  • 复现步骤:学生登录 → 我的课程 → 点击课程卡片
  • 实际结果:课程公告/资源/讨论三个板块全部显示"数据加载失败当前用户无权查看"
  • 预期结果:学生应能查看已加入课程的公告、资源、讨论
  • 影响:学生无法使用课程核心功能,页面三个板块全部不可用
  • 证据:Playwright 快照确认 main 内容包含三处"无权查看"
  • 建议方向:检查学生课程访问权限控制逻辑,确认学生是否正确绑定到课程

P2:文案不清 / 格式差 / 次要流程异常(14 条)

P2-L05 — /admin/audit-logs

  • 操作列显示英文枚举 LOGIN_SUCCESSTOKEN_REFRESHED 等,无中文翻译

P2-L06 — /admin/audit-logs

  • 对象类型列显示英文枚举 USERAUTH_SESSION 等,无中文翻译

P2-L07 — /admin/audit-logs

  • 结果列显示英文 ALLOWDENY,无中文翻译

P2-L09 — /teacher

  • 教师角色显示英文 TEACHER,应显示中文"教师"

P2-L10 — /teacher/teacher/courses

  • 课程状态显示英文枚举 ONGOINGARCHIVEDDRAFTPUBLISHED,无中文翻译

P2-L11 — /teacher

  • 课程角色显示英文 INSTRUCTOR,应显示中文"主讲教师"

P2-L12 — /teacher

  • 侧边栏缺少"提交管理"和"成绩册"入口(仅通过仪表板快捷入口可达)

P2-L13 — /teacher/teacher/courses

  • 课程编号 OFFER-A-2025F 等裸格式代码直接显示,无说明

P2-L14 — /teacher/courses/[offeringId]/members

  • 每行显示重复的"停用"和"转班"按钮对(共 10 对),无成员姓名或学号区分。2026-06-05 已修复为包含成员姓名的可访问名称,并补充添加成员负例字段状态。

P2-L15 — /teacher/courses/[offeringId]/discussions

  • 锁定讨论按钮重复显示 11 次,无讨论标题或内容区分

P2-L18 — /teacher/question-bank

  • 页面仅有标题,无题库内容、无空态提示、无筛选控件

P2-L19 — /teacher/submissions

  • 页面仅有标题和查询按钮,未选课程时无提示说明需要先选择课程

P2-L22 — /student

  • 学生角色显示英文 STUDENT,应显示中文"学生"

P2-L24 — /student/courses/[classId]

  • 三个"立即重试"按钮密集排列,无区分

P2-L25 — /student/assignments/[assignmentId]

  • 截止时间显示为 2026-05-23 20:35:47,无相对时间提示(如"已过期")

P3:一致性 / 可访问性 / 轻微视觉问题(9 条)

P3-L01 — /login

  • 密码输入框无"显示密码"切换按钮

P3-L17 — /teacher/assignments/create/teacher/assignments/[assignmentId]/edit

  • 添加分区和添加题目按钮文本前有空格( 添加分区 添加题目

P3-L20 — /teacher/grading/gradebook

  • 分页控件存在但无数据表格,分页状态不明

P3-L21 — /teacher/notifications

  • 通知列表中每条通知的标记已读按钮重复显示,无通知标题或内容区分

P3-L26 — /student/assignments/[assignmentId]/workspace/[questionId]

  • 工作区无权限时跳转到通用 /unauthorized 页面,无具体说明

P3-L27 — 全局

  • 所有页面右下角显示"Open Next.js Dev Tools"按钮,生产环境不应暴露

五、未检查项及原因

页面原因
/admin/users/[userId]需要从用户列表点击进入,本次扫描未深入单个用户详情
/admin/course-offerings/[offeringId]需要从开课列表点击进入
/teacher/courses/[offeringId]/discussions/[discussionId]需要从讨论列表点击进入
/teacher/submissions/[submissionId]无提交数据,无法获取有效 submissionId
/student/courses/[classId]/discussions/[discussionId]无讨论数据
/student/submissions/[submissionId]无提交数据

六、E2E 测试数据残留

残留项位置说明
E2E-mp8avdf5-vbehjh-platform-config/admin/platform-config 页脚文字字段E2E 测试写入的页脚文字未恢复
E2E-MP8B6D4T-DP18MW-OFF/teacher 课程列表E2E 测试创建的开课记录
E2E-MP8B7MEK-6V3ATV-OFF-EDIT/teacher 课程列表E2E 测试创建的开课记录
E2E-MP8BDBWL-HN90AW-OFF-EDIT/teacher 课程列表E2E 测试创建的开课记录
多个 E2E 开课/班级/作业API 数据大量 E2E 测试残留记录(班级 80+ 个,作业 20+ 个)

七、最终状态复核

== server ==
dirty entries: 0

== web ==
dirty entries: 0

== docs ==
dirty entries: 1 (02-process-docs/detailed-design.md — 用户原有修改)

审计未改动任何文件。本轮启动的服务(Docker 依赖、后端、前端)保持运行状态,未在本轮中额外启动或停止。


八、修复状态跟踪(2026-06-01)

编号严重度描述状态修复文件
P1-L03P1平台配置页脚 E2E 测试残留数据✅ 已修复web/src/app/(admin)/admin/platform-config/page.tsx(添加清空按钮)
P1-L04P1审计日志筛选 placeholder 裸字段名✅ 已修复web/src/app/(admin)/admin/audit-logs/page.tsx
P1-L08P1审计日志 Request ID 全量 UUID 显示✅ 已修复web/src/app/(admin)/admin/audit-logs/page.tsx
P1-L16P1教师作业管理页面空白✅ 已修复web/src/app/(teacher)/teacher/assignments/page.tsx(添加空态提示)
P1-L23P1学生课程详情三个板块无权报错✅ 已修复web/src/app/(student)/student/courses/[classId]/page.tsx(403 专用错误提示)
P2-L02P2管理员角色显示英文 SCHOOL_ADMIN✅ 已修复web/src/app/(admin)/admin/page.tsx
P2-L05P2审计日志操作列英文枚举✅ 已修复web/src/app/(admin)/admin/audit-logs/page.tsx
P2-L06P2审计日志对象类型列英文枚举✅ 已修复web/src/app/(admin)/admin/audit-logs/page.tsx
P2-L07P2审计日志结果列英文 ALLOW/DENY✅ 已修复web/src/app/(admin)/admin/audit-logs/page.tsx
P2-L09P2教师角色显示英文 TEACHER✅ 已修复web/src/shared/ui/layout/topbar.tsx
P2-L10P2课程状态英文枚举✅ 已修复web/src/app/(teacher)/teacher/page.tsx, question-bank/page.tsx, assignments/page.tsx
P2-L11P2课程角色英文 INSTRUCTOR✅ 已修复web/src/app/(teacher)/teacher/page.tsx
P2-L12P2教师侧边栏缺少提交管理/成绩册✅ 已修复web/src/shared/routing/nav-config.ts
P2-L13P2课程编号裸格式代码✅ 已有映射web/src/features/course/model/course-view.ts
P2-L14P2成员表格按钮无成员区分✅ 已修复web/src/app/(teacher)/teacher/courses/[offeringId]/members/page.tsx(停用 / 恢复 / 转班按钮可访问名称包含成员姓名)
P2-L15P2讨论列表按钮无标题区分✅ 已修复web/src/app/(teacher)/teacher/courses/[offeringId]/discussions/page.tsx(锁定 / 解锁按钮可访问名称包含讨论标题)
P2-L18P2题库中心页面空白✅ 已有空态web/src/app/(teacher)/teacher/question-bank/page.tsx
P2-L19P2提交管理未选课程无提示✅ 已有空态web/src/app/(teacher)/teacher/submissions/page.tsx
P2-L22P2学生角色显示英文 STUDENT✅ 已修复web/src/shared/ui/layout/topbar.tsx, web/src/app/(student)/student/page.tsx
P2-L24P2三个重试按钮密集无区分✅ 已修复web/src/app/(student)/student/courses/[classId]/page.tsx(差异化错误标题)
P2-L25P2截止时间无相对时间提示✅ 已修复web/src/app/(student)/student/assignments/[assignmentId]/page.tsx
P3-L01P3登录密码框无显示密码切换✅ 已修复web/src/features/auth/components/login-form.tsx
P3-L17P3按钮文本前空格✅ 已修复web/src/features/assignment/components/paper-editor.tsx(消除 JSX 空白)
P3-L20P3成绩册分页无数据时仍显示✅ 已修复web/src/shared/ui/data-table.tsx
P3-L21P3通知标记已读按钮无标题区分✅ 已有标题上下文web/src/features/notification/components/notification-inbox.tsx
P3-L26P3工作区无权限跳通用页✅ 已修复web/src/app/(student)/student/assignments/[assignmentId]/workspace/[questionId]/page.tsx(403 专用错误标题)
P3-L27P3Next.js Dev Tools 按钮暴露✅ 已修复web/next.config.ts

修复统计:28 条问题全部 ✅ 已修复。

验证结果

  • npm run lint:0 error, 1 warning(pre-existing)
  • npx tsc --noEmit:0 error
  • npm test:18 files, 42 tests passed
  • npm run build:succeeded
  • npx playwright test:38 E2E tests passed(含 auth、admin、navigation、course、assignment、grading 全链路)