教师小程序 / 提交记录
周策 老师
Prototype

教师小程序 · 提交记录

校验提交记录筛选、补拍入口和状态。

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

提交记录

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

当前对照重点: 提交记录
Review Hint

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

提交记录

页面元信息

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

视觉描述

  • 原型引用:产出文档/作业管理模块/原型图/tm_history.html
  • 页面为教师小程序单栏历史记录页,当前版本仅承接个性化作业页签下的教师代提交记录,不承接纸质教辅作业记录。页面自上而下分为导航栏、筛选胶囊条、提交记录列表区、空状态区、底部固定操作区5个层级,背景延续浅蓝到浅灰的渐变样式。
  • 顶部导航栏左侧为关闭图标,中间标题固定为提交记录,右侧为小程序胶囊占位区,仅承接系统级胶囊视觉样式,不作为业务入口。
  • 导航栏下方为横向筛选胶囊条,包含全部日期全部状态全部学科3个筛选入口。胶囊为白底灰字单行展示,选中后仅替换胶囊文案为当前值,不额外增加第二行摘要。
  • 列表区为纵向滚动卡片流。每张卡片顶部展示提交日期和蓝色时间圆点;卡片主体左侧展示按学科区分的彩色学科标识块,右侧展示作业名称、可选来源标签教研院、可选备注、上传结果汇总和状态提示。
  • 个性化作业提交记录卡片不得展示教材名称、教材版本、出版社等教辅信息。当前原型中的左侧彩色块仅表示学科标识,不表示教材封面;右侧信息区也不展示如语文三年级下册(人教版)等教材字段。参见 R44。
  • 卡片中的结果状态区分为两种视觉状态:
    • 上传成功:使用浅灰底普通态,文案展示{success_count}/{total_count}张成功,下方提示语为可查看当次上传结果与班级提交情况
    • 部分异常:使用浅橙底警示态,文案展示{success_count}/{total_count}张成功 · {abnormal_count}张异常,下方提示语为可查看当次上传结果,并仅对异常图片补拍
  • 卡片底部为双按钮操作区,左侧主按钮为查看上传结果,右侧次按钮为查看作业提交情况
  • 当列表为空时,页面主体展示空状态插画和文案暂无提交记录;底部固定主按钮提交作业仍然保留,用于继续进入教师小程序提交页个性化作业页签。

功能描述

  • 页面入口与适用范围:
    • 教师在 tm_list.html 当前顶部页签为个性化作业时,点击页面级快捷入口提交记录进入本页。
    • 教师在 tm_submit.html?mode=upload_result 点击返回提交记录,或在上传结果模式点击导航返回时,进入本页并恢复离开前的筛选条件、分页和滚动位置。参见 R46。
    • 教师在 tm_submission_status.html 查看完某条记录关联作业的提交情况后,点击返回回到本页,并恢复离开前上下文。参见 R46。
    • 当前版本如果教师在 tm_list.html 顶部页签为纸质教辅作业时点击提交记录,不得进入本页;需进入纸质教辅专属提交记录页。本页不混查纸质教辅数据。参见 R42。
    • 页面默认查询当前教师权限范围内、作业类型为personal的提交记录,默认按submit_time倒序展示,最新记录排在最前。参见 R43。
    • 页面上下文 tm_history_context 至少保存 source_pagehomework_typedate_filterstatus_filtersubject_filterpage_noscroll_topupdated_at

页面分区与控件交互

  • 本页按导航栏筛选胶囊区提交记录列表区底部固定操作区4个可交互分区展开说明;空状态仅替换列表区内容,不覆盖导航栏、筛选区和底部操作区。

导航栏

区域/控件展示规则交互与系统行为
左侧关闭图标始终展示点击后返回 tm_list.html,并恢复 tm_list_context 中的当前页签、筛选条件、分页和滚动位置;返回后的顶部页签必须为个性化作业。参见 R29、R42。
标题 提交记录始终展示固定文案,不随筛选条件、记录数量或来源页变化。
右侧小程序胶囊占位始终展示不承接业务点击事件,不打开筛选、不跳转详情、不参与埋点统计。

