导出-每次考试/多考试对比: - 合格次数阈值等标记项抽为常显区块,三类成绩表共用 - 附缺考名单扩展到多考试导出(取所选考试全都没交的人) - 块表每场固定2列(成绩+合并空位),修复漏推空串导致的整行左移/串列 - 列宽按实际内容估算,合并区空位只给最小宽度 - 合格次数始终显示实际次数(含0),仅 ≥ 阈值标绿底 - 打印标题改为「成绩明细」,缺考名单分页单独成页 - 打印样式加 print-color-adjust:exact,绿底/红字可正常印出 数据大屏: - ?class= 班级大屏免登录公开访问,接口侧放行并按班级裁剪后回传 - 单班大屏移除退出按钮,仅首页保留 - 修复红绿判定真bug:membersTable 误用 window.DASH(DASH为let声明取不到) 改为 scoreGrade() 直接读自由变量,按后台合格率正确判红/黄/绿 测试/样例/文档同步更新,全量回归通过。
5.0 KiB
数据大屏
数据大屏(dashboard.php)是面向投屏 / 大屏的汇总视图,适合考试进行中实时监控提交进度。
它有两种形态,由 URL 决定:
| 形态 | 打开方式 | 长什么样 |
|---|---|---|
| 首页(班级入口) | 从主页面顶部导航 📊 数据大屏 打开,或直接访问 dashboard.php |
先选试卷 / 考试,下方以卡片列出该卷的所有班级;点卡片进入该班大屏 |
| 单班大屏 | 点首页的班级卡片(等价于 dashboard.php?pid=<问卷ID>&class=<班级名>) |
只展示这一个班:5 张汇总卡 + 分组对比 / 成员榜 |
首页是"入口",不是概览页——它不堆指标,只做一件事:让你一次看到有哪些班,点进去看单个班。
单班大屏是公开的,可以直接发链接
dashboard.php?pid=<问卷ID>&class=<班级名> 不需要登录,任何人打开都能看到这一个班的数据
(顶栏带「公开 · 无需登录」角标)。适合直接把链接发到班级群让孩子或家长自己看。
::: danger 公开的是"这一个班",不是全卷
接口在服务端先按 class 把名单和答卷裁剪掉,再回传数据:公开链接拿不到全卷汇总,
也拿不到其它班级的成绩。想看别的班,打开那个班自己的链接即可;不带 class 参数的
大屏首页仍然要求登录。
:::
::: warning 单班大屏没有回头路
单班大屏不显示班级下拉、「← 主系统」和「退出」,页面内部也不存在回到首页的链接;
浏览器后退键同样被屏蔽(页面加载后立刻 pushState 占位,任何 popstate 都再推回去)。
想回主系统或换班,请在地址栏改 URL,或关闭标签页重新从首页进入。
:::
顶部控件
| 控件 | 首页 | 单班大屏 |
|---|---|---|
| 问卷 / 考试 | ✅ | ✅ 切换后若该班不在新卷名单里,会自动落到第一个班 |
| 班级 | ✅ | ❌ 由 URL 固定,不提供切换 |
| 自动刷新开关 + 间隔 | ✅ | ✅ |
| 刷新 | ✅ | ✅ |
| ⛶ 全屏 | ✅ | ✅ |
| ← 主系统 | ✅ | ❌ 由 CSS 隐藏 |
| 退出 | ✅ | ❌ 页面里不再渲染 |
::: tip 后台标签页会自动暂停 切换到其他标签页后看板会停止轮询,切回来时立即补拉一次数据并重新开始计时—— 投屏时长开也不会在无人观看时反复请求卷王。自动刷新失败时,「最后更新」会显示 刷新中断(仍显示上次数据),鼠标悬停可看到具体原因。 :::
首页:班级入口卡片
每张卡片给出该班的速览,点整张卡片(或聚焦后按回车)进入该班大屏:
总人数 / 已提交 / 缺考 / 平均分 / 合格率 + 一条提交率进度条;没交过卷的班也能一眼看到缺考数。
::: tip 首页也在自动刷新 首页同样受自动刷新开关控制(默认 15 秒),卡片上的数字会跟着变,适合把整层楼/整个年级的 提交进度投在一块屏上。 :::
汇总卡片(单班大屏)
总人数 / 已提交 / 缺考 / 平均分 / 合格率(≥X%满分)
合格率卡片的阈值标签会随 每卷配置 实时变化。
成绩的红绿怎么定的
成员榜(以及「刷 N 次」下钻弹窗)里的成绩颜色完全按 每卷配置 里 管理员设的满分与合格率判定,不是写死的:
| 占满分的比例 | 颜色 |
|---|---|
| ≥ 90%(合格线本身高过 90% 时则以合格线为准) | 🟢 绿 |
| ≥ 合格率 × 满分(合格但未达优秀) | 🟡 黄 |
| < 合格率 × 满分(不及格) | 🔴 红 |
例如把本卷满分改成 150、合格率改成 80%,那么 100 分只占 66.7% → 判红,130 分(86.7%)判黄, 145 分(96.7%)判绿。鼠标悬停在分数上会显示「占满分 xx% 合格线 xx 分」。
班级 / 组别下钻
(即单班大屏的主体部分)
看板主体按班级分块,每块内再按组别对比,指标与统计口径完全相同: 总人数、已提交、缺考、提交率、平均分、合格率、最高分、最低分、平均用时。
点击考过多次的成员(带「刷 N 次」标签)可查看其每一次提交(时间、成绩、时长),最佳成绩有标记。
按 Esc 或点击弹窗外部可关闭。
未分班的人归入「(未分班)」,未分组的人归入「(未分组)」,不会丢失。
常见问题
全屏按钮点了没反应
- 浏览器要求全屏必须由用户手势触发,脚本自动调用
requestFullscreen()会被拒绝; - 退出全屏调用的是
document.exitFullscreen()(注意不是document.documentElement), 平台已修正过这一点; - 若页面被嵌在
<iframe>中,需要给 iframe 加allowfullscreen属性。
数据不更新
确认自动刷新开关打开;若结果缓存时间较长,点 刷新 会带 force=1 跳过缓存。