提交记录
页面元信息
- 终端:教师小程序
- 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_page、homework_type、date_filter、status_filter、subject_filter、page_no、scroll_top、updated_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_result或tm_submission_status.html返回本页时,若 tm_history_context 丢失,则按默认筛选和首屏排序展示,同时记录异常日志;不得进入空白页。 |
数据需求
-
接口:
- 提交记录列表接口:
- 入参至少包含
teacher_id、school_id、homework_type=personal、date_range_key、record_status、subject_code、page_no、page_size、source_page。 - 出参至少包含
record_id、parent_record_id、homework_id、homework_type、homework_name、source_type、source_label、subject_code、subject_name、subject_short、remark、submit_time、total_photo_count、success_photo_count、abnormal_photo_count、record_status、can_view_upload_result、can_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枚举至少包含success、partial_abnormal两种,用于驱动卡片状态文案和颜色。- 个性化作业记录列表响应中,不应依赖
teaching_aid_name、edition_name、publisher_name等教辅字段;如后端历史接口暂存此类字段,前端也不得用于本页展示。参见 R44。 - 补拍提交生成的新记录必须记录
parent_record_id或等价关联字段,用于串联“原记录 -> 补拍记录”的历史关系。参见 R45。 - 页面需维护
tm_history_context,至少包含homework_type=personal、筛选条件、分页信息和滚动位置,用于回跳恢复。参见 R46。
- 本页必须以
-
埋点:
- 页面浏览:记录
source_page、homework_type、默认筛选值、首屏记录数、异常记录数。 - 筛选过程:记录筛选胶囊点击、弹层曝光、筛选项选择、筛选结果数、是否命中空结果。
- 列表过程:记录卡片曝光、列表滚动深度、分页加载成功/失败。
- 卡片操作:记录点击
查看上传结果、点击查看作业提交情况,需带record_id、homework_id、record_status、abnormal_photo_count、source_type。 - 底部入口:记录点击
提交作业,需带source_page=tm_history、homework_type=personal、是否命中未完成上传任务恢复。 - 异常与空态:记录首屏加载失败曝光、分页失败曝光、无记录空态曝光、筛选无结果空态曝光、记录不可查看提示曝光、作业提交情况不可查看提示曝光。
- 页面浏览:记录