1) 大屏背景图不生效:App.vue 里 .bg 与 .bg-fallback 都是 absolute inset:0, 而兜底渐变是不透明的且在图片之后绘制 → 配了背景图也只看得到渐变。 改成 v-if/v-else 互斥(用无头 Chromium 真渲染对照验证:修复后取到图片像素, 回退版本只剩渐变)。新增 background-layer.test.ts 锁住层次关系。 2) 规则/config 仍在安装目录,覆盖安装/卸载会连配置一起删:现在三样都落在 %LOCALAPPDATA%\ScoreboardConsole\(与数据目录同一基座): - console\config.json(Console 读写都用这份) - config.yaml(Console 用绝对路径 -config 传给服务端与 passwd) - rules\(首次从安装目录复制过去,之后只认用户目录那份) 首次运行复制迁移、已存在不覆盖、不可写则回落安装目录并记日志(不影响启动); 开发态行为不变。备份脚本与文档同步。 注意 resolveExecutable 必须显式传部署包根目录,否则会去用户目录找 scoreboard.exe。 自检:服务端 11 包全绿;console 语法 16 文件 + node:test 20/20; 前端 vue-tsc + build、node --test 69/69。
12 KiB
常见问题(FAQ)
账号与权限
Q1:初始密码是多少?
首次启动时随机生成、只打印一次。用 Console 启动时,在 logs\console.log 里搜索「初始密码」即可找到,方法见 部署指南 · 首次登录。
Q2:忘记密码怎么办?
先停止服务,然后执行(配置在用户数据目录,不要用部署目录里那份模板):
scoreboard.exe passwd -config "%LOCALAPPDATA%\ScoreboardConsole\config.yaml" -data "%LOCALAPPDATA%\ScoreboardConsole\data"
会打印新的随机密码,并要求下次登录强制改密。
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 "%LOCALAPPDATA%\ScoreboardConsole\config.yaml" -data "%LOCALAPPDATA%\ScoreboardConsole\data"(部署目录下的 deploy\backup.bat 已经带好这些路径)。另外每次发布成绩前会自动备一份。
Q25:备份会自动删除旧的么?
会。自动、手动、命令行三种方式都按 backup.keep(默认 20 份)滚动保留,system 库与赛事库各自计算。
Q26:怎么恢复备份?
没有一键恢复接口,需停机手工替换数据库文件(复制备份为 event.db,删除 event.db-wal / event.db-shm,再启动),详见 部署指南 · 备份与恢复。
Q27:换一台电脑怎么迁移?
把整个部署目录(含 data\)拷到新机器,启动 Console 即可。
Q28:怎么切换赛事项目?
在管理面板「导出 → 赛事项目包」的赛事项目列表里找到目标项目,点「切换为当前赛事」:服务端会退出并由服务管理窗口自动拉起,页面显示「正在重启服务端…」,恢复后自动刷新。也可以在 Console 的 config.json 里给 server.args 加 -project <项目名> 后重启,详见部署指南第 8.5 节。两种方式都会记下「上次打开的赛事」,之后启动没带参数时仍打开它。
导出与导入
Q29:能导出哪些文件? 四类 Excel:总表、全部(多 sheet)、分项成绩表、单位积分明细;另外可导出赛事项目包(zip)与规则包(YAML)。
Q30:导出文件保存在哪?
浏览器默认下载目录。服务端生成的临时包位于 data\exports\,下载完成后自动删除。
Q31:谁能导入规则包 / 赛事项目包? 只有管理员。两者都会整体替换数据:规则包导入后全量重算积分且不能一键撤销;赛事包覆盖同名项目前会二次确认。
Q32:导入赛事包后为什么看不到数据?
因为导入只把包解到数据目录,不会自动切换当前赛事。服务端启动时只打开一个赛事项目(启动参数 -project 指定的那个;没带参数时用上次切换记下的,从未切换过则是 default),页面上看到的是它的数据——通常是导入前那个空赛事,所以看着像「没导进去」。
处理办法:在「导出 → 赛事项目包」的赛事项目列表里找到刚导入的项目(导入完成的结果框里也直接给了「立即切换并重启服务端」按钮),点「切换为当前赛事」。服务端会退出并由服务管理窗口自动拉起,页面显示「正在重启服务端…」,恢复后自动刷新,数据就出来了。超过 60 秒仍未恢复时,请打开服务管理窗口确认服务端状态,待其显示「运行中」后手动刷新本页。
切换会让服务端重启,比赛进行中请避开操作;账号存在各个赛事库里,切换后登录状态会失效,重新登录即可,若原密码登不上就用
scoreboard.exe passwd重置。
Q33:导入规则包后积分变了,能撤销吗? 不能一键撤销。纠错需要重新导入旧规则包,或逐项修正后重新发布。导入前请务必先「预览差异」。
Q34:导入时提示证件号重复怎么办? 证件号与号码布是人员的两项唯一标识,系统不允许两个人员共用同一个证件号,用来区分重名。
- 在「运动员」里新增 / 编辑时提示重复:说明该证件号已属于另一个人员。请先核对是不是同一个人:是,就直接用已有记录;不是,请检查证件号是否填错。已有历史数据可以没有证件号。
- 表格导入时出现重复:分两种情况。同一份文件里同一个证件号重复出现,重复的行会报错并跳过,改好后重新上传;证件号在系统中已存在、但姓名、性别或单位不一致的,会列为「冲突」,本次不写入(报名也不会创建),需要在导入结果里勾选后逐条或多选决定「保留已有数据」还是「使用新数据」,没有做决定的人不会被写入。详细步骤见 使用手册 · 报名导入。
Q35:人员没有身份证,只有号码布,能报名吗?
可以。证件号与号码布二者取其一即可作为人员唯一标识:在「运动员」里只填号码布也能保存;报名表里有姓名的行,id_card 与 bib 至少填一个就能导入;从已有名单勾选报名时,两项里有一项就能勾选。号码布会同时写入人员档案与报名记录。
Q36:号码布重复了怎么办? 号码布和证件号一样是人员唯一标识,系统不允许两个人员共用同一个号码布。
- 在「运动员」里新增 / 编辑时提示重复:说明该号码布已属于另一个人员。请先核对是不是同一个人:是,就直接用已有记录;不是,请检查号码布是否填错。
- 表格导入时出现重复:同一份文件里同一个号码布重复出现,重复的行会报错并跳过,改好后重新上传;号码布在系统中已存在、但姓名、性别或单位不一致的,会列为「冲突」,本次不写入(报名也不会创建),需要在导入结果里勾选后决定「保留已有数据」还是「使用新数据」。详细步骤见 使用手册 · 报名导入。
其他
Q37:系统需要联网吗? 不需要。完全离线运行,不依赖外网,也不需要在现场安装任何运行时。
Q38:页面提示「示例数据」是什么意思? 表示后端未就绪,此时所有改动只停留在界面,不会写入真实赛事。恢复连接后刷新即可。
注意区分:顶部若只是显示「连接中断」,说明实时推送断了(数据可能不是最新),但写操作仍会照常提交给服务端并做校验。
Q39:为什么登录 / 写操作偶尔被拒绝? 系统有频率限制:登录每 IP 每分钟 5 次,写操作每用户每分钟 30 次。稍等一分钟再试。
Q40:数据目录在哪?
默认 %LOCALAPPDATA%\ScoreboardConsole\data(当前用户的本地应用数据目录,升级/卸载都不会删)。想换位置就改 config.yaml 的 dataDir(支持绝对路径),那份 config.yaml 本身也在 %LOCALAPPDATA%\ScoreboardConsole\ 下。