数学题库工作台

正在加载…

数学题库工作台

本地题库 {{ appMessage }} {{ auth.user.username }} {{ sessionBadgeLabel }} ● 重连中

{{ externalNotice }}

加载中…
真题卷集
{{ pickSummary }}
{{ pasteToast.message }}

{{ appDialog.message }}

先设一个新密码

这个账号的密码刚被管理员重置过。设一个新密码(至少 6 位)就能进工作台; 改完不用重新登录。

{{ pwError }}

两次输入的新密码不一样

审核队列

待审 {{ reviewDrafts.length }} 份 · {{ reviewStats.claimed }} 份正在处理{{ reviewStats.holders ? '(' + reviewStats.holders + ')' : '' }} · {{ reviewStats.free }} 份没人认领 · 最早一条提交于 {{ reviewStats.oldest }} · 你认领着 {{ reviewStats.mine }} 份

你已审核共计 {{ reviewedTotal }} 题

{{ reviewNotice.message }}

左边选一份草稿开始审 —— 打开会自动认领,右边会直接出排版预览图。

{{ adminMode === 'full' ? '后台管理区' : '后台功能区' }}

{{ externalStateLabel }}

{{ permError }}

{{ journalHint }}

{{ journalNotice.message }}

读取中…

{{ journalError }}

还没有记录。经 app 覆盖保存 / 新增 / 关联改编之后,这里就会有一条。

{{ entry.at }} {{ journalKindLabel(entry.kind) }} {{ entry.qid }}
{{ entry.rel_path }} {{ entry.note }}

审计流水:谁下载了什么文件(只记非管理员账号)、谁改过哪个账号 (注册 / 改角色 / 禁用 / 启用 / 重置密码 / 清理会话 / 备份)与 谁动了题库内容(录入写盘 / 覆盖保存 / 关联改编 / 课测保存 / 提交待审 / 审核通过 / 审核拒绝 / 撤回待审 / 还原)。 它只追加在 .data/audit.jsonl 里;本页默认显示最近 500 条,可继续加载到 2000 条。

{{ auditError }}

读取中…

这一类还没有记录。

{{ longStamp(row.at) }} {{ auditCategoryLabel(row) }} {{ row.action }} {{ row.operator || '—' }} ({{ auditWhoSuffix(row) }}) {{ humanBytes(row.bytes) }}
{{ row.target || '—' }} {{ row.from || '—' }} → {{ row.to || '—' }} {{ row.note }}

邀请码是现在唯一的建号通道(不再开放无邀请码注册):把码发给同事,他拿码注册, 注册出来的角色由码决定。永远发不出管理员码(唯一管理员只能走命令行建号)。 一人一码 —— 用过 / 作废 / 过期的码都不能再用。

{{ invitesError }}

{{ invitesNotice }}

读取中…

还没有发过邀请码 —— 选个角色、点「发一张邀请码」。

这一类还没有码(点「全部」看全)。

{{ row.code }} {{ inviteStatusLabel(row) }} 被 {{ row.used_by }} 用了({{ shortStamp(row.used_at) }}) 还没人用
创建 {{ longStamp(row.created_at) }} {{ row.created_by || '—' }} 发的 | {{ row.expires_at ? '有效期到 ' + longStamp(row.expires_at) : '永不过期' }} {{ row.revoked_by || '—' }} 于 {{ longStamp(row.revoked_at) }} 作废

服务 / 关键开关 / 存储占用 / 账号数据 / 班级数据 —— 全部只读。清理过期会话只删"已经过期"的会话行, 在线的人一条都不动,谁也掉不了线。

{{ sysError }}

{{ sysNotice }}

读取中…

健康检查

{{ sysHealth.verdict }}

{{ check.level === 'warn' ? '!' : (check.level === 'info' ? '·' : '✓') }} {{ check.label }} {{ check.text }}

题库健康度

{{ bankHealth.content }}道有内容题 {{ bankHealth.points }}个知识点 {{ bankHealth.empty }}个空槽位 {{ bankHealth.emptyOnlyPoints }}个知识点全是空题 {{ bankHealth.weekActions }}次写盘(近 7 天)
{{ row.label }} {{ row.content }} 空 {{ row.empty }}
题库填充度 {{ bankHealth.fillPercent }}%

{{ group.title }}

{{ row.key }} {{ row.value }}

整包备份:把这个工程(题库 .tex、.data 用户库与草稿、backend / frontend 全部)打成一个 tar.gz 放进备份目录。排除 .cache / .venv / __pycache__ 这些能重新生成的, 以及备份目录本身。打包在后台线程跑,页面可以随时切走。

{{ backupProgress }} 备份目录:{{ backupDir || '读取中…' }}
定时快照 上次每周:{{ snapshotLine(snapshotInfo.weekly) }} 下次检查:{{ snapshotInfo.next_check ? longStamp(snapshotInfo.next_check) : '—' }} 保留:每周 {{ (snapshotInfo.keep || {}).weekly }} 份(旧的自动删)· 手动备份不限(要清就在下面列表里删) 定时器已关闭(MTK_SNAPSHOT_ENABLED=0)

{{ backupError }}

{{ backupDone }}

{{ restoreNotice }}

读取中…

还没有备份。点上面「立即备份」打第一个包。

{{ workspaceError }}

{{ workspaceNotice }}

{{ gradeError }}

{{ gradeTestsError }}

{{ gradeFlash }}

{{ gradeNotice }}

读取中…

{{ gradeEmptyText }}

{{ row.name }} {{ row.year }}年·{{ row.season }}|{{ row.student_count }}人·{{ row.test_count }}次测试

先在左栏点一个班

{{ analysisClassName }}
{{ analysisPaneLabel }} {{ analysisPillText }}

先在左栏点一个班

成绩分析

先在左栏点一个班,再点某个人 / 某次测试看分析。

{{ gradePendingHint }}
{{ gradeZoomSheet.title }}
{{ row.label }} {{ col[row.key] }} {{ gradeZoomSheet.table.total[row.key] }}
.bak- 备份(题库里的还原点) 共 {{ bakEntries.length }} 个 | 可删候选 {{ bakDeletable.length }} 个 | 还原点 {{ bakKept.length }} 个

{{ bakError }}

{{ bakNotice }}

读取中…

{{ cardDrag.label }}

数学题库工作台

正在校验登录状态…