批改作业列表
页面元信息
- 终端:教师小程序
- Astro 路由:
/teacher-mp/grading-list - 原始 HTML:
tm_grading_list.html - 来源章节:
4.3.6 - 维护规则:后续以本页面 PRD 为准;若改动影响通用规则,再同步总览 / 全局规则文档。
视觉描述
- 原型引用:
产出文档/作业管理模块/原型图/tm_grading_list.html。 - 页面为教师小程序单栏列表页,自上而下分为导航栏、页签工具条、学生列表区、空状态区4个层级。背景为白色内容区,列表区卡片为白底细分隔线。
- 顶部导航栏左侧为返回图标,中间标题固定为
批改作业,右侧为小程序胶囊占位,不作为业务入口。 - 页签工具条包含两个页签按钮:
待批改(x)、已批改(x),当前选中页签高亮并带下划线;右侧为文字按钮查看分析。 - 学生列表为纵向单列按钮行,每行左侧展示学生姓名,右侧为箭头指示。列表为空时展示文案
暂无学生数据。
功能描述
页面入口
- 教师在
tm_list.html作业卡片点击批改进入本页,必须透传homework_id、homework_type、class_id、tab=pending|graded。初始页签遵循 R33。 - 若从
tm_grading.html返回,需恢复离开前的页签、已加载页数与滚动位置。参见 R29。
页面分区与控件交互
- 本页按
导航栏、页签工具条、学生列表区3个可交互分区展开说明;空状态仅替换列表区内容,不覆盖导航栏与页签工具条。
导航栏
| 区域/控件 | 展示规则 | 交互与系统行为 |
|---|---|---|
| 左侧返回 | 始终展示 | 返回 tm_list.html,恢复 tm_list_context 中的页签、筛选条件、分页与滚动位置。参见 R29。 |
标题 批改作业 | 始终展示 | 固定文案,不随页签和人数变化。 |
| 右侧胶囊占位 | 始终展示 | 不承接业务点击事件。 |
页签工具条
| 区域/控件 | 展示规则 | 交互与系统行为 |
|---|---|---|
待批改(x) | 始终展示 | x 为待批改学生数;点击切换到待批改列表,写入 tm_grading_list_context.active_tab=pending 并刷新列表。 |
已批改(x) | 始终展示 | x 为已批改学生数;点击切换到已批改列表,写入 tm_grading_list_context.active_tab=graded 并刷新列表。 |
查看分析 | 始终展示 | 点击进入 tm_report.html?homework_id={homework_id}&homework_type={homework_type}&source_page=tm_grading_list。若报告未生成或无任何已提交答卷,Toast 提示作业分析数据生成中,请稍后查看并停留当前页。 |
学生列表区
- 列表加载策略:
- 首屏加载 50 条学生记录,向下滚动触底后继续加载下一页 50 条。
- 切换页签后清空已加载列表并回到顶部,展示局部骨架屏。
- 排序规则:
待批改按last_submit_time升序(先提交先批改);已批改按last_graded_time降序(最近批改优先)。 - 当前版本学生行仅展示学生姓名,不展示头像、最近提交时间、最近批改时间、得分、批改标签和提交页数;即使接口返回这些字段,前端也不得在本页渲染,避免列表密度过高导致移动端误触。
- 列表字段与交互说明:
| 区域/字段/按钮 | 展示规则 | 交互与系统行为 |
|---|---|---|
| 学生姓名 | 每行固定展示 | 展示 student_name,姓名过长显示省略。 |
| 右侧箭头 | 每行固定展示 | 仅作为可点击提示,不承载独立事件。 |
| 行点击 | 有数据时可点击 | 点击进入 tm_grading.html?student_id={student_id}&student={student_name}&status={active_tab}&homework_id={homework_id}&homework_type={homework_type};若当前页签无数据,行不渲染。 |
文案与按钮状态变化
- 页签计数 x 根据接口返回的
pending_count/graded_count实时更新。 - 当当前页签列表为空时,显示空状态文案
暂无学生数据,页签与查看分析按钮仍保持可见。
页面跳转与返回逻辑
- 本页进入
tm_grading.html后,返回时需回到本页并恢复当前页签、滚动位置与分页游标。 - 进入
tm_report.html后返回,需回到本页并恢复当前页签与滚动位置。
批量操作范围
-
本页不支持学生多选,不提供批量批改、批量导出、批量备注等操作。
-
页签切换仅影响本页列表展示范围,不修改任何批改结果数据。
-
业务规则:R18、R29、R33、R34。
异常描述
| 异常场景 | 处理方式 |
|---|---|
| 学生列表加载失败 | 列表区展示错误占位与重试按钮;保留当前页签与已加载列表缓存。 |
| 待批改为空 | 列表区展示空状态暂无学生数据;不自动切换到已批改页签。 |
| 已批改为空 | 列表区展示空状态暂无学生数据;不自动切换到待批改页签。 |
| 作业不存在或无权限 | Toast 提示作业不存在或已无权限查看并返回 tm_list.html。 |
| 触底加载下一页失败 | 已加载数据保留,列表底部提示加载失败,点击重试。 |
数据需求
- 接口:
- 批改学生列表:入参
homework_id、class_id、status=pending|graded、page_no、page_size。 - 批改人数统计:返回
pending_count、graded_count。
- 批改学生列表:入参
- 关键字段:
- 学生维度:
student_id、student_name、last_submit_time、last_graded_time。 - 页面上下文:
homework_id、homework_type、class_id、source_page。
- 学生维度:
- 页面状态缓存:
tm_grading_list_context至少保存active_tab、page_no、scroll_top、homework_id、class_id、updated_at。
- 埋点:
- 页面浏览:记录入口来源(
tm_list/tm_grading返回)、homework_id、homework_type、class_id、默认页签。 - 页签切换:记录
from_tab、to_tab、切换后列表数量。 - 列表点击:记录
student_id、student_name、status、homework_id。 查看分析点击:记录homework_id、homework_type、是否命中报告未生成提示。
- 页面浏览:记录入口来源(