Files
Scoreboard/docs/常见问题.md
T
AskaEth 2c9ff65fc4 feat: 补齐第一批已知缺口(关闭握手 / 定时备份 / Origin 白名单 / DTO 收敛)
- httpapi:新增 POST /api/shutdown(admin 会话或 X-Shutdown-Token 常量时间比对)
  与 GET /api/rules/switches(recorder 可读,只回布尔开关);settings/standings 的
  重复 DTO 收敛到 internal/dto;standings.showIndividualMedals 贯通到设置读写与前端
- export:抽出 export.Service,新增自动备份定时任务(backup.intervalMinutes/keep),
  自动、手动、发布前三类备份共用同一把互斥锁与滚动清理
- realtime:/ws 去掉 InsecureSkipVerify,改用 OriginPatterns(同源与无 Origin 放行,
  跨站需命中 server.allowedOrigins)
- console:停止服务改走 POST /api/shutdown 优雅关闭(5 秒宽限后回退强杀),
  服务管理器新增「已连接的大屏实例」卡片
- deploy:build.bat 改用 for /f 读内部署名——set /p 在 chcp 65001 下返回空,
  导致最近这次构建的 exe 里根本没注入署名
- docs:备份策略、关闭超时、Origin 配置的说明与实现对齐
2026-09-09 21:41:08 +08:00

7.5 KiB
Raw Blame History

常见问题(FAQ)

更完整的操作步骤见 使用手册,部署与排障见 部署指南。


账号与权限

Q1:初始密码是多少? 首次启动时随机生成、只打印一次。用 Console 启动时,在 logs\console.log 里搜索「初始密码」即可找到,方法见 部署指南 · 首次登录。

Q2:忘记密码怎么办? 先停止服务,然后在部署目录执行 scoreboard.exe passwd -config config.yaml,会打印新的随机密码,并要求下次登录强制改密。

Q3:访客和录入员有什么区别? 访客只能只读查看;录入员可以录入、存草稿、发布、撤销发布、确认破纪录、做积分调整、控制大屏;管理员在此基础上还能管理用户、备份、看审计日志、导入规则包和赛事包。

Q4:为什么登录后还是只读? 可能未登录成功、会话已过期(有效期 12 小时),或页面处于示例数据模式。看右上角是否显示账号名与角色。

Q5:可以建「访客账号」吗? 不可以。访客是未登录时的默认身份,不需要也不允许建账号;可落库的角色只有管理员和录入员。

Q6:管理员能改用户名吗? 管理界面里账号创建后不可改;命令行可用 scoreboard.exe passwd -user 旧名 -new-username 新名 修改。


成绩与积分

Q7:为什么录入后大屏没变化? 草稿不上屏。需要「发布」(或 Alt+Enter),发布后 1 秒内大屏更新。

Q8:发布错了怎么改? 撤销发布 → 修改 → 重新发布。撤销会作废该组积分流水,大屏回退到发布前状态,过程可在「变更历史」查看。

Q9:为什么「发布」是灰的? 常见原因:未登录、服务端断开、示例数据模式,或存在阻止发布的校验错误(缺少成绩、格式无法解析、手动名次项目缺名次)。

Q10:并列名次怎么处理? 成绩相同(或手动名次相同)自动按并列处理,显示同一名次。默认口径是「顺延」:并列第 3 各得第 3 名的分,无第 4 名,下一名第 5 名;奖牌同样并列(并列第 1 各记 1 金、无银)。具体口径由规则包配置决定。

Q11:状态里的 DNS / DQ / DNF / 退赛有什么区别? 都是不参与名次与积分计算的异常状态:DNS = 弃赛,DQ = 取消资格,DNF = 未完赛,退赛 = 主动退出。正常成绩选「有效」。

Q12:时间类成绩怎么写? 按 分:秒.毫秒 形式输入,例如 1:06.33;工具栏会显示当前项目的单位。

Q13:能批量录入吗? 可以。支持从 Excel 复制后粘贴:两列及以上时第一列按单位名称 / 简称匹配行、最后一列作为成绩;单列时从当前行向下依次填充。也可以用 Tab / Enter 在格子间移动,Ctrl+Enter 存草稿。

Q14:破纪录加分为什么点不了? 规则包里破纪录加分默认关闭(recordBonus.enabled = false)时按钮不可用;若当前角色读不到规则包,页面显示「未知」,可提交,由服务端校验决定是否加分。