筛选胶囊区

区域/控件展示规则交互与系统行为
全部日期/当前日期范围始终展示;默认文案全部日期点击打开日期筛选底部单选弹层;选项至少包含全部日期以及平台下发的预置时间范围;点击某个选项后立即生效,关闭弹层,刷新列表并滚动到顶部。
全部状态/当前状态始终展示;默认文案全部状态点击打开状态筛选底部单选弹层;固定选项为全部状态 / 上传成功 / 部分异常;选择后立即生效。
全部学科/当前学科始终展示;默认文案全部学科点击打开学科筛选底部单选弹层;仅展示当前教师在个性化作业提交记录范围内实际存在记录的学科;选择后立即生效。
筛选结果刷新任一维度生效后触发日期、状态、学科3个维度之间按交集过滤;刷新时重置 page_no=1、滚动到顶部,并展示局部骨架屏。参见 R43。
筛选文案变化选中非默认值时触发胶囊文案替换为选中项名称;恢复全部时文案回退默认值;其他两个筛选维度保持原值不受影响。
  • 筛选弹层规格:

弹层 1:日期筛选底部弹层

要素内容
触发条件点击全部日期/当前日期范围胶囊
标题选择日期
正文单列展示全部日期 + 日期范围选项;当前选中项高亮并带勾选标识
主按钮无独立主按钮;点击某一项立即生效并关闭弹层
次按钮取消 → 关闭弹层,不修改当前结果集
[x] 关闭取消

弹层 2:状态筛选底部弹层

要素内容
触发条件点击全部状态/当前状态胶囊
标题选择状态
正文单列展示全部状态 / 上传成功 / 部分异常;当前选中项高亮
主按钮无独立主按钮;点击某一项立即生效并关闭弹层
次按钮取消 → 关闭弹层,不修改当前结果集
[x] 关闭取消

弹层 3:学科筛选底部弹层

要素内容
触发条件点击全部学科/当前学科胶囊
标题选择学科
正文单列展示全部学科 + 当前教师在个性化记录范围内存在记录的学科;当前选中项高亮
主按钮无独立主按钮;点击某一项立即生效并关闭弹层
次按钮取消 → 关闭弹层,不修改当前结果集
[x] 关闭取消

提交记录列表区

  • 列表加载策略:
    • 首屏加载 20 条记录,向下滚动触底后继续加载下一页 20 条。
    • 每条记录以单次提交批次为粒度,一次点击提交或一次点击补拍提交各自产生 1 条独立记录;补拍提交生成的新记录插入列表顶部,原记录继续保留。参见 R45。
    • 首屏加载中展示卡片骨架屏;分页加载中在列表底部展示加载反馈,不遮挡已加载卡片。
    • 若分页加载失败,保留已加载数据,在列表底部展示加载失败,点击重试
