Administrator 8117958bd6 feat: add user center with RBAC, OAuth2 multi-mode and collapsible sidebar
- Add user management with roles and permissions (RBAC)
- Implement OAuth2 service provider supporting 4 grant types:
  authorization_code, password, client_credentials, refresh_token
- Add JWT authentication with 7-day expiry
- Add admin API for users, roles and OAuth clients management
- Add CLI tool for user management (scripts/user-cli.js)
- Add collapsible sidebar layout with login dialog
- Add user management page and OAuth client management page
- Add server middleware for auth token verification
- Add seed script for initial data (admin/admin123)
2026-03-19 17:19:57 +08:00

运动会记分板系统

基于 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 - 初始化示例数据
Description
No description provided
Readme 322 KiB
Languages
TypeScript 51.1%
Vue 41.1%
JavaScript 7.8%