Q15:人工调整为什么点不了? 规则包里人工调整默认关闭(manualAdjustment.enabled = false)时不可用;以页面顶部显示的开关状态为准。


大屏

Q16:大屏不亮 / 只有桌面怎么办? 检查 HDMI、扩展显示模式、Console「大屏窗口」状态,点「重新排布」;服务端未就绪时最多等 20 秒才开屏;单屏窗口化时按 F11 切全屏。详见 部署指南 · 故障排查。

Q17:单屏和多屏的显示方式有什么不同? 单屏时大屏以窗口化方式打开,按 F11 切全屏;多屏时除内置屏外每块屏一个 kiosk 全屏窗口,各锁一页,不响应 F11,也不接收鼠标。

Q18:大屏为什么不自动轮播? Console 启动的多屏窗口默认每屏锁定一页。到「大屏控制」点「解锁」后开始轮播,每 20 秒一页;公告页不参与轮播。

Q19:推送的积分明细怎么关? 60 秒后自动关闭;也可以点「积分榜」页的「关闭大屏明细」立即关闭。

Q20:「在线看板」为什么显示未知? 当前版本后端没有大屏实例上报接口,因此无法判断每块屏是否在线,「最近下发」只是本机下发指令的时间。以现场大屏实际画面为准。

Q21:安卓电视能用吗? 可以,用电视自带浏览器访问 http://<主机IP>:19540/display。但它不受 Console 的 kiosk、防熄屏控制,字体与动画表现以实际设备为准。

Q22:大屏时间不对怎么办? 系统没有外网时间同步,以主机时间为准。校准 Windows 时间与时区即可。


数据与备份

Q23:备份在哪里? data\backups\,文件名形如 system-<原因>-<时间戳>.db、<项目名>-<原因>-<时间戳>.db(原因有 auto / manual / publish)。

Q24:多久备份一次? 服务端会自动备份,默认每 5 分钟一次(config.yaml 的 backup.intervalMinutes,设成 0 可关闭)。也可以手动触发:管理端「系统设置 → 备份 → 立即备份」,或执行 scoreboard.exe backup -config config.yaml。另外每次发布成绩前会自动备一份。

Q25:备份会自动删除旧的么? 会。自动、手动、命令行三种方式都按 backup.keep(默认 20 份)滚动保留,system 库与赛事库各自计算。

Q26:怎么恢复备份? 没有一键恢复接口,需停机手工替换数据库文件(复制备份为 event.db,删除 event.db-wal / event.db-shm,再启动),详见 部署指南 · 备份与恢复。

Q27:换一台电脑怎么迁移? 把整个部署目录(含 data\)拷到新机器,启动 Console 即可。

Q28:怎么切换赛事项目? 服务端一次只运行一个项目(默认 default)。导入赛事包后,需要在 Console 的 config.json 里给 server.args 加 -project <项目名> 并重启,详见部署指南第 8.5 节。


导出与导入

Q29:能导出哪些文件? 四类 Excel:总表、全部(多 sheet)、分项成绩表、单位积分明细;另外可导出赛事项目包(zip)与规则包(YAML)。

Q30:导出文件保存在哪? 浏览器默认下载目录。服务端生成的临时包位于 data\exports\,下载完成后自动删除。

Q31:谁能导入规则包 / 赛事项目包? 只有管理员。两者都会整体替换数据:规则包导入后全量重算积分且不能一键撤销;赛事包覆盖同名项目前会二次确认。

Q32:导入规则包后积分变了,能撤销吗? 不能一键撤销。纠错需要重新导入旧规则包,或逐项修正后重新发布。导入前请务必先「预览差异」。


其他

Q33:系统需要联网吗? 不需要。完全离线运行,不依赖外网,也不需要在现场安装任何运行时。

Q34:页面提示「示例数据」是什么意思? 表示后端未就绪或连接中断,此时所有改动只停留在界面,不会写入真实赛事。恢复连接后刷新即可。

Q35:为什么登录 / 写操作偶尔被拒绝? 系统有频率限制:登录每 IP 每分钟 5 次,写操作每用户每分钟 30 次。稍等一分钟再试。

Q36:数据目录在哪? 由 config.yaml 的 dataDir 指定,默认 data,相对服务端工作目录解析。