学生作业报告
页面元信息
- 终端:教师小程序
- Astro 路由:
/teacher-mp/student-report - 原始 HTML:
tm_student_report.html - 来源章节:
4.3.10 - 维护规则:后续以本页面 PRD 为准;若改动影响通用规则,再同步总览 / 全局规则文档。
视觉描述
- 原型引用:
产出文档/作业管理模块/原型图/tm_student_report.html。 - 页面为教师小程序单学生作业报告页,自上而下固定包含
导航栏、学生信息头卡、作业评价与核心指标卡、知识点掌握分析卡、错题分布卡5个区域;页面不包含底部固定操作区,不包含学生切换、班级切换、筛选、导出等入口。 - 顶部导航栏左侧为返回图标,中间标题固定为
作业报告,右侧为小程序胶囊占位;导航栏只承担回跳功能,不展示更多业务操作。 - 学生信息头卡使用蓝色渐变背景,展示学生头像占位、学生姓名、班级名称、批改时间4项信息;头像为圆形首字占位,不展示学生学号、手机号等其他隐私字段。参见 R18。
- 作业评价与核心指标卡上半区展示
作业评价标题、评价等级大字、作业标题、学科/教材辅助信息、作业ID;下半区为2×2指标宫格,固定展示学生正确率、班级正确率、学生得分、班级得分4项。 - 作业信息区不展示
教研院来源标签;学科/教材辅助信息按有值字段拼接显示,若当前仅有学科,则只显示学科本身,如仅返回语文时页面只展示语文,不展示语文 ·或空教材文案。参见 R69。 知识点掌握分析与错题分布均为白底卡片,卡片头部左侧展示标题,右侧展示双色图例;图例下方为并列柱状图容器,每组柱图固定对比“学生”与“班级”两组数据。
功能描述
页面入口
- 入口一:教师在
tm_report.html的学生学情页签中,点击某个已提交/已生成报告学生卡片的作业报告按钮进入本页,需透传homework_id、student_id、source_page=tm_report、from_tab=students。 - 入口二:不开放其他正式入口。本期页面不从作业列表、提交记录、批改列表直接进入;若后续新增入口,仍需遵守“当前作业 + 当前学生”的单对象查看边界。
- 来源页中仅
data-status=submitted的学生卡片允许进入本页;未提交或未生成报告的学生不应开放该入口,避免教师在无数据场景下进入空白报告页。参见 R67。
页面范围与默认加载
- 本页统计范围固定为
当前作业 + 当前学生;班级对比数据仅用于展示该学生所在班级的汇总对照,不提供班级切换,不支持切换到其他学生。 - 页面首次加载必须基于
homework_id + student_id拉取报告概览、知识点对比、错题分布数据;成功后一次性渲染各卡片,失败则进入异常处理逻辑。 - 页面返回时必须恢复来源页
tm_report.html的学生学情页签、学生姓名搜索关键词和滚动位置。若存在tm_report_context,优先按其中的active_tab、student_keyword、students_scroll_top恢复;若来源页缓存缺失,则至少回到tm_report.html?tab=students。参见 R66。
页面分区与控件交互
- 本页按
导航栏、学生信息头卡、作业评价与核心指标卡、知识点掌握分析卡、错题分布卡5个交互分区展开说明。
导航栏
| 区域/控件 | 展示规则 | 交互与系统行为 |
|---|---|---|
| 左侧返回 | 始终展示 | 点击后优先返回 tm_report.html 的students页签,并按 tm_report_context.active_tab / student_keyword / students_scroll_top 恢复来源页上下文;若 source_page 或上下文缓存缺失,则降级返回 tm_report.html?tab=students。参见 R66。 |
标题 作业报告 | 始终展示 | 固定文案,不随学生姓名、评价等级、作业标题变化。 |
| 右侧胶囊占位 | 始终展示 | 不承接业务点击,不触发页面跳转,不参与业务埋点。 |
学生信息头卡
| 区域/控件 | 展示规则 | 交互与系统行为 |
|---|---|---|
| 学生头像占位 | 始终展示 | 优先展示学生头像;当前原型无头像上传能力时,以学生姓名首字生成圆形占位。只读,不可点击。 |
| 学生姓名 | 始终展示 | 展示 student_name;姓名过长按单行省略显示,不换行撑高头卡。 |
| 班级名称 | 始终展示 | 展示当前学生所属班级,如 二年级(2)班;不附加学校、年级编码等其他字段。 |
| 批改时间 | 当 review_time 有值时展示 | 展示最近一次形成当前报告口径的批改完成时间;无值时显示 --,不自动填充当前系统时间。 |
作业评价与核心指标卡
| 区域/控件 | 展示规则 | 交互与系统行为 |
|---|---|---|
标题 作业评价 | 始终展示 | 固定文案,不可点击。 |
| 评价等级 | 报告已生成时展示 | 展示学生当前作业评价等级,如 A/B/C;仅展示单值结果,不展开等级说明,不支持点击修改。 |
| 作业标题 | 当 homework_name 有值时展示 | 仅展示纯文本作业标题;即使接口返回 source_label=教研院,前端也不得在本区域拼接来源标签或来源说明。参见 R69。 |
| 学科/教材辅助信息 | 当存在至少1个辅助字段时展示 | 按 学科、教材/册次、其他辅助信息 的顺序对非空字段进行拼接;仅拼接有值字段。当只有学科时只显示学科,不保留分隔符占位。参见 R69。 |
| 作业ID | 当 homework_id 有值时展示 | 文案格式固定为 作业ID: {homework_id};无复制按钮、无点击跳转。 |
| 学生正确率 | 始终展示 | 展示当前学生正确率,格式固定为百分比,如 86.7%;值为只读。 |
| 班级正确率 | 始终展示 | 展示当前学生所在班级的整体正确率,格式固定为百分比;若班级对比数据缺失,则显示 --。 |
| 学生得分 | 始终展示 | 展示当前学生本次作业得分;不附加“分/满分”文案,不支持点击查看题目明细。 |
| 班级得分 | 始终展示 | 展示当前班级平均得分;若对比数据缺失则显示 --。 |
- 当前卡片为纯展示区,整卡及内部字段均不响应点击,不跳转
tm_student_analysis.html、tm_grading_history.html或其他页面。
知识点掌握分析卡
| 区域/控件 | 展示规则 | 交互与系统行为 |
|---|---|---|
卡片标题 知识点掌握分析 | 始终展示 | 固定文案,不支持改名和折叠。 |
图例 学生正确率/班级正确率 | 始终展示 | 使用蓝/绿双色图例说明柱图含义;图例仅做说明,不可点击隐藏系列。 |
| 柱状图 | 当 knowledge_stats[] 非空时展示 | 按接口返回顺序展示知识点分组;每组固定2根柱,分别表示学生正确率和班级正确率。柱高按百分比计算,不提供排序切换、Tooltip、点击下钻或横向筛选。 |
| 知识点标签 | 随柱组一起展示 | 展示当前分组对应的知识点名称;标签只读,不支持点击查看知识点详情。 |
- 本期知识点分析卡只承接“浏览当前学生与班级对比”能力,不扩展到知识点筛选、查看题目列表或跳转错题分析。
错题分布卡
| 区域/控件 | 展示规则 | 交互与系统行为 |
|---|---|---|
卡片标题 错题分布 | 始终展示 | 固定文案,不可点击。 |
图例 学生错题/班级错题 | 始终展示 | 使用蓝/绿双色图例说明当前图表对比维度;不支持开关系列。 |
| 柱状图 | 当 error_stats[] 非空时展示 | 按接口返回顺序展示题型或错题分类分组;每组固定2根柱,分别表示当前学生错题数和班级错题数。柱高按数量值换算,不支持点击柱图进入 tm_error_analysis.html。 |
| 分类标签 | 随柱组一起展示 | 展示 填空题、单选题 等分类名称;只读,不可点击。 |
文案和按钮状态变化
- 页面标题始终固定为
作业报告,不会随着学生姓名变化成“黄学生报告”等变体文案。 批改时间、评价等级、4个核心指标、2个图表数据均随student_id对应数据结果变化;当前页不提供学生切换按钮,因此页面内不会发生局部切换刷新。- 作业信息第2行文案遵循“只拼接有值字段”规则:有学科和教材时展示
语文 · 小学二年级下册;仅有学科时展示语文;全部为空时整行隐藏。参见 R69。 - 返回按钮始终可见且可用;右侧胶囊占位始终可见但无状态变化。
页面跳转和返回逻辑
- 点击来源页
tm_report.html学生卡片中的作业报告按钮后进入本页,来源页需保留自身students页签状态。 - 点击导航返回后:
- 若存在有效来源上下文,则回到
tm_report.html的学生学情页签; - 恢复学生姓名搜索关键词;
- 恢复离开前滚动位置;
- 不重置学生列表结果集。参见 R66。
- 若存在有效来源上下文,则回到
- 本页当前版本不提供跳转
tm_student_analysis.html、tm_grading_history.html、tm_error_analysis.html的按钮;教师若需查看题目明细,需返回来源页后再通过来源页既有入口进入。
批量操作范围
-
本页不支持批量操作,不提供批量导出、批量对比、批量批注、批量复制、批量跳转。
-
页面中所有展示内容仅作用于“当前学生 + 当前作业”;不跨学生、不跨班级、不跨作业进行合并展示。
-
图表中的“班级”仅为当前学生所属班级的对比维度,不支持横向切换其他班级,也不允许一次加载多班对比数据。
-
业务规则:R18、R52、R66、R67、R69。
异常描述
| 异常场景 | 处理方式 |
|---|---|
homework_id 或 student_id 缺失/失效 | Toast 提示 未找到对应学生报告,随后返回来源页;若无来源页则返回 tm_report.html?tab=students。 |
| 页面首次加载失败 | 页面主体展示错误态和 重试 按钮;点击 重试 重新请求报告接口,导航返回仍可使用。 |
| 学生尚未提交或报告未生成 | 页面展示空态文案 该学生暂无作业报告,保留导航返回;不以 0 值填充评价、得分、正确率和图表。 |
| 学生信息部分缺失 | 缺失字段按项兜底:姓名缺失时显示 未知学生,班级缺失显示 --,批改时间缺失显示 --;不得因为单字段缺失导致整页不可见。 |
| 核心指标部分缺失 | 单项指标缺失时显示 --;已返回的其他指标正常展示,不因局部字段缺失将全部指标清零。 |
| 知识点分析为空 | 保留卡片标题与图例,图表区展示空态文案 暂无知识点分析数据。 |
| 错题分布为空 | 保留卡片标题与图例,图表区展示空态文案 暂无错题分布数据。 |
| 教师无权限查看该学生数据 | Toast 提示 您暂无权限查看该学生报告,并返回来源页;不得泄露学生姓名、班级、分数等内容。参见 R18。 |
| 报告数据与最新批改结果存在同步延迟 | 页面显示最近一次成功生成的报告数据;若教师重新进入本页时服务端已完成刷新,则以最新保存时间对应的数据覆盖旧报告。参见 R52。 |
数据需求
- 接口:
- 学生报告概览接口:根据
homework_id + student_id返回学生基础信息、评价等级、作业信息、4个核心指标、报告状态。 - 知识点对比接口:返回
knowledge_stats[],用于渲染“学生正确率 vs 班级正确率”柱状图。 - 错题分布接口:返回
error_stats[],用于渲染“学生错题数 vs 班级错题数”柱状图。
- 学生报告概览接口:根据
- 请求参数:
homework_idstudent_idsource_page=tm_reportfrom_tab=students
- 返回字段建议:
- 学生信息:
student_id、student_name、student_avatar、class_id、class_name、review_time - 作业信息:
homework_id、homework_name、subject_name、book_name、term_name、source_label - 评价与指标:
evaluation_grade、student_accuracy、class_accuracy、student_score、class_score、report_status - 知识点图表:
knowledge_stats[].knowledge_name、knowledge_stats[].student_accuracy、knowledge_stats[].class_accuracy - 错题图表:
error_stats[].category_name、error_stats[].student_wrong_count、error_stats[].class_wrong_count
- 学生信息:
- 字段约束:
report_status至少支持ready / generating / empty / failed;仅ready可渲染正式报告内容。student_accuracy、class_accuracy取值范围为 0-100,前端统一按百分比格式展示。student_wrong_count、class_wrong_count必须为大于等于 0 的整数。- 即使接口返回
source_label=教研院,前端也不得在本页标题区或作业信息区渲染该标签。参见 R69。 - 作业信息辅助字段必须按“仅拼接有值字段”规则输出展示文案;若仅有
subject_name,页面只显示学科,不展示多余分隔符。参见 R69。
- 页面状态缓存:
tm_student_report_context至少保存source_page、source_context_key=tm_report_context、homework_id、student_id、active_tab、student_keyword、students_scroll_top、updated_at,字段命名需与tm_report_context保持一致,用于返回来源页时直接复用同一套恢复口径。参见 R66。
- 埋点:
- 页面浏览:记录
source_page、from_tab、homework_id、student_id、report_status - 返回操作:记录点击返回时的
source_page、student_id、stay_duration - 卡片曝光:记录
summary_card_exposure、knowledge_chart_exposure、error_chart_exposure - 浏览深度:记录页面滚动到 25%/50%/75%/100% 的曝光节点,用于评估教师是否完整查看报告内容
- 页面浏览:记录