教师 Web / 作业报告
周策 老师
Prototype

教师 Web · 作业报告

校验作业分析、题目分析、学生学情三大页签。

设计视口: 1440 x 900 · 当前缩放: 100% · 左右分栏: 拖动中线调整
Page PRD

作业报告

当前文档: prds/作业管理模块/teacher-web/t_report.md

当前对照重点: 作业报告
Review Hint

左侧现在支持三种演示模式: 默认按设计稿完整缩放、按宽度铺满、以及 100% 原始尺寸滚动查看。 右侧默认读取当前页面对应的页面级 PRD,而不是整本总 PRD;改页面时,直接同步维护这个页面文档即可。

作业报告

页面元信息

  • 终端:教师 Web
  • Astro 路由:/teacher/report
  • 原始 HTML:t_report.html
  • 来源章节:4.2.7
  • 维护规则:后续以本页面 PRD 为准;若改动影响通用规则,再同步总览 / 全局规则文档。

视觉描述

  • 原型引用:产出文档/作业管理模块/原型图/t_report.html
  • 页面采用教师 Web 标准双栏导航布局,左侧为全局导航,右侧为主内容区;顶部栏包含 ← 返回、页面标题 作业报告 — {作业标题} 与右上角 刷新报告 文本按钮。
  • 主内容区顶部优先展示 班级切换胶囊组,当作业仅发布到 1 个班级时隐藏该区域;当发布到多个班级时,默认高亮当前上下文班级,支持横向切换。
  • 班级切换下方为统一子页签区,包含 作业分析题目分析学生学情 三个页签;页签切换采用页内切流,不发生整页跳转或白屏刷新。
  • 作业分析 页签由 基本信息卡核心指标六宫格知识点分析表知识点雷达图 组成;核心指标区依次展示提交情况、批改情况、最高分、最低分、题目错误率 Top5、学生作业评价分布。
  • 题目分析 页签采用左主右辅双栏结构:左侧为题目诊断卡片流,右侧为筛选面板;每张题目卡包含题型标签、错误率、错误次数、作答次数、错题人数、难度、题干正文,以及 加入作业篮解析 两个主动作按钮。
  • 学生学情 页签采用左侧数据表、右侧筛选面板布局;左侧表格包含 ID、学生姓名、学号、正确率、评价、批改时间、操作列,表头提供 复制名单 快捷入口,并在评价列标题区域展示现有 一键全A 快捷操作。
  • 页面右下角常驻 作业篮悬浮胶囊,展示已选题量;点击后从右侧滑出 作业篮抽屉。抽屉内包含题量/总分汇总、一键清空进入选题中心进入排版 以及分题型折叠的题目列表。
  • 页面内包含 未提交名单弹窗;弹窗展示当前班级未提交学生清单、页码状态格、全选与复制能力。页面整体还需支持骨架屏、局部 Loading、空状态和失败态占位。

功能描述

  • 页面入口:
    • 从首页或 t_homework_list.html 点击 作业报告/查看报告 进入。
    • t_grading.html 点击 保存并查看分析 进入。
    • 从批改完成弹窗点击 查看作业报告 进入。
  • 页面权限与数据范围:
    • 仅任课教师、班主任或具备当前作业所属班级数据权限的教师可进入;越权访问时不展示任何学生明细与分数数据。
    • 页面中所有统计、学生名单、题目错误率、评价结果均严格限定在“当前作业 + 当前班级”范围内,不跨班聚合展示。
  • 页面初始化与数据加载:
    • 进入页面后必须校验 作业ID 是否有效;无效或缺失时直接返回 t_homework_list.html 并提示“未找到对应作业”。
    • 首次进入默认加载 作业分析 页签数据;题目分析学生学情 采用首次进入页签时懒加载,避免一次性并发请求过多。
    • 若来源为 t_grading.html 或批改完成弹窗,则优先带入该批改链路中的 班级ID;若来源为列表/首页,则默认选中教师最近一次查看的班级,若无历史则选中作业发布班级列表的第一个班级。
    • 若来源为 t_error_analysis.htmlt_student_evaluation.html 的“返回报告”,必须优先恢复 report_context,包括班级、页签、筛选条件和当前学生定位。
  • 页面级全局控件:
区域/控件展示规则交互与系统行为
← 返回始终展示点击后返回 t_homework_list.html,并恢复列表页上一次的筛选条件与滚动位置;不返回批改页。
页面标题始终展示固定格式为 作业报告 — {作业标题};标题过长时单行省略,悬浮显示完整标题。
刷新报告始终展示;刷新进行中禁用点击后重新拉取当前班级、当前页签所需数据;刷新过程中保留当前页签和筛选状态,不回退到默认页签。
班级切换胶囊仅当发布班级数 > 1 时展示点击胶囊切换当前班级,保留当前页签;若当前处于 题目分析学生学情,需在新班级下继续沿用当前筛选条件重新查询。
子页签始终展示页签切换不改 URL,不整页跳转;当前激活态写入 report_context.active_tab
作业篮悬浮胶囊始终展示展示全局作业篮题量;题量为 0 时仍可点击打开空抽屉。
  • 数据保留与回退策略:
    • 页面需持久化 report_context,至少包含 homework_idselected_class_idactive_tabquestion_filtersquestion_sortstudent_filterscurrent_student_idsource_page
    • 切换班级、切换页签、打开/关闭未提交名单弹窗、打开/关闭作业篮抽屉时,不得丢失当前会话内已录入的筛选条件。
    • 从报告页下钻到 t_error_analysis.htmlt_student_evaluation.html 后返回时,需恢复到离开前的班级、页签、筛选条件与滚动位置。

作业分析页签

  • 作业分析 为默认页签,用于呈现当前班级下该次作业的整体完成与学情概览。
  • 页面区域与字段说明:
区域字段/按钮规则与说明
基本信息卡作业标题读取发布成功后的最终作业标题,禁止显示草稿标题。
基本信息卡发布班级展示该作业全部发布班级;当前查看班级需在列表中高亮或通过顶部胶囊体现。
基本信息卡发布时间YYYY-MM-DD HH:mm 格式展示最终发布时间。
基本信息卡题目数量展示当前作业题目总数,取发布版本,不随班级切换变化。
基本信息卡总分展示作业满分值,单位固定为“分”。
基本信息卡备注无备注时显示 ,不留空白。
提交情况卡提交率、提交人数、查看未提交名单提交率 = 已提交人数 / 应提交人数;点击 查看未提交名单 打开未提交名单弹窗。
批改情况卡批改进度、已批改人数、批改修正批改进度 = 已批改人数 / 已提交人数;仅当当前班级存在至少 1 份已提交答卷时展示可点击态,否则按钮置灰并提示“暂无可修正答卷”。
最高分卡最高分值仅统计已完成最终批改的学生;并列最高分只展示数值,不展示人数。
最低分卡最低分值仅统计已完成最终批改的学生;未产生有效成绩时显示计算中或
题目错误率卡Top5 错题摘要固定展示当前班级错误率最高的 5 道题;按错误率倒序,若错误率相同则按题目顺序升序。
学生作业评价分布卡A-E 占比仅统计已生成评价结果的学生;若评价体系未生效,则展示“暂无评价数据”。
知识点分析表知识点、上级知识点、正确率、掌握情况掌握情况 由后端规则引擎直接返回,前端只负责渲染标签与色值,不在前端二次判定。
知识点雷达图前 N 个重点知识点掌握度默认取当前作业覆盖度最高且有作答数据的前 5 个知识点;当不足 3 个知识点时不渲染雷达图,改为表格空态说明。
  • 信息说明图标(?)统一交互:
    • 鼠标悬浮显示 Tooltip,内容包含统计口径、分母范围与排除逻辑。
    • Tooltip 文案由后端返回或配置中心统一维护,避免前后端口径不一致。
  • 批改修正 交互:
    • 点击后进入 t_grading.html,并透传 homework_idselected_class_idsource_page=t_report
    • 若当前班级存在未完成最终批改的学生,则优先定位到首个待处理学生;若已全部批改,则进入已批阅查看/修正状态。
  • 查看未提交名单 交互:
    • 打开弹窗后默认展示当前班级的未提交或欠交学生,不跨班显示。
    • 关闭弹窗后仍停留在当前页签,不触发整页刷新。

题目分析页签

  • 题目分析 用于帮助教师定位共性错误题,并从报告页直接回流到再出题链路。
  • 区域与交互说明:
区域字段/按钮规则与说明
列表头部错误人数 排序首次进入默认按 错误率 倒序;点击 错误人数 在升序/降序之间切换,并同步更新箭头方向。
列表头部错误率 排序错误人数 互斥,只允许一个排序字段生效。
题目卡片 Header题型标签按题目真实题型渲染,如选择题、填空题、解答题。
题目卡片 Header错误率、错误次数、作答次数均基于当前班级统计;错误率分母为有效作答人数。
题目卡片 Header错题人数以链接态展示;点击后进入 t_error_analysis.html,并自动带入当前题目筛选。
题目卡片 Header难度星级读取题库已有难度标签;缺失时显示 暂无难度标签
题目卡片 Body题干正文支持富文本、公式、图片混排;内容过长时完整展示,不做卡片内截断。
题目卡片 Footer加入作业篮 / 取消加入未加入时为品牌色主按钮;加入后切换为 取消加入 次按钮态;点击不跳页,只更新全局作业篮。
题目卡片 Footer解析 / 收起首次点击时展开卡片下方解析区,展示试题答案、试题解析、知识点、教材章节;再次点击收起。
右侧筛选面板题目类型下拉支持单选;默认 全部
右侧筛选面板知识点下拉支持单选;默认 全部
右侧筛选面板筛选点击后按当前筛选条件重新查询;保留当前排序字段。
右侧筛选面板重置清空题型与知识点筛选,恢复默认排序和默认结果集。
  • 列表加载策略:
    • 首屏加载 20 道题目卡片;滚动到底部自动加载下一批 20 道,直到当前作业题目全部加载完成。
    • 筛选或排序变化后,结果列表回到顶部并重新从第 1 批开始加载。
    • 题目解析区按卡片维度延迟加载,避免列表首屏请求体过大。
  • 加入作业篮 交互细则:
    • 加入成功后,右下角作业篮悬浮胶囊题量立即 +1,抽屉头部题量与总分同步刷新。
    • 取消加入后,如当前题目为作业篮中最后一题,对应分组从抽屉中移除;若抽屉整体为空,切换回空状态。
    • 当前页已加入题目在切换班级、切换页签后返回时,按钮需保持已加入态。
  • 作业篮回流链路:
    • 报告页与资源中心共用同一个全局作业篮容器。
    • 教师可在报告页完成选题积累,再通过抽屉中的 进入选题中心 返回 t_resource_center.html 继续选题,或直接点击 进入排版 进入 t_composition.html

学生学情页签

  • 学生学情 用于查看当前班级下已提交学生的个人表现、评价结果和后续下钻入口。
  • 区域与交互说明:
区域字段/按钮规则与说明
顶部工具行提交人数固定展示当前班级已提交人数 / 应提交人数。
顶部工具行复制名单复制当前班级、当前筛选结果下的学生名单;复制内容默认格式为 姓名(学号) 每行一条。
数据表ID展示学生内部唯一标识,仅教师可见。
数据表学生姓名按真实姓名展示;若启用投屏脱敏模式,则应复用脱敏组件。
数据表学号展示校内学号;缺失时显示
数据表正确率统计当前作业已判分题目的正确率;悬浮 ? 展示计算口径。
数据表评价展示当前学生最终作业评价等级;字母样式按等级色彩区分,点击评价字母与点击 作业评价 均进入 t_student_evaluation.html,其中评价字母默认定位到评价摘要区域。
数据表一键全A位于表头评价列区域,作为现有批量评价快捷操作展示;点击后统一弹出二次确认。
数据表批改时间展示该学生最近一次最终批改完成时间;尚未批改完成时显示 待批改
数据表错题分析点击进入 t_error_analysis.html,默认定位到当前学生。
数据表作业评价点击进入 t_student_evaluation.html,默认定位到当前学生。
右侧筛选面板学生评价下拉支持按 A/B/C/D/E 单选过滤;默认 全部
  • 列表加载策略:
    • 首屏加载 20 名学生记录;向下滚动时追加加载后续 20 条。
    • 当前页签切换或班级切换后需保留评价筛选条件,但学生列表需回到顶部重新加载。
    • 若当前筛选结果为 0,展示空状态 暂无符合条件的学生,而非空白表格。
  • 复制名单 交互:
    • 默认复制当前筛选结果内的全部学生,而不是仅复制当前屏幕可见行。
    • 复制成功 Toast:已复制{N}名学生名单;复制失败时回退为弹窗展示纯文本,便于手动复制。
  • 一键全A 交互:
    • 仅作用于“当前班级 + 当前评价筛选结果 + 已批改完成学生”集合,不跨班、不跨作业、不处理未批改记录。
    • 执行成功后需同步刷新当前表格中的评价字段,以及 作业分析 页签中的评价分布卡片。
    • 若当前结果集为空、当前结果集均未批改或当前结果集全部已为 A,则按钮置灰,不允许触发。
  • 下钻链路:
    • 点击 错题分析 进入 t_error_analysis.html,透传 homework_idclass_idstudent_idsource_page=t_reportsource_tab=student_condition
    • 点击 作业评价 进入 t_student_evaluation.html,透传同样的上下文参数;返回时恢复当前页签和所选学生所在列表位置。

