作业列表
页面元信息
- 终端:教师 Web
- Astro 路由:
/teacher/homework-list - 原始 HTML:
t_homework_list.html - 来源章节:
4.2.2 - 维护规则:后续以本页面 PRD 为准;若改动影响通用规则,再同步总览 / 全局规则文档。
视觉描述
- 原型引用:
产出文档/作业管理模块/原型图/t_homework_list.html。 - 页面采用教师 Web 标准布局:左侧一级导航高亮“作业管理”,二级导航区分“个性化作业”“纸质教辅作业”;当前原型展示“个性化作业”视图。
- 顶部区域展示当前作业类型标题、学科下拉、教师身份信息;内容区顶部包含“已发布作业”页签和“新建作业”主按钮。
- 筛选区包含班级下拉、状态下拉、作业标题搜索框、发布时间起止日期,筛选区下方为作业表格。
- 表格列项依次为作业标题、学科、班级、提交进度、发布时间、状态、操作;作业标题前允许展示蓝色来源标签“教研院”。
- 提交进度采用“人数文本 + 进度条”双重反馈;鼠标悬浮在提交进度区域时展示 Tooltip,用于查看按班级分组的已提交/未提交学生明细。
- 状态标签使用灰色“待提交”、橙色“待批改”、绿色“已完成”三种视觉样式;操作列根据作业实际进展展示 0~2 个操作按钮。
- 当前原型未展示分页器,本页需补齐长列表加载占位与翻页承接方案。
功能描述
- 页面入口:教师从
t_home.html首页进入“作业管理”,或在t_publish.html发布成功后自动回流至本页。 - 作业类型切换:
- “个性化作业”“纸质教辅作业”共用同一列表框架、筛选区和操作规则,仅列表数据源、顶部标题、报告统计口径按作业类型区分。
- 默认进入教师上次停留的作业类型;若无历史记录,则默认进入“个性化作业”。
- 学科切换:
- 顶部学科下拉用于切换当前列表上下文,仅展示教师在该学科下有权限查看的作业。
- 切换学科后保留当前作业类型,重置班级、状态、关键词、时间筛选为默认值,并重新拉取第一页数据,避免跨学科筛选条件串用。
- 筛选与搜索规则:
- 班级筛选为单选,选项来源于教师任教班级,默认“全部班级”。
- 状态筛选为单选,选项包含“全部状态 / 待提交 / 待批改 / 已完成”,默认“全部状态”。
- 搜索框按作业标题关键字模糊搜索,支持回车触发;搜索需同时匹配教师输入的基础标题和系统生成后的最终标题,避免标题追加日期后无法按原始标题检索;清空关键字后恢复当前筛选结果。
- 发布时间支持开始日期与结束日期区间过滤,可单侧生效;若开始日期晚于结束日期,前端阻断查询并提示修正。
- 列表展示与统计口径:
- 默认按发布时间倒序展示,最新发布的作业排在最前。
- 作业标题展示发布后的最终标题,生成规则为
基础标题 + 空格 + M月D日;若当前教师名下已存在同名最终标题,则在日期后追加递增序号(1)/(2)/(3),例如“第三单元随堂练习 4月8日”“第三单元随堂练习 4月8日(1)”。 - 多班级发布时,“班级”列展示聚合班级名称;“提交进度”按作业维度展示
已提交人数 / 应提交人数。 - 学生至少成功提交 1 页即计入“已提交人数”;补交、重传、覆盖上传不重复累计人数。
- 当
source = research_institute时,作业标题前展示“教研院”标签,用于标识教研端分发作业;该类作业在教师端仅允许查看、批改、分析,不提供删除或修改入口。 - 鼠标悬浮在“提交进度”区域时,Tooltip 按班级分组展示已提交名单与未提交名单,便于教师快速定位未交学生。
- 作业标题在本期仅作为主识别信息展示,不承接独立详情页跳转,避免引入当前目录中不存在的
t_homework_detail.html链路。
- 状态与操作绑定:
- 状态判定优先级:先判断是否存在未完成最终成绩确认的已提交答卷;若存在则列表状态显示为
待批改。若不存在,再判断是否仍有学生未提交;若存在则显示为待提交。仅当全部应交学生已提交且全部成绩已确认时,显示为已完成。 待提交:作业已发布,当前不存在待批改/待确认答卷,但仍存在未提交学生。包含两种业务子态:①全部学生未提交;②部分学生已提交且当前已提交部分已批阅完毕,但仍有学生未提交。待提交操作规则:若submitted_student_count = 0,操作列不展示行操作;若submitted_student_count > 0且已提交部分已批阅完成,则展示批改作业(用于复查已批内容)和作业分析。待批改:当前至少存在 1 份已提交但未完成最终成绩确认的答卷;该状态可发生在“仍有学生未提交”或“已全部提交”两种场景。展示批改作业,在已有批改结果或报告已生成时展示作业分析。已完成:全部应交学生已提交,且全部提交答卷均完成最终成绩确认;展示批改作业(用于复查或修正成绩)和作业分析。新建作业:页面级主按钮,始终可见,点击进入t_resource_center.html。
- 状态判定优先级:先判断是否存在未完成最终成绩确认的已提交答卷;若存在则列表状态显示为
- 跨端边界:
- 教师 Web 端不提供拍照代提交入口;代提交能力统一在教师小程序
tm_list.html链路承接,避免 PC 端与移动端职责混淆。
- 教师 Web 端不提供拍照代提交入口;代提交能力统一在教师小程序
- 加载与返回策略:
- 首屏加载 20 条记录,向下滚动触底后继续加载下一页;加载过程中使用表格骨架行占位。
- 教师从
t_grading.html或t_report.html返回本页时,需保留离开前的作业类型、学科、筛选条件和滚动位置。
异常描述
- 列表接口加载失败时,页面展示错误占位和“重试”按钮;已输入的筛选条件保留,便于教师重试查询。
- 教师当前学科下无任教班级或无可见作业时,页面展示空状态文案“当前学科暂无可管理作业”,并保留
新建作业入口。 - 筛选或搜索无结果时,展示筛选空状态和“清空筛选”快捷操作,不自动回退到全量列表。
- 发布时间区间非法时,前端即时提示“开始日期不能晚于结束日期”,不发起列表查询。
- 提交进度 Tooltip 明细加载失败时,降级只展示汇总人数和进度条;Tooltip 内提示“明细加载失败,请稍后重试”。
- 当作业无任何提交记录时,不允许进入
t_grading.html;若因缓存或过期链接触发跳转,系统需 Toast 提示“当前暂无可批改答卷”并回到列表。 - 当作业报告尚未生成或无批改结果时,不允许进入
t_report.html;若强制访问,系统提示“作业分析数据生成中,请稍后查看”。 - 触底加载下一页失败时,已加载数据需保留,列表底部展示“加载失败,点击重试”,避免整页刷新导致教师丢失定位。
数据需求
- 接口需求:
- 教师作业列表查询接口:入参包含
homework_type、subject_id、class_id、status、keyword、publish_start_date、publish_end_date、page_no、page_size。 - 提交进度明细接口:返回按班级分组的已提交名单、未提交名单、提交时间,用于 Tooltip 展示。
- 班级字典接口:返回教师任教班级及默认班级排序。
- 学科字典接口:返回教师可见学科集合及当前默认学科。
- 教师作业列表查询接口:入参包含
- 列表字段需求:
- 基础字段:
homework_id、homework_type、source、raw_title、display_title、subject_name、class_list、published_at、status。 - 统计字段:
assigned_student_count、submitted_student_count、graded_student_count、report_status、has_generated_report。 - 展示字段:
source_tag_text、status_tag_style、can_grade、can_view_report。
- 基础字段:
- 页面状态缓存:
- 前端需缓存当前作业类型、学科、筛选条件、分页游标、滚动位置,用于批改页/报告页返回后的状态恢复。
- 埋点需求:
- 页面浏览:记录入口来源(首页进入 / 发布成功回流 / 报告返回 / 批改返回)。
- 交互埋点:作业类型切换、学科切换、班级筛选、状态筛选、时间筛选、标题搜索、清空筛选、进度 Tooltip 打开。
- 行为埋点:
新建作业点击、批改作业点击、作业分析点击;均需上报homework_id、homework_type、status、submitted_student_count、graded_student_count。