发布作业
页面元信息
- 终端:教师 Web
- Astro 路由:
/teacher/publish - 原始 HTML:
t_publish.html - 来源章节:
4.2.5 - 维护规则:后续以本页面 PRD 为准;若改动影响通用规则,再同步总览 / 全局规则文档。
视觉描述
- 原型引用:
产出文档/作业管理模块/原型图/t_publish.html。 - 页面采用左右分栏:左侧 PDF 作业预览,右侧发布信息。
- 页面顶部左侧展示
退出文本按钮和页面标题“发布作业”;退出用于离开当前发布流程,需配套二次确认弹窗。 - 左侧预览区顶部展示
PDF作业预览标题及编辑试卷按钮,预览区以只读方式展示当前组卷结果生成的 PDF 内容。 - PDF 预览包含作业标题、年级学科信息、题目内容、作答区、页码等发布态卷面信息。
- 预览区底部信息拆分为两行:第一行展示总页数、总题数、总分,第二行独立展示
快捷跳页,避免与统计信息同行时在多页场景下自动换行导致版面凌乱。 - 当总页数大于 5 页时,
快捷跳页区不得自动折行;需保持单行展示并支持页码输入后回车跳转。 - 右侧展示试卷概览、作业标题、按年级分组的班级选择、作业备注;页面底部固定
立即发布按钮。
功能描述
- 页面入口:从组卷工作台点击
完成后进入;前置条件为当前试卷已完成一次保存并成功生成可发布 PDF。 退出:- 点击顶部
退出时,必须弹出二次确认弹窗。 - 当前版本不支持发布页自动保存;教师确认退出后返回
t_homework_list.html,本页未发布的标题、班级、备注修改不保留。
- 点击顶部
- PDF 预览:
- 展示当前最新一次组卷结果生成的 PDF,只支持浏览,不支持在发布页直接编辑卷面内容。
- 预览区用于教师发布前最终核对题目、版式、页码和总分信息,避免带错卷进入发布流程。
- 加载策略采用“首屏前 2 页优先渲染,其余页按滚动位置懒加载”的方式;加载中展示页级骨架占位,避免多页 PDF 首次进入时卡顿。
- 默认按整卷连续滚动浏览;点击
快捷跳页后滚动定位到对应页并高亮当前页码。 - 当总页数大于 5 页时,页码区展示
首页、上一页、当前页邻近页码、下一页、末页,并支持输入页码后回车跳转;不使用自动换行方案。
编辑试卷:- 点击后返回
t_composition.html继续修改试卷内容。 - 返回组卷工作台后,发布页已填写的
作业标题、选择班级、作业备注与当前预览定位页需保留不丢失。 - 教师从发布页返回并修改了卷面结构后,原 PDF 预览视为失效;需重新点击组卷工作台的
完成生成最新 PDF 后,才可再次进入发布页并执行发布。
- 点击后返回
- 班级选择:
- 按年级分组展示当前教师可发布班级,支持年级内全选与多班级选择。
- 点击年级标题可折叠/展开班级列表;年级内全部班级选中后,年级操作按钮切换为
取消全选;部分选中时需展示半选态。 - 支持跨年级混选;教师可在多个年级分组下同时勾选班级,系统按最终勾选班级范围完成一次发布,不因试卷展示年级信息而限制选择范围;页面无需额外展示“支持跨年级混选”提示文案。
- 作业标题:必填,教师在发布页输入基础标题;系统在发布成功时自动生成最终标题 =
基础标题 + 空格 + M月D日(不含年份),例如“第三单元随堂练习 4月8日”;若当前教师名下已存在同名最终标题,则在日期后追加递增后缀(1)/(2)/(3),如“第三单元随堂练习 4月8日(1)”;若(1)已存在,则继续生成(2),以此类推。 - 作业备注:选填,最多 200 字;输入过程中实时显示字数计数,达到上限后不可继续输入。
- 立即发布:
- 按钮常驻展示。
- 当
作业标题已填写、至少选择 1 个班级且当前 PDF 有效时,可执行发布。 - 点击后按钮进入发布中状态并禁用,防止重复提交。
- 发布成功后 Toast 提示,并跳转作业中心。
退出确认弹窗规格
| 触发条件 | 标题 | 正文 | 按钮行为 |
|---|---|---|---|
教师点击顶部 退出 | 确认退出发布页? | 当前编辑内容尚未发布,退出后本次填写的作业标题、班级选择、作业备注不会自动保存。是否确认退出? | 取消:关闭弹窗并停留当前页;确认退出:返回 t_homework_list.html;点击右上角关闭或遮罩层,等同 取消 |
异常描述
- 点击
退出时误触离开、未选班级、标题为空、PDF 预览不可用时,阻断发布并在对应区域给出明确提示。 - 教师从发布页返回
编辑试卷后,如未重新生成 PDF 即试图直接恢复旧发布态并发布,系统应阻断并提示“试卷内容已变更,请重新生成后再发布”。 - 发布过程中按钮需进入提交中状态,防止重复点击导致重复发布。
- 发布失败时保留当前表单内容与班级勾选结果,教师可直接重试。
快捷跳页输入页码超出有效范围时,提示“请输入 1~N 页之间的页码”,并保持当前预览位置不变。- 总页数大于 5 页时若页码导航区域渲染失败,不允许降级为自动换行,应回退为仅保留
上一页/下一页和页码输入跳转。 - 标题自动补全日期与序号后若仍产生命名冲突或生成失败,需阻断发布并提示“作业标题生成失败,请稍后重试”。
数据需求
- 接口:
- 获取发布预览:返回当前可发布 PDF 地址、页数、题数、总分及试卷摘要信息。
- 获取班级树:返回当前教师可选班级及所属年级分组。
- 发布作业:提交作业基础标题、班级范围、备注、当前 PDF 版本标识并完成发布。
- 标题校验/重名判定:用于生成最终展示标题。
- 状态与缓存:
- 需保留发布页表单草稿数据,支撑“编辑试卷返回组卷工作台再回到发布页”场景下的数据恢复。
- 需缓存
publish_context,至少包含raw_title、selected_class_ids、remark、current_preview_page,用于t_composition.html与t_publish.html之间往返恢复。 - 需记录当前 PDF 版本标识,用于判断教师返回编辑后旧预览是否失效。
- 加载策略:
- 需返回
page_count、initial_page_urls或等价分页渲染信息,支撑预览区首屏优先加载和后续懒加载。
- 需返回
- 字段:需区分
raw_title(教师输入基础标题)与display_title(系统生成最终标题),列表页、批改页、报告页统一展示display_title。 - 埋点:
- 页面浏览:记录入口来源(组卷工作台完成进入/编辑试卷后再次进入)。
- 预览操作:PDF 浏览、快捷跳页按钮点击、快捷跳页输入跳转、点击
编辑试卷。 - 表单操作:作业标题输入、班级选择、备注填写。
- 退出操作:点击
退出、退出确认取消、退出确认离开。 - 发布结果:点击
立即发布、发布成功、发布失败原因。