- 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 配置的说明与实现对齐
136 lines
7.5 KiB
Markdown
136 lines
7.5 KiB
Markdown
# 常见问题(FAQ)
|
||
|
||
> 更完整的操作步骤见 [使用手册](./使用手册.md),部署与排障见 [部署指南](./部署指南.md)。
|
||
|
||
---
|
||
|
||
## 账号与权限
|
||
|
||
**Q1:初始密码是多少?**
|
||
首次启动时随机生成、只打印一次。用 Console 启动时,在 `logs\console.log` 里搜索「初始密码」即可找到,方法见 [部署指南 · 首次登录](./部署指南.md#5-首次登录)。
|
||
|
||
**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` 切全屏。详见 [部署指南 · 故障排查](./部署指南.md#9-故障排查)。
|
||
|
||
**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`,再启动),详见 [部署指南 · 备份与恢复](./部署指南.md#8-备份与恢复)。
|
||
|
||
**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`,相对服务端工作目录解析。
|