AskaEth c9d5b8ea89 feat(admin): 报名导入新增「从已有名单勾选报名」
原来只能上传 CSV/XLSX。现在同一个 tab 上方多一个选择器:选小项 → 组别 → 单位,
从该单位已有运动员里勾人,一键加入报名。

- 个人项目:勾 N 人 → N 条报名(一人一行)
- 团体/对抗项目:勾 N 人 → 1 条报名,姓名拼进 member_names(再次提交即更新队员名单)
- 已报名的人/单位会标「已报名」并禁止重复勾选
- 复用服务端唯一报名入口 POST /entries/import:勾选结果转成同格式 CSV 提交,
  字段校验、按 (组别,单位,运动员) upsert、行级报错回显与表格导入完全一致
- 纯函数 entrySelection.ts(表头唯一来源 + RFC 4180 转义)+ 4 个单测;
  表头定义从 ImportSection/mockBaseData 收敛到一处
- 号码布/种子仍走表格导入,界面与文档都写明

自检:vue-tsc + pnpm build 通过,前端 node --test 30/30。
2026-09-10 02:03:16 +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%