学生端 / 作业分析
周策 老师
Prototype

学生端 · 作业分析

补齐学生作业分析与图表展示页。

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

作业分析

当前文档: prds/作业管理模块/student/s_homework_report.md

当前对照重点: 作业分析
Review Hint

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

作业分析

页面元信息

  • 终端:学生端
  • Astro 路由:/student/homework-report
  • 原始 HTML:s_homework_report.html
  • 来源章节:4.4.9
  • 维护规则:后续以本页面 PRD 为准;若改动影响通用规则,再同步总览 / 全局规则文档。

视觉描述

  • 原型引用:产出文档/作业管理模块/原型图/s_homework_report.html
  • 页面为学生端单作业分析页,整体采用移动端纵向滚动单列布局,自上而下固定包含导航栏学生信息头卡作业评价与核心指标卡知识点掌握分析卡错题分布卡学生提交原卷卡6个区域;页面不展示底部固定操作区,不提供分享、导出、筛选或记录切换入口。参见 R90、R94。
  • 顶部导航栏左侧为返回按钮,中间标题固定为作业报告,右侧为小程序胶囊占位;导航栏只承担回跳功能,不展示更多业务菜单。
  • 学生信息头卡使用蓝色渐变背景,展示学生头像占位、学生姓名、班级名称、最近一次形成当前报告口径的批改时间4项信息;头像为圆形首字占位,不展示学号、手机号等隐私字段。参见 R18。
  • 作业评价与核心指标卡由上下两层组成:上层左侧展示作业标题、作业ID、题目结构、备注,右侧展示作业评价字样与评级大字;下层固定为2×2指标宫格,依次展示学生正确率班级正确率学生得分班级得分
  • 标题区动态规则遵循原型:当入口透传 bookInfo 时,标题直接使用 bookInfo 且不追加 教研院 标签;当 bookInfo 缺失时,标题回退为报告内作业标题,并在来源标签为 教研院 时于标题右侧追加来源标签。参见 R92。
  • 知识点掌握分析错题分布均为白底图表卡片,卡片头部左侧展示标题,右侧展示双色图例;图例下方为并列柱状图容器,每个分组固定对比“学生”与“班级”两组数据。
  • 学生提交原卷卡位于页面底部,头部标题固定为学生提交原卷;标题下方为页码 pill 行,当前页 pill 为绿色高亮态,非当前页为灰色普通态;下方为单页原卷预览区域。
  • 页面需补齐4类界面状态:首屏骨架屏、报告生成中状态、报告空态/失败态、正式报告态。report_statusready 时,不渲染正式图表和指标数值。参见 R93。

功能描述

  • 业务规则:R13、R18、R53、R73、R90、R91、R92、R93、R94、R95。
  • 页面入口与来源参数:
    • 正式入口一:学生在 s_homework_list.html纸质教辅作业 > 我的作业中点击查看分析进入本页,需透传 from=list&hwKey={hw_key}&bookInfo={book_info}&homeworkTab=paper&subTab=my。参见 4.4.2。
    • 正式入口二:学生在 s_homework_list.html个性化作业 > 已完成卡片中点击查看分析进入本页,需透传 from=personal&hwKey={hw_key}&bookInfo={book_info}&homeworkTab=personal&personalStatus={当前筛选}。参见 4.4.2。
    • 兼容入口一:原型支持 from=history 的兼容来源参数;若外部以 from=history 打开本页,导航返回时需优先回到 s_history.html,并复用历史页既有筛选、分页与滚动恢复逻辑。当前版本不额外新增历史页内显式“查看分析”按钮。
    • 兼容入口二:原型支持 from=grading 且同时带 hwKeyrecordIdgradingStatus 的兼容来源参数;若外部以该场景打开,返回时需回到 s_ai_grading.html,并透传当前批改结果页恢复所需参数。该链路仅作为兼容回跳场景保留,不视为学生端正式入口;当前版本不在 s_ai_grading.html 新增显式“查看分析”按钮。参见 R91、R95。
    • URL 参数归一化规则:
      • from 仅接受 list / personal / history / grading,传入其他值时统一按 list 处理。
      • homeworkTab 仅接受 paper / personal,非法值默认回落为 paper
      • subTab 仅接受 my,其他值默认回落为 library
      • personalStatus 未传时默认按 all 保存返回上下文,不改变当前登录学生可见的作业范围。
      • hwKey 作为当前报告主查询键优先使用;若缺失,则退回使用 homeworkId。标题区展示的 作业ID 文案优先显示 hwKey,无 hwKey 时显示 homeworkId
      • 原型中的 studentId 仅用于原型预览切换示例数据;正式实现中必须以当前登录学生身份为准,不得允许通过 URL 改写为其他学生数据。若 URL 中 studentId 与当前登录学生不一致,按越权访问处理。参见 R18、R53。
  • 页面范围与默认加载:
    • 页面统计范围固定为当前登录学生本人 + 当前作业;班级维度仅作为该学生所属班级的只读对照基准,不支持切换其他班级、其他学生或其他作业。参见 R90。
    • 页面首次进入、重新进入或下拉刷新时,必须重新请求当前 hwKey/homeworkId 对应的最新报告摘要;若服务端返回 report_status=generating / empty / failed,页面进入对应状态页,不得沿用旧的正式报告缓存冒充最新结果。参见 R93。
    • 正式内容渲染顺序为:先请求报告摘要接口获取 report_status、作业基础信息、当前报告绑定的提交记录ID;仅当 report_status=ready 时,再渲染核心指标、知识点图表、错题图表和原卷分页预览。
    • 页面上下文 s_homework_report_context 至少保存 fromhwKeyhomeworkIdbookInfohomeworkTabsubTabpersonalStatusrecordIdgradingStatusreport_record_idcurrent_preview_page_noscroll_topupdated_at,用于回跳恢复和同会话内原卷页签记忆。

