- 前后端分离架构 (Nuxt 3 + Element Plus) - SQLite 数据库 (better-sqlite3) - 比赛项目管理 (田赛/径赛/团体赛) - 队伍管理 (5 个组别) - 成绩录入与积分统计 - 记分板展示 (排名/奖牌榜) - 移动端响应式适配 - 侧边栏布局 + 抽屉菜单 - 自动生成初始化数据接口
130 lines
2.8 KiB
Markdown
130 lines
2.8 KiB
Markdown
# 运动会记分板系统
|
||
|
||
基于 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)
|
||
- **后端 API**:Nuxt Server API
|
||
|
||
## 安装依赖
|
||
|
||
```bash
|
||
pnpm install
|
||
```
|
||
|
||
## 初始化数据库
|
||
|
||
首次运行前,需要初始化数据库和种子数据:
|
||
|
||
```bash
|
||
# 启动开发服务器
|
||
pnpm dev
|
||
|
||
# 在浏览器中访问或使用 curl 初始化数据
|
||
curl -X POST http://localhost:3000/api/seed
|
||
```
|
||
|
||
## 开发
|
||
|
||
```bash
|
||
pnpm dev
|
||
```
|
||
|
||
访问 http://localhost:3000
|
||
|
||
## 构建生产版本
|
||
|
||
```bash
|
||
pnpm build
|
||
```
|
||
|
||
## 预览生产版本
|
||
|
||
```bash
|
||
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` - 初始化示例数据
|