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

34 lines
836 B
TypeScript

import db from '../../db'
export default defineEventHandler((event) => {
const query = getQuery(event)
const { group } = query
let sql = `
SELECT t.id, t.name, t.team_group,
COALESCE(ts.total_score, 0) as total_score,
COALESCE(ts.gold_count, 0) as gold_count,
COALESCE(ts.silver_count, 0) as silver_count,
COALESCE(ts.bronze_count, 0) as bronze_count
FROM teams t
LEFT JOIN team_scores ts ON t.id = ts.team_id
WHERE 1=1
`
const params: any[] = []
if (group) {
sql += ' AND t.team_group = ?'
params.push(group)
}
sql += ' ORDER BY ts.total_score DESC, ts.gold_count DESC, ts.silver_count DESC, ts.bronze_count DESC'
const stmt = db.prepare(sql)
const scoreboard = stmt.all(...params)
return {
success: true,
data: scoreboard
}
})