页面分区与控件交互

  • 本页按导航栏学生信息头卡作业评价与核心指标卡知识点掌握分析卡错题分布卡学生提交原卷卡6个交互分区展开说明。

导航栏

区域/控件展示规则交互与系统行为
左侧返回按钮始终展示点击后按返回优先级执行回跳:1)from=grading 且存在 hwKey 时,进入 s_ai_grading.html,并透传 from=listhwKeyrecordIdgradingStatus 以及当前 homeworkTab / subTab / personalStatus;2)from=history 时,进入 s_history.html 并透传 source_page=history,同时兼容原型中的 sourcePage=history 命名;3)其他情况返回 s_homework_list.html 并恢复当前页签/筛选上下文。若上下文缺失,则默认回到 s_homework_list.html?homeworkTab=paper&subTab=library。参见 R91。
标题 作业报告始终展示固定文案,不随作业名称、评价等级、报告状态或原卷页码变化。
右侧胶囊占位始终展示不承接业务点击,不打开菜单,不触发页面跳转,不参与业务埋点。

学生信息头卡

区域/控件展示规则交互与系统行为
学生头像占位始终展示优先展示学生头像;当前无头像上传能力时,以学生姓名首字生成圆形头像占位。只读,不可点击。
学生姓名始终展示展示当前登录学生姓名;姓名超长时单行省略,不换行撑高头卡。
班级名称始终展示展示学生当前所属班级,如 二年级(2)班;不附加学校、年级编码、学号等额外字段。
批改时间review_time 有值时展示正式时间;无值时展示 --展示当前报告口径对应的最近一次批改完成时间;不因页面打开时间或本地系统时间变化而自动刷新。

作业评价与核心指标卡

区域/控件展示规则交互与系统行为
作业标题正式报告态始终展示标题优先取入口透传 bookInfo;若 bookInfo 为空,则回退使用 homework_name。标题仅展示单条文本,不支持点击展开、编辑或复制。参见 R92。
教研院 来源标签仅当 bookInfo 为空且 source_label=教研院 时展示标签固定展示在标题右侧;若标题已采用透传 bookInfo,则必须隐藏该标签,不得出现“书名 + 教研院”双重来源文案。参见 R92。
作业ID正式报告态展示文案格式固定为 作业ID: {hw_key 或 homework_id};无复制按钮、无点击跳转。
题目结构正式报告态展示展示如 选择题10题,填空题5题,解答题2题 的结构摘要;只读,不可点击查看题目列表。
备注正式报告态展示展示教师布置作业时填写的备注;为空时显示 ;不支持展开富文本。
标题 作业评价始终展示固定文案,只读。
评价等级evaluation_grade 有值时展示展示 A/B/C/D/E 等单值评价;仅作为结果展示,不支持点击查看评级说明,不支持在本页更改。
学生正确率report_status=ready 时展示正式值前端统一按百分比格式展示,如 86.7%;无值时显示 --,不得显示 0% 占位。
班级正确率report_status=ready 且班级对比可见时展示正式值有值时按百分比展示;若班级对比数据不可见或服务端未返回,则显示 --,不回填 0。
学生得分report_status=ready 时展示正式值仅展示得分数字,不附加“分/满分”文案,不跳转题目明细。
班级得分report_status=ready 且班级对比可见时展示正式值展示班级平均得分;无值时显示 --
  • 当前卡片为纯展示区,整卡及内部字段均不响应点击,不跳转 s_history.htmls_ai_grading.html 或题目明细页。