作业篮抽屉规格

区域/控件展示规则交互与系统行为
作业篮悬浮胶囊始终展示点击打开右侧抽屉;显示当前全局作业篮题量。
抽屉标题区始终展示展示 已选{题量}题共{总分}分
抽屉关闭 × / 遮罩始终展示点击右上角 ×、点击抽屉外遮罩或按 ESC 均关闭抽屉,不清空作业篮。
一键清空题量 > 0 时可用点击弹出确认弹窗;确认后清空当前全局作业篮。
进入选题中心始终展示跳转 t_resource_center.html,保留当前作业篮内容。
进入排版题量 > 0 时可用跳转 t_composition.html;题量为 0 时按钮置灰。
题型分组标题对应题型存在题目时展示点击折叠/展开该题型分组。
题目条目删除每个条目均展示删除当前题目并实时刷新题量、总分、按钮态。
拖拽手柄原型存在视觉手柄本期先按视觉占位处理,不作为正式必交付交互;若后续确认支持拖拽排序,需在组卷工作台统一定义排序规则。

弹窗规格

弹窗 1:未提交名单弹窗

要素内容
触发条件点击 作业分析 页签提交情况卡中的 查看未提交名单
标题未提交名单 + 当前班级名称
正文展示当前班级未提交/欠交学生列表;每行包含勾选框、学生姓名、页码状态格。绿色表示该页已提交,灰色表示未提交或欠交页码。
主按钮复制名单 → 复制当前勾选学生及其欠交信息,复制格式为 姓名(欠交第X、Y页)
次按钮无独立底部次按钮;通过 × 或遮罩关闭
[x] 关闭关闭弹窗,不清空当前报告页筛选状态;默认保留本次勾选状态直到弹窗关闭

补充规则:

  • 全选 仅作用于当前弹窗结果集;单项勾选变化需反向同步全选状态。
  • 若未勾选任何学生即点击 复制名单,提示 请先勾选需要复制的学生
  • 支持点击遮罩关闭、点击右上角 × 关闭、按 ESC 关闭。

弹窗 2:作业篮清空确认弹窗

要素内容
触发条件点击作业篮抽屉中的 一键清空
标题清空作业篮
正文确认清空当前作业篮中的全部题目吗?清空后需重新加入。
主按钮确认清空 → 清空全局作业篮、更新悬浮胶囊与抽屉为空状态
次按钮取消 → 关闭弹窗,保持作业篮不变
[x] 关闭取消

弹窗 3:一键全A确认弹窗

要素内容
触发条件学生学情 页签点击表头 一键全A
标题确认一键全A
正文确认将当前班级、当前筛选结果内的已批改学生评价统一调整为 A 吗?该操作会覆盖原评价结果。
主按钮确认调整 → 执行批量更新,成功后刷新表格与评价分布
次按钮取消 → 关闭弹窗,不执行任何修改
[x] 关闭取消
  • 业务规则:R09、R18、R22、R23、R24、R25、R26、R27。

异常描述

异常场景处理方式
页面初始化失败(作业ID 无效、接口 404、无权限)展示整页错误态,提供 返回作业列表重试 两个入口;无权限时文案为 您暂无权限查看该作业报告
报告未生成或批改未完成对应卡片/图表区域展示 报告生成中批改未完成,暂无法计算,禁止用 0 值或空图误导教师。
某个图表或模块单独加载失败仅该模块展示局部失败态与 重新加载 按钮,其他模块继续可用。
切换班级后数据计算延迟当前页签展示骨架屏,顶部保留当前班级高亮,不允许误以为切换失败;超过 10 秒未完成需提示教师可手动刷新。
题目分析 筛选结果为空左侧题目流展示空状态 暂无符合条件的题目,右侧筛选面板保留已选条件并支持重置。
学生学情 筛选结果为空表格区域展示空状态 暂无符合条件的学生,保留筛选面板。
未提交名单为空弹窗正文展示空状态 当前班级暂无未提交学生,并隐藏复制按钮或置灰。
未提交名单复制失败保底展示可复制纯文本框,并提示 复制失败,请手动复制
学生名单复制失败提示 系统复制失败,请重试,并提供纯文本回退。
作业篮同步失败保持当前按钮态不变,提示 加入作业篮失败,请稍后重试;不得出现按钮已切换但抽屉未更新的脏状态。
作业篮为空仍点击 进入排版按钮置灰不可点击,不触发跳转。
批改修正 跳转失败保持停留在报告页,提示 进入批改页失败,请稍后重试
一键全A 批量更新失败保持原评价结果不变,提示失败原因;如部分成功,需返回明确成功/失败人数,不允许静默覆盖。
下钻页返回时上下文恢复失败回退到当前作业报告的默认 作业分析 页签,并提示 已为你恢复到报告首页
超大班额或长列表加载卡顿启用分批加载与骨架屏,超过阈值时提示 数据较多,正在分批加载

