模块二:大型考试
大型考试用于管理有明确日期、起止时间和科目安排的正式考试,例如月考、期中考试、期末考试和模拟考试。
数据结构
一场大型考试包含:
大型考试
├─ 名称,例如“高三一模”
├─ 适用范围,例如“高三”或“全校”
└─ 多个分考试
├─ 语文:具体开始与结束时间
├─ 数学:具体开始与结束时间
└─ 英语:具体开始与结束时间先创建大型考试容器,再逐科添加分考试。只有创建了启用的分考试,大屏才有可执行的具体安排。
考试切换和年级范围
后台按当前年级显示适用考试。切换年级后,会自动选择该年级对应的考试;全校考试会出现在所有年级绑定设备上。
大屏不使用管理员后台当前选中的年级,而是根据设备实际绑定班级自动匹配。因此在后台切换年级不会改变其他教室设备的班级绑定。
考试中心的三个板块
V2.8.0 起,「考试中心」把大型考试相关页面收成三个板块,作为左侧主导航下的二级子项:
| 板块 | 作用 |
|---|---|
| 当前考试 | 只读实时态势:大倒计时、上一场 / 当前 / 下一场,底部显示数据同步、服务端与在线设备状态 |
| 考试安排 | 按天分组列出待开始与进行中的考试,支持筛选、搜索、视图与密度切换,并提示时间冲突 |
| 历史考试 | 已结束的考试,按自然月分组;归档的考试默认隐藏,勾选「显示已归档的考试」可打开 |
创建、修改与结束考试都在「考试安排」里完成,「当前考试」只负责展示实时状态。

可以执行的操作
- 新建、切换、设置和删除大型考试;
- 设置全校或指定年级范围;
- 添加、编辑、启用、停用和删除分考试;
- 调整分考试顺序;
- 导入或导出大型考试 JSON;
- 网页预览并导出 A4 PDF;
- 查看考试状态和科目数量;
- 删除后立即撤销;
- 使用批量预设快速创建分考试:科目多选、时间选择器、自定义科目名与全校共享预设;
- 大型考试冲突会给出醒目提醒,新建弹窗支持更大尺寸与立即开始。
- 编辑考试:以弹窗打开,不离开考试中心,关闭后回到原来的筛选与滚动位置。
时间校验
保存分考试时系统会检查:
- 科目名称不能为空;
- 开始和结束时间不能为空;
- 结束时间必须晚于开始时间;
- 与其他启用科目重叠时要求再次确认;
- 超过 6 小时的考试要求确认是跨天或特殊安排。
如果只是暂时不想显示某科,可停用该科,不必立即删除。
范围优先级
同一时间存在不同范围的正式考试时,调度优先使用更具体的范围:
班级范围 > 年级范围 > 全校范围新建大型考试界面主要提供全校或年级范围。已有兼容数据仍按调度规则处理。
考试记录管理(V2.8.0 新增)
V2.8.0 起,每场考试都有独立记录,页面会显示状态、生命周期和操作历史。

考试列表
进入「大型考试」后,列表支持按以下条件筛选:
| 筛选项 | 说明 |
|---|---|
| 状态 | 草稿 / 待开始 / 进行中 / 停止中 / 已结束 / 历史归档 |
| 年级、班级 | 按适用范围过滤 |
| 来源 | 正式排考或快速发布 |
| 时间范围 | 按考试日期过滤 |
| 创建人 | 按操作账号过滤 |
| 关键词 | 搜索考试名称或编号 |
列表分页显示,并会自动按账号的数据范围过滤——年级管理员只能看到本年级的记录。归档后的考试默认不出现在列表里。
考试详情
点开一场考试可以看到:
- 生命周期时间线:什么时候自动开考、暂停、申请停止、结束、归档;
- 累计暂停时长:暂停时间不计入实际用时;
- 操作记录:谁在什么时间做了什么操作,包含原始状态和目标状态;
- 创建人:显示创建人的姓名,旧数据没有姓名时回落到账号标识;
- 设备状态:按「显示异常 → 在线 → 离线」排序,同一组内按最近在线时间倒序。 设备较多时会优先展示需要处理的教室,并单独给出未绑定设备的班级和正在显示其它考试的台数。