知识点掌握分析卡

区域/控件展示规则交互与系统行为
卡片标题 知识点掌握分析始终展示固定文案,不支持改名、折叠或筛选。
图例 学生正确率 / 班级正确率正式报告态展示默认展示蓝色学生系列与绿色班级系列;若班级对比数据不可见,则仅保留学生系列说明,并在卡片内补充辅助文案 仅展示我的数据
柱状图分组knowledge_stats[] 非空时展示按接口返回顺序逐组渲染,不额外排序。每组固定渲染学生与班级2根柱。学生/班级正确率按百分比映射柱高,计算基准固定为 100;为避免低值在移动端完全不可见,单柱最小视觉高度为 6px,但不改变真实统计值。
知识点标签随每组柱图一起展示展示当前分组对应的知识点名称;名称过长时单行省略,不支持点击展开或进入知识点详情。
  • 本期知识点分析卡只承接“浏览当前学生与班级对比”能力,不扩展到知识点筛选、查看题目列表、查看解析或跳转错题本。

错题分布卡

区域/控件展示规则交互与系统行为
卡片标题 错题分布始终展示固定文案,不支持点击。
图例 学生错题 / 班级错题正式报告态展示默认展示蓝色学生系列与绿色班级系列;若班级对比数据不可见,则仅保留学生系列说明,并在卡片内补充辅助文案 仅展示我的数据
柱状图分组error_stats[] 非空时展示按接口返回顺序展示题型或错题分类分组;每组固定2根柱,分别表示学生错题数和班级错题数。柱高换算基准取 max(当前结果集中最大错题数, 4),以兼容原型示例的 4 档高度;单柱最小视觉高度为 6px,但不改变真实统计值。
分类标签随每组柱图一起展示展示 填空题单选题 等分类名称;只读,不可点击。
  • 本期错题分布卡不提供点击题型进入错题详情、筛选题型、切换排序或查看做错题目名单的能力。

学生提交原卷卡

区域/控件展示规则交互与系统行为
卡片标题 学生提交原卷report_status=ready 时展示固定文案,只读,不支持点击。
页码 pillreport_pages[] 长度大于等于 1 时展示page_no 升序渲染。默认第1个可预览页为激活态;当前页使用绿色高亮样式,非当前页使用灰色普通态。点击非当前页 pill 时,仅切换当前预览页并刷新下方原卷图片,不刷新评价、指标和图表;点击当前激活 pill 不重复请求。参见 R94。
原卷预览框当前存在有效预览页时展示加载当前页原卷图片;切页时显示局部 Loading/Skeleton,成功后替换为目标页图片。预览区为只读浏览,不支持缩放、长按保存、下载、批注或切换其他提交记录。
原卷空态占位当前报告绑定记录无原卷图片时展示显示图片占位图标与文案 暂无原卷预览原卷图片暂不可用;不额外弹窗,不跳转提交记录页。
  • 当前页面的原卷预览固定绑定当前报告对应的 report_record_id;即使当前作业存在多次历史提交,本页也不提供记录切换控件,不允许从报告页切换其他提交记录。参见 R94。
  • 当原卷仅有 1 页时,只渲染 1 个激活态页码 pill;不为不存在的页码补灰色占位 pill。