区域/字段/按钮展示规则交互与系统行为
提交日期每张卡片固定展示展示格式固定为 YYYY-MM-DD;当前页不在卡片层展示时分秒,完整提交时间在查看上传结果页展示。
学科标识块每张卡片固定展示使用学科色块 + 学科简称展示,如语 / 数 / 英;仅作为学科识别,不可点击;该区块不表示教材封面。参见 R44。
教材相关字段始终不展示个性化作业记录卡片必须隐藏教材名称、教材版本、出版社等教辅信息;即使后端返回相关字段,前端也不得在本页渲染。参见 R44。
作业名称每张卡片固定展示展示个性化作业标题;标题过长最多显示 2 行,超出省略。
来源标签 教研院仅当 source_type = research_institute 时展示紧跟在作业名称后,以小标签展示;不可点击,不单独跳转。
备注仅当 remark 非空时展示展示格式固定为备注:{remark};为空时整行隐藏,不保留占位。
状态汇总条每张卡片固定展示abnormal_photo_count = 0 时显示上传成功普通态;当 abnormal_photo_count > 0 时显示部分异常警示态,并追加异常张数。参见 R43。
状态提示文案每张卡片固定展示上传成功态显示可查看当次上传结果与班级提交情况部分异常态显示可查看当次上传结果,并仅对异常图片补拍
查看上传结果每张卡片固定展示为主按钮点击进入 tm_submit.html?mode=upload_result&recordId={record_id}&source_page=tm_history;页面需加载该批次全部上传图片。若记录包含异常图片,则在上传结果页中仅异常图展示!标记并开放补拍入口;若全部正常,则上传结果页仅允许回看,不展示补拍入口。参见 R04、R45。
查看作业提交情况每张卡片固定展示为次按钮点击进入 tm_submission_status.html?homework_id={homework_id}&homework_type=personal&class_id={class_id}&source_page=tm_history;该按钮查看的是当前作业在班级维度的提交情况,不是当前批次图片详情;查询范围必须限定在个性化作业当前页签,不跨纸质教辅记录聚合。参见 R42、R58。
  • 文案和按钮状态变化:
    • abnormal_photo_count > 0 时,卡片结果汇总区切换为橙色警示态,提示文案切换为可查看当次上传结果,并仅对异常图片补拍
    • abnormal_photo_count = 0 时,卡片结果汇总区为普通态,提示文案切换为可查看当次上传结果与班级提交情况
    • 补拍完成并再次提交成功后,历史列表新增一条记录;新增记录作业名称沿用原作业名称,不在列表卡片文案上追加(补拍),避免形成新的业务对象误解;补拍来源关系通过 parent_record_id 记录到数据层。
    • 当前页面不提供删除记录、撤销记录、重命名记录、批量导出记录等按钮,卡片按钮始终保持双按钮布局。

底部固定操作区

区域/控件展示规则交互与系统行为
提交作业始终展示为全宽主按钮点击进入 tm_submit.html?tab=personal&source_page=tm_history;若命中未完成上传任务,则优先恢复上传任务;若未命中恢复任务,则打开个性化作业提交页签。按钮文案固定为提交作业,不根据列表是否为空、筛选是否无结果而隐藏或禁用。参见 R07、R34、R46。

页面跳转和返回逻辑

  • 点击查看上传结果
    • 进入 tm_submit.html?mode=upload_result&recordId={record_id}&source_page=tm_history
    • 上传结果页返回时必须回到本页,而不是回到作业列表。
    • 返回后恢复进入前的筛选条件、已加载页数和滚动位置;如补拍提交成功,列表顶部插入新记录,并保持原筛选条件不丢失。参见 R45、R46。
  • 点击查看作业提交情况
    • 进入 tm_submission_status.html?homework_id={homework_id}&homework_type=personal&class_id={class_id}&source_page=tm_history
    • 返回时回到本页并恢复上下文;不重置筛选,也不重新定位到列表顶部。参见 R46。
  • 点击底部提交作业
    • 进入 tm_submit.html?tab=personal&source_page=tm_history
    • 若系统检测到存在未完成上传任务,则优先恢复上传任务,不以 tab=personal 覆盖恢复结果。参见 R07、R34、R46。
    • 若不存在未完成上传任务,则默认打开教师小程序提交页的个性化作业页签。
  • 点击导航栏关闭:
    • 返回 tm_list.html,并恢复 active_type=personal 的列表上下文。

批量操作范围

  • 本页不支持多选记录、不支持批量补拍、不支持批量删除、不支持批量导出、不支持批量查看提交情况。

  • 本页唯一的“批量作用”仅体现在筛选条件对当前列表结果集的展示裁剪,不修改任何提交、补拍、批改业务数据。参见 R43。

  • 任何单条记录上的操作均只作用于当前记录或当前记录关联作业,不允许一次点击同时影响多条历史记录。

  • 业务规则:R04、R07、R18、R42、R43、R44、R45、R46。

异常描述