详情窗口顶部可以直接「发送公告」「公告管理」「编辑考试」;底部是操作条, 可以直接暂停、延长(填写分钟数并可附备注)、申请停止与复制。 如果计划时间为空,会注明系统仍会按原计划时间自动开考;由系统创建的考试,创建人显示为「系统」。
编辑考试(弹窗)
考试中心的行、日程轴的行、当前考试面板和新建向导的第二步,都用同一份编辑器面板, 以弹窗形式叠在当前页面上:
- 科目与时间改完直接关闭即可,修改会自动保存并同步到云;
- 关闭后回到原来的位置,筛选条件与滚动位置都保留;
- 弹窗内部还会再打开批量添加、导入、时间选择器、打印预览等子弹窗, 此时按 Esc 或点遮罩只会关掉最上面那一层;
- 整页地址
/admin/exam/editor仍然可用,作为深链和兜底入口。
生命周期操作
创建即发布:新建考试保存后就是「已发布」,不再需要单独点发布;到达计划开始时间后由系统 自动开考并记录实际开始时间,不需要人工点「开考」。
| 操作 | 说明 |
|---|---|
| 暂停 | 暂停时长不计入实际用时,倒计时冻结 |
| 继续 | 结算本轮暂停时长,结束时间顺延 |
| 延长 | 顺延结束时间(需提供幂等键,防止重复提交) |
| 申请停止 | 提交停止申请;系统按「到结束时间 → 教室端全部结束 → 10 分钟无在线设备」判定后自动结束 |
| 强制结束 | 停止申请迟迟没有被系统判定时的兜底入口,立即结束 |
| 归档 | 从默认列表隐藏,保留历史。快速考试结束后默认保留 24 小时再自动归档(可用 QUICK_EXAM_ARCHIVE_GRACE_HOURS 调整,0 表示立刻归档) |
| 反归档 | 从归档状态恢复 |
| 复制 | 复制一场考试用于下次使用(需提供幂等键)。复制结果先落在草稿,改完再发布 |
合法状态转换才允许执行,非法的跳转会返回冲突提示。所有转换都会写入审计日志, 时间类操作还会在列表与详情里提示「时间已调整」并说明改动前后的时间。
状态是怎么算出来的
持久保存的状态只有四个:草稿 → 已发布 → 已结束 → 已归档。 「待开始 / 进行中 / 停止中」是按考试时间窗、实际开考时间和暂停时长推导出来的展示状态, 不单独存库,因此不会出现状态和时间对不上的情况。新建考试保存后直接进入「已发布」, 草稿一般只出现在两类情况:复制出来的考试,以及科目时间还没填全的记录。
考试公告下发
V2.8.0 起,学校可以自己向教室大屏下发考试公告,和作者端的软件公告是两条互不影响的通道 (两条通道的区别见公告与使用文档)。
| 选项 | 取值 |
|---|---|
| 投放范围 | 全校 / 指定年级 / 指定班级 |
| 级别 | 普通(大屏上可关闭)/ 紧急(置顶,不可关闭) |
| 大屏样式 | 标准卡片 / 大字海报 / 公告栏 |
| 有效期 | 30 分钟 / 2 小时 / 当天 / 不过期 |
- 正文支持 Markdown(
##小标题、**加粗**、- 列表)与图片,单张图片不超过 2MB; - 点发送后会先弹出「发布前确认」,用大屏上同一套排版预览内容与范围,确认无误再发送;
- 发出后教室大屏1 分钟内更新;
- 公告记录可按状态(生效中 / 已过期 / 已撤回)、级别、范围筛选,需要时随时撤回;
- 紧急公告会盖过作者端的软件公告,并且在大屏上无法关闭——发布前务必确认范围没有选错。
- 弹出方式可选「自动弹出(推荐)」或「只进列表(不打扰)」;选自动弹出时, 公告在考试进行中和夜间(22:00–06:00)都会正常弹出,紧急公告还会置顶显示并且不可关闭。
- 常用内容可以「存为模板」,下次发布直接「套用模板」;套用只带标题、正文、样式与级别, 投放范围和有效期保持当前设置。
- 页面顶部的「公告概览」按所选时间段给出公告条数、平均回执率、已送达台次与覆盖教室数, 并列出回执率最低的几条,方便确认教室大屏是否真的收到了。
- 回执口径:公告在大屏上可见过半、标签页在前台并累计停留满 3 秒才算「已读」, 滚动路过、切后台、锁屏都不算,所以刚发布时回执率偏低是正常的。
- 需要补提醒时可以只针对未读设备再提醒一次(也可以选全部设备); 单条公告可以展开查看每台设备的应达 / 送达 / 已读情况。
投放范围按设备实际绑定的班级匹配:选择「高三」,只有绑定在高三的教室设备会收到; 后台当前选中的年级不影响其他设备。

发布前检查
界面里内置了发布前检查:保存/发布前会提示科目时间是否完整、目标范围内有多少台设备在线, 只提示不阻断,避免出现「时间没填全」或「教室设备没上线」。 人工再确认一遍这几项:
- 考试名称与通知一致;
- 适用年级正确;
- 日期、时区和上下下午正确;
- 每科结束时间晚于开始时间;
- 不需要显示的科目已停用;
- PDF 顺序正确;
- 一台目标班级设备显示正确。
完整步骤见创建一场大型考试。