文案和按钮状态变化

  • 页面标题始终固定为作业报告,不会随着作业名、评价等级或报告状态变化成其他变体文案。
  • 标题区动态渲染遵循原型逻辑:bookInfo 有值时,标题直接展示 bookInfo 且隐藏 教研院 标签;bookInfo 为空时,标题使用报告返回的 homework_name,并按 source_label 判定是否展示 教研院 标签。参见 R92。
  • 评价等级、4个核心指标、2张图表和原卷页签均随当前报告数据变化;本页不提供学生切换控件,因此不会发生“局部换学生”刷新。
  • 学生正确率 / 班级正确率 固定展示为百分比,学生得分 / 班级得分 固定展示为纯数字;任一字段缺失时展示 --,不得展示 0 占位。
  • 知识点图表与错题图表的单柱最小视觉高度固定为 6px;即使真实值为 0,也允许保留最小视觉柱高,以避免移动端分组完全消失。测试验证时应以接口值为准,不以柱高像素推断真实统计值。
  • 原卷页码 pill 的状态切换规则固定为:当前页 active 绿色高亮,非当前页 inactive 灰色普通态;切页后只切换 pill 样式和原卷图片,不联动其他卡片内容。

页面跳转和返回逻辑

  • s_homework_list.html 点击查看分析进入本页后,来源页必须保留离开前的 homeworkTab / subTab / personalStatus / scroll_top 上下文。参见 R73。
  • 本页正式主链路仅承接作业列表卡片上的查看分析按钮;from=grading 仅用于兼容返回,不作为测试验收时必须可见的显式入口。参见 R95。
  • 导航返回的具体逻辑如下:
    • from=personal 时,返回 s_homework_list.html?homeworkTab=personal&personalStatus={当前 personalStatus},并恢复个性化作业列表筛选和滚动位置。
    • from=list 时,返回 s_homework_list.html?homeworkTab=paper&subTab={当前 subTab},并恢复纸质教辅页签和滚动位置;当前正式入口默认 subTab=my
    • from=history 时,返回 s_history.html 并复用 s_history_context 恢复日期/状态/学科筛选、分页和滚动位置;正式实现统一透传 source_page=history,同时兼容原型中的 sourcePage=history 命名。
    • from=grading 且存在 hwKey 时,返回 s_ai_grading.html,并透传 from=listhwKeyrecordIdgradingStatus 以及当前列表上下文;该行为与原型兼容逻辑保持一致。参见 R91。
    • 当来源参数缺失或非法时,默认返回 s_homework_list.html?homeworkTab=paper&subTab=library
  • 本页当前版本不提供跳转 s_history.htmls_ai_grading.html、错题详情页、知识点详情页、题目详情页的显式按钮;所有图表与卡片均为页内只读浏览。

批量操作范围

  • 本页不支持批量操作,不提供批量导出、批量分享、批量加入错题本、批量下载原卷或批量切换提交记录。
  • 图表中的“班级”仅表示当前学生所属班级的对照数据,不支持一次加载多班对比,也不支持跨学生横向对比。参见 R90。
  • 原卷页码切换仅作用于当前报告绑定提交记录下的页级预览,不跨记录、不跨作业生效。参见 R94。

异常描述

异常场景处理方式
hwKey / homeworkId 缺失、失效或不属于当前登录学生Toast 提示 未找到对应作业分析,随后按返回优先级回到来源页;不得展示任何学生姓名、分数、班级对比或原卷内容。参见 R18。
URL 中 studentId 与当前登录学生不一致按越权访问处理:Toast 提示 您暂无权限查看该作业分析,随后返回来源页;不得读取或缓存目标学生数据。参见 R18、R53。
页面首次加载失败页面主体展示错误态和 重试 按钮;点击 重试 重新请求报告摘要和内容接口。导航返回仍保持可用。
report_status=generating页面展示状态文案 作业分析生成中,请稍后查看;不渲染正式评价、得分、图表与原卷页签,不以骨架屏长期占位。参见 R93。
report_status=empty页面展示空态文案 暂无分析数据,请稍后重试;保留导航返回,不以 0 值填充任何指标。参见 R93。
report_status=failed页面展示错误态文案 作业分析生成失败,请稍后重试重试 按钮;点击重试重新请求报告。参见 R93。
班级对比数据不可见或服务端未返回指标卡中的 班级正确率班级得分 显示 --;2张图表仅渲染学生系列,并在卡片内补充 仅展示我的数据 提示;不得把班级数据回填为 0。
知识点分析为空保留卡片标题,图表区展示空态文案 暂无知识点分析数据
错题分布为空保留卡片标题,图表区展示空态文案 暂无错题分布数据
原卷分页为空或原卷图片缺失保留 学生提交原卷 卡片标题;若无页码则展示 暂无原卷预览;若有页码但图片加载失败,则保留页码 pill 并展示 原卷图片暂不可用
原卷切页失败保持当前已成功展示的原卷页不变,Toast 提示 原卷加载失败,请稍后重试;不得清空已加载的其他卡片内容。
报告数据与最新批改结果存在同步延迟页面展示最近一次成功生成的报告结果;当学生重新进入页面或下拉刷新时,若服务端已完成刷新,则以最新报告覆盖旧内容。若尚未刷新完成,则展示 作业分析生成中,请稍后查看