数据需求

  • 接口:
    • GET /homework/report/summary:获取作业基本信息、提交情况、批改情况、最高分、最低分、评价分布。
    • GET /homework/report/knowledge:获取知识点分析表与雷达图数据。
    • GET /homework/report/questions:按班级、题型、知识点、排序字段获取题目分析列表。
    • GET /homework/report/students:按班级、评价筛选获取学生学情列表。
    • GET /homework/report/unsubmitted:获取当前班级未提交/欠交学生列表及页码状态。
    • POST /homework/report/refresh:触发当前作业报告重新计算或刷新缓存。
    • POST /question-basket/addPOST /question-basket/removePOST /question-basket/clear:作业篮增删清空。
    • POST /homework/report/batch-evaluation:执行 一键全A 批量评价更新。
  • 状态与缓存:
    • 需缓存 report_context,至少包含 homework_idselected_class_idactive_tabquestion_filtersquestion_sortstudent_filterscurrent_student_idsource_page
    • 需缓存 report_module_status,区分 idleloadingsuccessemptyerrorcalculating,用于模块级渲染。
    • 作业篮需复用教师 Web 全局 question_basket_context,至少包含 basket_idquestion_counttotal_scorequestion_idssource_page
    • 从报告页下钻到 t_error_analysis.htmlt_student_evaluation.html 时,需透传完整 report_context,用于子页面返回恢复。
  • 统计口径:
    • 提交率 = 已提交人数 / 应提交人数。
    • 批改进度 = 已完成最终批改人数 / 已提交人数。
    • 题目错误率 = 当前题目错误人数 / 当前题目有效作答人数。
    • 学生评价分布 = 当前班级已生成评价的学生人数占比。
    • 知识点正确率与掌握情况由后端按统一规则引擎返回,前端不自行计算。
  • 埋点:
埋点事件触发时机关键参数
teacher_report_view页面首屏渲染完成homework_idclass_idsource_page
teacher_report_refresh_click点击 刷新报告homework_idclass_idactive_tab
teacher_report_tab_switch点击任一页签时homework_idclass_idfrom_tabto_tab
teacher_report_class_switch点击班级胶囊时homework_idfrom_class_idto_class_idactive_tab
teacher_report_unsubmitted_open打开未提交名单弹窗时homework_idclass_id
teacher_report_unsubmitted_copy在未提交名单弹窗执行复制时homework_idclass_idselected_count
teacher_report_question_filter点击 筛选homework_idclass_idquestion_typeknowledge_point_id
teacher_report_question_sort切换排序字段或方向时homework_idclass_idsort_fieldsort_order
teacher_report_basket_add点击 加入作业篮取消加入homework_idclass_idquestion_idaction_type
teacher_report_basket_open打开作业篮抽屉时homework_idbasket_countsource_tab
teacher_report_basket_clear确认清空作业篮时homework_idbasket_count_before
teacher_report_goto_grading点击 批改修正homework_idclass_idactive_tab
teacher_report_student_copy在学生学情点击 复制名单homework_idclass_idstudent_filtercopied_count
teacher_report_batch_a_confirm确认执行 一键全Ahomework_idclass_idstudent_filteraffected_count
teacher_report_drill_error_analysis点击 错题分析 或题目卡 错题人数homework_idclass_idstudent_idquestion_idsource_tab
teacher_report_drill_evaluation点击 作业评价homework_idclass_idstudent_idsource_tab
当前这页已经是“原型 + 页面 PRD”评审工作台。跨页面规则请维护在总览 / 全局规则文档,页面细节请直接维护右侧页面 PRD。
Review Workspace - Prototype + Page PRD