异常场景处理方式
首屏记录加载失败页面主体展示错误占位,文案为提交记录加载失败,请稍后重试,提供重试按钮;导航栏和底部提交作业按钮继续可见。
分页加载失败保留已加载卡片,列表底部展示加载失败,点击重试;点击后仅重试下一页请求,不重新拉取首屏。
当前教师在个性化作业范围内暂无任何提交记录展示空状态插画和文案暂无提交记录;底部提交作业按钮继续可点击。
当前筛选条件下无结果展示空状态插画和文案暂无符合筛选条件的提交记录;保留筛选胶囊当前值,不自动回退为全部
筛选字典加载失败点击某个筛选胶囊时 Toast 提示筛选条件加载失败,请稍后重试,不打开弹层,不清空当前列表。
点击查看上传结果时记录已删除、越权或不可访问当前页停留不跳转,Toast 提示当前提交记录已不可查看;卡片保持原样,不自动移除。
点击查看作业提交情况时关联作业已删除、越权或不可访问当前页停留不跳转,Toast 提示当前作业提交情况不可查看
网络中断列表刷新、分页加载、动作校验失败时统一 Toast 提示网络连接异常,请检查后重试;不清空已加载卡片和当前筛选。
上下文恢复失败tm_submit.html?mode=upload_resulttm_submission_status.html返回本页时,若 tm_history_context 丢失,则按默认筛选和首屏排序展示,同时记录异常日志;不得进入空白页。

数据需求

  • 接口:

    • 提交记录列表接口:
      • 入参至少包含 teacher_idschool_idhomework_type=personaldate_range_keyrecord_statussubject_codepage_nopage_sizesource_page
      • 出参至少包含 record_idparent_record_idhomework_idhomework_typehomework_namesource_typesource_labelsubject_codesubject_namesubject_shortremarksubmit_timetotal_photo_countsuccess_photo_countabnormal_photo_countrecord_statuscan_view_upload_resultcan_view_submission_status
    • 筛选字典接口:
      • 返回日期范围字典、状态字典、学科字典。
      • 学科字典仅返回当前教师在个性化作业提交记录范围内存在记录的学科,不返回纸质教辅维度数据。参见 R42。
    • 提交记录详情接口:
      • tm_submit.html?mode=upload_result 根据 record_id 调用,返回该批次全部图片、图片状态、异常原因、是否允许补拍、补拍来源关系。
    • 作业提交情况接口:
      • tm_submission_status.html 根据 homework_id + homework_type=personal + class_id 调用,返回当前班级的提交统计和学生提交状态;不得跨作业类型聚合。
  • 状态与字段约束:

    • 本页必须以 record_id 作为唯一主键,以单次提交批次作为列表粒度;同一作业可对应多条记录。
    • record_status 枚举至少包含 successpartial_abnormal 两种,用于驱动卡片状态文案和颜色。
    • 个性化作业记录列表响应中,不应依赖 teaching_aid_nameedition_namepublisher_name 等教辅字段;如后端历史接口暂存此类字段,前端也不得用于本页展示。参见 R44。
    • 补拍提交生成的新记录必须记录 parent_record_id 或等价关联字段,用于串联“原记录 -> 补拍记录”的历史关系。参见 R45。
    • 页面需维护 tm_history_context,至少包含 homework_type=personal、筛选条件、分页信息和滚动位置,用于回跳恢复。参见 R46。
  • 埋点:

    • 页面浏览:记录 source_pagehomework_type、默认筛选值、首屏记录数、异常记录数。
    • 筛选过程:记录筛选胶囊点击、弹层曝光、筛选项选择、筛选结果数、是否命中空结果。
    • 列表过程:记录卡片曝光、列表滚动深度、分页加载成功/失败。
    • 卡片操作:记录点击查看上传结果、点击查看作业提交情况,需带 record_idhomework_idrecord_statusabnormal_photo_countsource_type
    • 底部入口:记录点击提交作业,需带 source_page=tm_historyhomework_type=personal、是否命中未完成上传任务恢复。
    • 异常与空态:记录首屏加载失败曝光、分页失败曝光、无记录空态曝光、筛选无结果空态曝光、记录不可查看提示曝光、作业提交情况不可查看提示曝光。
当前这页已经是“原型 + 页面 PRD”评审工作台。跨页面规则请维护在总览 / 全局规则文档,页面细节请直接维护右侧页面 PRD。
Review Workspace - Prototype + Page PRD