数据需求

  • 接口:
    • 学生作业分析摘要接口:根据 hwKey/homeworkId + 当前登录学生ID 返回报告状态、学生基础信息、作业基础信息、评价等级、4个核心指标以及当前报告绑定的提交记录ID。
    • 知识点掌握接口:返回 knowledge_stats[],用于渲染学生正确率 vs 班级正确率柱状图。
    • 错题分布接口:返回 error_stats[],用于渲染学生错题数 vs 班级错题数柱状图。
    • 报告原卷分页接口:返回当前报告绑定提交记录下的 report_pages[],用于渲染页码 pill 和原卷图片预览。
  • 请求参数:
    • hw_keyhomework_id
    • homework_tab
    • from
    • record_id(仅 from=grading 兼容场景透传)
    • grading_status(仅 from=grading 兼容场景透传)
    • page_no(切换原卷页码时传递)
  • 返回字段建议:
    • 学生信息:student_idstudent_namestudent_avatarclass_idclass_namereview_time
    • 作业信息:hw_keyhomework_idhomework_namebook_infoquestion_structure_textremarksource_label
    • 报告摘要:report_statusevaluation_gradestudent_accuracyclass_accuracystudent_scoreclass_scorereport_record_id
    • 知识点图表:knowledge_stats[].knowledge_nameknowledge_stats[].student_accuracyknowledge_stats[].class_accuracy
    • 错题图表:error_stats[].category_nameerror_stats[].student_wrong_counterror_stats[].class_wrong_count
    • 原卷分页:report_pages[].page_noreport_pages[].image_urlreport_pages[].image_status
  • 字段约束:
    • report_status 至少支持 ready / generating / empty / failed;仅 ready 可渲染正式报告内容。参见 R93。
    • student_accuracyclass_accuracy 取值范围为 0-100,前端统一按百分比格式展示。
    • student_scoreclass_score 建议返回数值型字段;若缺失,则前端展示 --
    • class_accuracyclass_score 允许返回 null,用于表达“班级对比数据不可见”,不得强制下发 0 占位。
    • report_record_id 为当前报告绑定的唯一提交记录ID;原卷分页接口必须仅返回该记录的页面,不得把其他历史提交记录混入当前报告页。参见 R94。
    • report_pages[] 必须按 page_no 升序返回;若只有 1 页,只返回 1 条记录,不补不存在页。
    • 标题渲染遵循“入口 bookInfo 优先、来源标签后置补位”的规则;当 bookInfo 已透传时,前端不得再拼接 教研院 标签。参见 R92。
  • 页面状态缓存:
    • s_homework_report_context 至少保存 fromhwKeyhomeworkIdbookInfohomeworkTabsubTabpersonalStatusrecordIdgradingStatusreport_record_idcurrent_preview_page_noscroll_topupdated_at,用于返回来源页与恢复原卷当前页。
  • 埋点:
    • 页面浏览:student_homework_report_view,记录 hw_key/homework_idhomework_tabfromreport_status
    • 返回操作:student_homework_report_back_click,记录 fromstay_durationreport_status
    • 图表曝光:student_homework_report_knowledge_exposurestudent_homework_report_error_exposure
    • 原卷切页:student_homework_report_page_switch,记录 report_record_idfrom_page_noto_page_no
    • 状态曝光:student_homework_report_generating_exposurestudent_homework_report_empty_exposurestudent_homework_report_failed_exposure
    • 浏览深度:记录页面滚动到 25%/50%/75%/100% 的曝光节点,用于评估学生是否完整查看作业分析
当前这页已经是“原型 + 页面 PRD”评审工作台。跨页面规则请维护在总览 / 全局规则文档,页面细节请直接维护右侧页面 PRD。
Review Workspace - Prototype + Page PRD