逐题批改
页面元信息
- 终端:教师小程序
- Astro 路由:
/teacher-mp/grading - 原始 HTML:
tm_grading.html - 来源章节:
4.3.7 - 维护规则:后续以本页面 PRD 为准;若改动影响通用规则,再同步总览 / 全局规则文档。
视觉描述
- 原型引用:
产出文档/作业管理模块/原型图/tm_grading.html。 - 页面为教师小程序沉浸式批改页,自上而下分为导航栏、卷面查看区、页级工具条、底部题目批改抽屉、底部固定操作区5个层级。卷面区为灰底查看层,批改抽屉自底部上滑覆盖;工具条固定贴在卷面底部上沿。
- 顶部导航栏左侧为返回图标,中间标题展示当前学生姓名,右侧为小程序胶囊占位。导航栏仅承担返回和学生身份识别,不展示作业来源、班级、学科等辅助信息。
- 卷面查看区默认展示当前学生当前作业的当前页原卷。卷面上叠加左右翻页箭头、题目热区和当前命中的题目高亮态;空白区域不承载其他业务入口。
- 页级工具条包含
提交记录、放大、缩小、第N页4类元素。其中提交记录位于左侧,缩放按钮位于中间,页码文本位于右侧。 - 底部题目批改抽屉默认收起;点击卷面题目热区后上滑展开。抽屉头部左侧固定标题
题目批改,右侧为文字按钮保存并查看分析。抽屉内容区依次展示题目摘要、题目卡片、AI恢复入口、评对错/打分切换、标准答案。 - 底部固定操作区包含左侧次按钮
一键全对和右侧主按钮。主按钮文案按当前上下文动态切换为保存并下一页、保存并下一份或保存并退出。 - 卷面标题区不展示来源标签
教研院,也不展示“教研院”文本;即使后端返回该字段,前端也不得渲染。参见 R56。
功能描述
页面入口
- 教师在
tm_grading_list.html点击某一学生行进入本页,必须透传homework_id、homework_type、class_id、student_id、student_name、status=pending|graded、source_page=tm_grading_list。 - 页面首次加载默认打开当前学生的第1页;若服务端返回
default_page_no或last_ungraded_page_no,则以前者为准。 - 若教师从
tm_grading_history.html返回本页,需恢复离开前的current_page_no、当前学生、当前页签和已打开的提交记录上下文。
页面分区与控件交互
- 本页按
导航栏、卷面查看区、页级工具条、题目批改抽屉、底部固定操作区5个交互分区展开说明。
导航栏
| 区域/控件 | 展示规则 | 交互与系统行为 |
|---|---|---|
| 左侧返回 | 始终展示 | 点击后返回 tm_grading_list.html;若当前存在未保存的教师改判结果,先弹出未保存离开确认弹窗。确认离开则丢弃本次未保存改动并返回;取消则留在当前页。 |
| 学生姓名标题 | 始终展示 | 固定展示 student_name;不随页码、批改状态或当前选中题目变化。 |
| 右侧胶囊占位 | 始终展示 | 不承接业务点击事件,不参与埋点。 |
卷面查看区
| 区域/控件 | 展示规则 | 交互与系统行为 |
|---|---|---|
| 当前页原卷 | 始终展示 | 展示 current_page_no 对应的原卷图片或渲染结果;当前页切换后立即刷新卷面内容与题目热区。 |
| 左右翻页箭头 | 当 page_count > 1 时展示 | 点击左箭头切换到上一页,点击右箭头切换到下一页;到达首页/末页时对应箭头保留可见但点击无效。切页后关闭当前已展开的题目批改抽屉,并重置提交记录查询范围到新页。 |
| 题目热区 | 当前页存在可批改题目时展示 | 点击某个热区后高亮当前题目并展开题目批改抽屉;再次点击同题热区不重复展开,只更新高亮态。点击卷面空白区域收起抽屉,但已修改的本地未保存结果继续保留。 |
页级工具条
| 区域/控件 | 展示规则 | 交互与系统行为 |
|---|---|---|
提交记录 | 始终展示 | 点击进入 tm_grading_history.html,并透传 homework_id、student_id、status、current_page_no、current_submission_id。提交记录查询范围仅限当前页;进入记录页后不提供跨页切换器或页码快捷跳转。若需查看其他页的提交记录,必须先切换到对应页,再点击本按钮进入。参见 R54。 |
放大 | 始终展示 | 以 10% 为步长放大卷面;与手势缩放共用同一缩放比例状态。 |
缩小 | 始终展示 | 以 10% 为步长缩小卷面;当缩放比例到达最小值后按钮保留可见但点击无效。 |
第N页 | 始终展示 | 只读展示当前页码;页码随翻页即时更新,不可直接点击跳页。 |
- 缩放与手势规则:
- 双指缩放:教师可在卷面区域使用双指捏合进行放大、缩小;缩放范围固定为 50%-200%,与按钮缩放边界一致。参见 R55。
- 单指长按拖移:教师单指在卷面上长按 300ms 后进入拖移模式,仅允许上下滑动拖移当前页内容;释放手指即退出拖移模式。普通单击不进入拖移模式,避免与题目热区点击冲突。参见 R55。
- 手势优先级:长按拖移期间不触发题目热区点击;双指缩放期间不触发左右翻页;手势结束后恢复普通点击能力。
题目批改抽屉
| 区域/控件 | 展示规则 | 交互与系统行为 |
|---|---|---|
| 题目摘要 | 打开抽屉后展示 | 展示当前题目的题干摘要;默认收起为2行,点击展开/收起切换摘要高度。 |
保存并查看分析 | 抽屉打开后始终展示 | 点击后先保存当前学生本次批改结果;保存成功再进入 tm_report.html?homework_id={homework_id}&student_id={student_id}&source_page=tm_grading。保存失败则停留当前页并提示失败原因。 |
AI批改 恢复按钮 | 每个批改项固定展示 | 点击后将该批改项恢复为 AI 原始结果,清空当前教师在该项上的本地改判值。 |
评对错 / 打分 切换 | 每个批改项固定展示 | 二选一互斥;切换后保留当前项已输入值。评对错 模式展示 对/错/半对 3 个按钮,打分 模式展示分数步进器。 |
| 对/错/半对按钮 | 评对错 模式展示 | 点击后将当前项切换为教师改判结果,并同步更新分数;再次点击当前已选中的教师结果,恢复 AI 原始结果。 |
| 分数步进器 | 打分 模式展示 | 仅允许输入 0 到 max_score 的整数;点击加减或直接输入后,系统自动反推当前项判定为对/错/半对之一。 |
| 标准答案区 | 每个题目卡片底部展示 | 固定展示标准答案与解析摘要;只读,不支持编辑。 |
- 题目改判与本地保存策略:
- 教师在抽屉中进行的对错判定、分数调整、恢复 AI 操作,先写入本地页面状态,不立即提交服务端。
- 切换题目、收起抽屉、切换页码时,本地未保存改动继续保留在当前学生会话中;只有点击
保存并下一页、保存并下一份、保存并退出或保存并查看分析时才提交服务端。
底部固定操作区
| 区域/控件 | 展示规则 | 交互与系统行为 |
|---|---|---|
一键全对 | 始终展示 | 点击后弹出二次确认弹窗。确认后,将当前学生当前作业下全部可批改题目直接写为“教师判对 + 满分”;不跨学生、不跨作业。 |
| 主按钮 | 始终展示 | 当入口页签为 pending 且 current_page_no < page_count 时,文案为 保存并下一页;当入口页签为 pending 且当前已是最后一页、同时仍存在下一位待批改学生时,文案为 保存并下一份;其余场景文案为 保存并退出。点击后先保存当前学生批改结果,再按文案执行跳转。参见 R57。 |
文案和按钮状态变化
第N页文案随页码即时变化;切页后提交记录的查询范围同步切换为新页。- 主按钮文案根据入口页签、当前页码和是否存在下一位待批改学生动态变化:
pending + 非最后一页 = 保存并下一页,pending + 最后一页 + 有下一位 = 保存并下一份,其余场景为保存并退出;从graded页签进入时,主按钮始终展示保存并退出。参见 R57。 一键全对始终可见,但在当前学生当前作业无可批改题目时点击仅 Toast 提示当前作业暂无可批改题目,不弹确认框。- 当抽屉摘要处于收起态时,按钮文案为
展开;处于展开态时文案为收起。
页面跳转和返回逻辑
- 点击导航返回:返回
tm_grading_list.html,恢复离开前页签、分页和滚动位置。 - 点击
提交记录:进入tm_grading_history.html,默认打开当前页最新一条提交记录;从该页返回后,本页继续停留在原学生、原页码。 - 点击
保存并下一页:保存成功后停留在当前学生下,将current_page_no自动切换到下一页,并刷新该页卷面、题目热区和提交记录范围。 - 点击
保存并下一份:仅在当前学生最后一页展示;保存成功后进入同一作业、同一页签下的下一位待批改学生,并默认打开其第1页或服务端返回的default_page_no;若服务端返回不存在下一位,则降级为保存并退出返回列表。 - 点击
保存并退出:保存成功后返回tm_grading_list.html,并刷新当前学生所在列表状态。 - 点击
保存并查看分析:保存成功后进入tm_report.html;从报告页返回时恢复到本页当前学生和当前页码。
批量操作范围
- 本页不支持多学生选择,不提供批量保存、批量导出、批量备注、批量退回。
一键全对的作用范围仅为“当前学生 + 当前作业”的全部可批改题目,不跨学生、不跨班级、不跨作业。- 题目抽屉中的 AI 恢复、对错改判、打分调整均只作用于当前选中的批改项,不自动联动其他题目。
弹窗规格
弹窗 1:一键全对确认弹窗
| 要素 | 内容 |
|---|---|
| 触发条件 | 点击底部 一键全对 |
| 标题 | 确认一键全对? |
| 正文 | 确认后,将把当前学生本次作业的全部可批改题目直接标记为正确并写入满分。 |
| 主按钮 | 确认全对 → 将当前学生全部可批改题目写为教师判对+满分,保留在当前页等待教师继续保存或查看分析 |
| 次按钮 | 取消 → 关闭弹窗,不修改任何批改结果 |
| [x] 关闭 | 同 取消 |
弹窗 2:未保存离开确认弹窗
| 要素 | 内容 |
|---|---|
| 触发条件 | 当前存在未保存改动时,点击导航返回或跳转其他页面 |
| 标题 | 是否放弃本次修改? |
| 正文 | 你当前还有未保存的批改修改,离开后本次修改将丢失。 |
| 主按钮 | 放弃并离开 → 丢弃本次本地未保存改动并执行原跳转 |
| 次按钮 | 继续批改 → 关闭弹窗,停留当前页 |
| [x] 关闭 | 同 继续批改 |
- 业务规则:R18、R29、R34、R52、R54、R55、R56、R57。
异常描述
| 异常场景 | 处理方式 |
|---|---|
| 原卷加载失败 | 卷面区展示错误态和 重试 按钮;抽屉与底部保存按钮保留,但均置灰不可用。 |
| 当前页无可批改题目 | 保持卷面可查看;点击热区无响应。若当前学生整份作业均无可批改题目,底部 一键全对 点击 Toast 提示 当前作业暂无可批改题目。 |
| 提交记录接口返回空 | 点击 提交记录 后进入 tm_grading_history.html 空态,并提示 当前页暂无提交记录;不自动切换到其他页的记录。 |
| 保存失败 | 保留当前本地改判结果,不清空已输入内容;Toast 提示 保存失败,请重试。 |
| 下一页不存在 | 当主按钮原本应执行 保存并下一页 但当前页码已被服务端判定为最后一页时,重新计算主按钮文案并按 保存并下一份 或 保存并退出 执行,不允许停留在错误页码。 |
| 下一位学生不存在 | 保存并下一份 降级为返回列表,并 Toast 提示 当前已是最后一位待批改学生。 |
| 缩放超出边界 | 到达 50% 或 200% 时停止继续缩放;按钮点击无效,手势缩放回弹到边界值。 |
| 手势与点击冲突 | 长按拖移过程中不触发题目点击;若浏览器或容器中断手势识别,自动退出拖移模式并恢复普通点击。 |
数据需求
- 接口:
- 批改详情接口:返回学生信息、页数、默认页码、当前页原卷、题目热区、题目批改项、AI原始结果。
- 提交记录范围接口:按
student_id + homework_id + current_page_no返回当前页提交记录列表及默认记录。 - 保存批改接口:提交教师改判结果、操作来源、当前页码、是否一键全对。
- 下一位学生接口:按
homework_id + class_id + status=pending返回下一位待批改学生。
- 关键字段:
- 页面上下文:
homework_id、homework_type、class_id、student_id、student_name、current_page_no、page_count、current_submission_id、status。 - 题目维度:
question_id、question_type、max_score、hotzone、ai_judge、teacher_judge、teacher_score、answer_text。 - 交互状态:
zoom_ratio、drag_offset_y、active_question_id、has_unsaved_change、primary_action_type=next_page|next_student|exit。 - 来源标签:如接口返回
source_label=教研院,前端仅可用于日志透传或调试,不参与任何页面渲染。参见 R56。
- 页面上下文:
- 页面状态缓存:
tm_grading_context至少保存homework_id、student_id、status、current_page_no、page_count、current_submission_id、zoom_ratio、active_question_id、has_unsaved_change、primary_action_type,用于tm_grading_history.html往返恢复。
- 埋点:
- 页面浏览:记录
source_page、homework_id、student_id、status、默认页码。 - 卷面操作:记录翻页、热区点击、缩放按钮点击、双指缩放、长按拖移、抽屉展开/收起。
- 题目操作:记录 AI 恢复、判定切换、分数加减、直接输入分数、摘要展开/收起。
- 页面出口:记录点击
提交记录、一键全对确认/取消、保存并下一页、保存并下一份、保存并退出、保存并查看分析。
- 页面浏览:记录