- 前后端分离架构 (Nuxt 3 + Element Plus) - SQLite 数据库 (better-sqlite3) - 比赛项目管理 (田赛/径赛/团体赛) - 队伍管理 (5 个组别) - 成绩录入与积分统计 - 记分板展示 (排名/奖牌榜) - 移动端响应式适配 - 侧边栏布局 + 抽屉菜单 - 自动生成初始化数据接口
36 lines
740 B
TypeScript
36 lines
740 B
TypeScript
import db from '../../db'
|
|
|
|
export default defineEventHandler((event) => {
|
|
const query = getQuery(event)
|
|
const { event_id, team_id } = query
|
|
|
|
let sql = `
|
|
SELECT r.*, e.name as event_name, e.category, e.unit, t.name as team_name, t.team_group
|
|
FROM results r
|
|
LEFT JOIN events e ON r.event_id = e.id
|
|
LEFT JOIN teams t ON r.team_id = t.id
|
|
WHERE 1=1
|
|
`
|
|
const params: any[] = []
|
|
|
|
if (event_id) {
|
|
sql += ' AND r.event_id = ?'
|
|
params.push(event_id)
|
|
}
|
|
|
|
if (team_id) {
|
|
sql += ' AND r.team_id = ?'
|
|
params.push(team_id)
|
|
}
|
|
|
|
sql += ' ORDER BY r.rank ASC, r.created_at DESC'
|
|
|
|
const stmt = db.prepare(sql)
|
|
const results = stmt.all(...params)
|
|
|
|
return {
|
|
success: true,
|
|
data: results
|
|
}
|
|
})
|