Administrator 22f073d8e7 feat: 运动会记分板系统核心功能
- 前后端分离架构 (Nuxt 3 + Element Plus)
- SQLite 数据库 (better-sqlite3)
- 比赛项目管理 (田赛/径赛/团体赛)
- 队伍管理 (5 个组别)
- 成绩录入与积分统计
- 记分板展示 (排名/奖牌榜)
- 移动端响应式适配
- 侧边栏布局 + 抽屉菜单
- 自动生成初始化数据接口
2026-03-17 22:29:18 +08:00

2.8 KiB
Raw Permalink Blame History

运动会记分板系统

基于 Nuxt 3 + Element Plus + SQLite 的运动会管理系统

功能特性

  • 比赛项目管理:支持田赛、径赛、团体赛三大类别
  • 队伍管理:管理不同组别的参赛队伍
  • 成绩录入:实时录入比赛成绩和排名
  • 记分板展示:实时展示积分排名和奖牌统计

比赛项目

田赛

  • 跳高、跳远、掷铅球

径赛

  • 100m、200m、400m、4×100m、4×400m、20×50m

团体赛

  • 旱地龙舟、跳长绳、折返跑

组别

  • 教师组
  • 航空班组
  • 体育班组
  • 文化班甲组
  • 文化班乙组

积分规则

  • 第1名7分 + 金牌
  • 第2名5分 + 银牌
  • 第3名3分 + 铜牌

技术栈

  • 前端框架Nuxt 3
  • UI 组件库Element Plus
  • 包管理器pnpm
  • 数据库SQLite (better-sqlite3)
  • 后端 APINuxt Server API

安装依赖

pnpm install

初始化数据库

首次运行前,需要初始化数据库和种子数据:

# 启动开发服务器
pnpm dev

# 在浏览器中访问或使用 curl 初始化数据
curl -X POST http://localhost:3000/api/seed

开发

pnpm dev

访问 http://localhost:3000

构建生产版本

pnpm build

预览生产版本

pnpm preview

项目结构

D:\SportMeetingAdminSys
├── app/
│   ├── layouts/
│   │   └── default.vue          # 侧边栏布局
│   └── pages/
│       ├── index.vue             # 首页仪表盘
│       ├── events.vue            # 比赛项目管理
│       ├── teams.vue             # 队伍管理
│       ├── results.vue           # 成绩录入
│       └── scoreboard.vue        # 记分板展示
├── server/
│   ├── api/
│   │   ├── config/               # 配置接口
│   │   ├── events/               # 比赛项目接口
│   │   ├── teams/                # 队伍接口
│   │   ├── results/              # 成绩接口
│   │   ├── scoreboard/           # 记分板接口
│   │   └── seed.post.ts          # 数据初始化
│   └── db/
│       └── index.ts              # SQLite 数据库连接
└── data/
    └── sports.db                 # SQLite 数据库文件

API 接口

配置接口

  • GET /api/config - 获取系统配置(类别、组别、项目类型)

比赛项目

  • GET /api/events - 获取比赛项目列表
  • POST /api/events - 创建比赛项目

队伍管理

  • GET /api/teams - 获取队伍列表
  • POST /api/teams - 创建队伍

成绩管理

  • GET /api/results - 获取成绩列表
  • POST /api/results - 录入成绩

记分板

  • GET /api/scoreboard - 获取积分排名

数据初始化

  • POST /api/seed - 初始化示例数据