# 运动会记分板模块 可复用的运动会管理模块,提供完整的比赛项目、队伍、成绩管理功能。 ## 目录结构 ``` modules/scoreboard/ ├── index.ts # 模块配置和常量 ├── api.ts # API 工具函数 ├── mod.ts # 模块导出 ├── ModuleLayout.vue # 模块布局组件 ├── StatCard.vue # 统计卡片组件 └── DataTable.vue # 数据表格组件 ``` ## 使用方式 ### 1. 导入配置常量 ```ts import { EVENT_CATEGORIES, TEAM_GROUPS, EVENT_TYPES, SCORING_RULES } from '~/modules/scoreboard' // 使用示例 const categories = Object.values(EVENT_CATEGORIES) // ['田赛', '径赛', '团体赛'] ``` ### 2. 使用 API 函数 ```ts import { fetchEvents, fetchTeams, fetchResults, fetchScoreboard, createResult } from '~/modules/scoreboard' // 获取所有比赛项目 const events = await fetchEvents() // 按类别筛选 const trackEvents = await fetchEvents({ category: '径赛' }) // 获取队伍 const teams = await fetchTeams({ group: '文化班甲组' }) // 录入成绩 await createResult({ event_id: 1, team_id: 1, score: '10.5', rank: 1 }) // 获取记分板 const scoreboard = await fetchScoreboard() ``` ### 3. 使用 UI 组件 ```vue ``` ## 积分规则 | 名次 | 积分 | 奖牌 | |------|------|------| | 第 1 名 | 7 分 | 金牌 | | 第 2 名 | 5 分 | 银牌 | | 第 3 名 | 3 分 | 铜牌 | ## 比赛项目 ### 田赛 - 跳高(米) - 跳远(米) - 掷铅球(米) ### 径赛 - 100m(秒) - 200m(秒) - 400m(秒) - 4×100m(秒) - 4×400m(秒) - 20×50m(秒) ### 团体赛 - 旱地龙舟(秒) - 跳长绳(次) - 折返跑(秒) ## 组别 - 教师组 - 航空班组 - 体育班组 - 文化班甲组 - 文化班乙组 ## API 接口 | 接口 | 方法 | 描述 | |------|------|------| | `/api/config` | GET | 获取系统配置 | | `/api/events` | GET/POST | 比赛项目管理 | | `/api/teams` | GET/POST | 队伍管理 | | `/api/results` | GET/POST | 成绩管理 | | `/api/scoreboard` | GET | 记分板数据 | | `/api/seed` | POST | 初始化数据 | ## 扩展模块 可以通过以下方式扩展模块功能: 1. 添加新的比赛项目类型 2. 自定义积分规则 3. 添加数据导出功能 4. 集成图表展示 5. 添加实时通知 ## License MIT