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

130 lines
2.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 运动会记分板系统
基于 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` - 初始化示例数据