AskaEth 6f47849e1e fix(display): 隐藏调试标识 + 积分榜显示单位 logo
- TopBar 的「实例 N · 屏 N」只在该窗口确实处于调试态时渲染:非 windowed(kiosk)不显示,
  窗口化下按 F11 全屏也不显示(同时监听 fullscreenchange,与 App.vue 口径一致)
- 积分榜与团体奖牌榜的队名左侧渲染单位 logo:数据本来就下发了(dto/standings.go 的
  LogoPath),只是页面没画。图标 1em 随行字号浮动、object-fit:contain,行高不会被撑开;
  无 logo 不占位,加载失败 visibility:hidden 保留占位避免队名跳动,@load 会复原
- resolveAssetUrl(路径归一化)从 admin 目录收敛到 web/src/shared/asset.ts,
  管理端与大屏共用一份;原 image-path 测试随之迁到 shared/tests

未做(需服务端 DTO 支持,本次未授权):分项成绩页与个人榜的单位列同样没有 logoPath 字段,
所以那两个页面仍无法显示单位 logo。

自检:vue-tsc + pnpm build 通过;前端 node --test 69/69。
2026-09-10 10:20:03 +08:00
2026-09-09 16:01:35 +08:00

Scoreboard · 赛事积分榜系统

一套局域网内部署的赛事成绩与积分系统:一个服务端 + 两个界面,后台一改数据,前台大屏实时跟着变。

界面 地址 用途
实时积分大屏 /display 只读、无人值守;成绩发布后 1 秒内更新
管理面板 /admin 录入、发布成绩,控制大屏;未登录可只读查看全部赛事数据

功能概览

  • 四个榜:总积分榜、团体奖牌榜、个人积分奖牌榜、分项成绩表
  • 录入即上屏:成绩录入 → 发布 → 大屏即时更新
  • 可追溯、可撤销:草稿不上屏;发布后纠错走「撤销发布 → 改 → 重新发布」,全程留痕
  • 变更历史:仿 Git 图谱,一眼看清成绩是怎么变成现在这样的
  • 现场公开:积分明细可下钻,争议时一键推送到大屏
  • 规则可配置:积分规则以规则包(YAML)描述,可导入导出、跨赛事复用
  • 赛事独立存档:每个赛事一个独立项目目录,可整包导出/导入
  • 结果导出:Excel 总表与分项可单独导出

快速开始

  1. 解压部署包
  2. 双击 Scoreboard_Console.exe(现场推荐:守护服务端、把大屏投到扩展屏、防熄屏、开机自启)
  3. 浏览器打开终端提示的地址
大屏      http://<主机IP>:19540/display
管理面板   http://<主机IP>:19540/admin

也可以直接双击 scoreboard.exe(Linux 下执行 ./scoreboard)只跑服务端,大屏投放与进程守护需自行接管。

完全离线运行,不依赖外网,不需要安装任何运行时。

文档

  • 上线检查清单:比赛当天照着走一遍的核对表(含交付物、目标机、首次启动、规则包导入、大屏、备份与回退)
  • 部署指南:运行环境、安装与首次启动、端口与配置、大屏接线、备份恢复、故障排查
  • 使用手册:角色权限、各功能页面的操作步骤、大屏端使用、常见操作问题
  • 常见问题(FAQ):账号、成绩与积分、大屏、数据备份、导出导入
  • 规则包格式:见 rules/README.md

许可证

MIT

S
Description
一个简易实用的赛事积分榜系统
Readme MIT
30 MiB
0 Stars 1 Watchers 0 Forks
Languages
Go 53.5%
TypeScript 25.9%
Vue 14.5%
JavaScript 3.7%
NSIS 1.2%
Other 1.2%