feat: 世界杯小程序数据层 - 球队数据/赛程数据/开发计划
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
# 2026美加墨世界杯小程序开发计划
|
||||
|
||||
## 项目概述
|
||||
- 框架: uni-app (Vue3) + Vite
|
||||
- 目标: 完善赛程管理、球队数据、球员数据
|
||||
|
||||
## 开发任务
|
||||
|
||||
### Phase 1: 数据层 (高优先级)
|
||||
1. 创建 src/data/teams.js - 48支球队数据
|
||||
2. 创建 src/data/players.js - 球员数据
|
||||
3. 创建 src/data/schedule.js - 赛程数据
|
||||
4. 创建 src/data/stadiums.js - 球场数据
|
||||
|
||||
### Phase 2: API层
|
||||
1. 完善 src/api/worldcup.js - 添加本地数据接口
|
||||
|
||||
### Phase 3: 页面完善
|
||||
1. src/pages/schedule/index.vue - 赛程页面
|
||||
2. src/pages/teams/index.vue - 球队列表
|
||||
3. src/pages/team-detail/index.vue - 球队详情
|
||||
4. src/pages/players/index.vue - 球员列表
|
||||
5. src/pages/match-detail/index.vue - 比赛详情
|
||||
6. src/pages/profile/index.vue - 个人中心
|
||||
|
||||
### Phase 4: 工具函数
|
||||
1. src/utils/format.js - 格式化函数完善
|
||||
|
||||
## 2026世界杯基本信息
|
||||
- 举办国: 美国、加拿大、墨西哥
|
||||
- 参赛队伍: 48支
|
||||
- 比赛时间: 2026年6月11日 - 7月19日
|
||||
- 分组: A-L组,每组4队
|
||||
@@ -0,0 +1,233 @@
|
||||
const venues = [
|
||||
{ id: 'mexico-city', city: '墨西哥城' },
|
||||
{ id: 'guadalajara', city: '瓜达拉哈拉' },
|
||||
{ id: 'monterrey', city: '蒙特雷' },
|
||||
{ id: 'toronto', city: '多伦多' },
|
||||
{ id: 'vancouver', city: '温哥华' },
|
||||
{ id: 'new-york-new-jersey', city: '纽约/新泽西' },
|
||||
{ id: 'los-angeles', city: '洛杉矶' },
|
||||
{ id: 'dallas', city: '达拉斯' },
|
||||
{ id: 'kansas-city', city: '堪萨斯城' },
|
||||
{ id: 'houston', city: '休斯敦' },
|
||||
{ id: 'atlanta', city: '亚特兰大' },
|
||||
{ id: 'philadelphia', city: '费城' },
|
||||
{ id: 'seattle', city: '西雅图' },
|
||||
{ id: 'san-francisco-bay-area', city: '旧金山湾区' },
|
||||
{ id: 'boston', city: '波士顿' },
|
||||
{ id: 'miami', city: '迈阿密' }
|
||||
]
|
||||
|
||||
const groups = {
|
||||
A: ['usa', 'colombia', 'senegal', 'new-zealand'],
|
||||
B: ['england', 'iran', 'wales', 'saudi-arabia'],
|
||||
C: ['argentina', 'mexico', 'poland', 'australia'],
|
||||
D: ['france', 'denmark', 'tunisia', 'peru'],
|
||||
E: ['spain', 'germany', 'japan', 'costa-rica'],
|
||||
F: ['belgium', 'croatia', 'morocco', 'canada'],
|
||||
G: ['brazil', 'switzerland', 'cameroon', 'south-korea'],
|
||||
H: ['portugal', 'uruguay', 'ghana', 'ecuador'],
|
||||
I: ['netherlands', 'serbia', 'algeria', 'paraguay'],
|
||||
J: ['italy', 'egypt', 'nigeria', 'honduras'],
|
||||
K: ['czechia', 'turkiye', 'chile', 'china'],
|
||||
L: ['austria', 'scotland', 'jamaica', 'qatar']
|
||||
}
|
||||
|
||||
const groupPairings = [
|
||||
[0, 1],
|
||||
[2, 3],
|
||||
[0, 2],
|
||||
[1, 3],
|
||||
[0, 3],
|
||||
[1, 2]
|
||||
]
|
||||
|
||||
const kickoffSlotsUtc = ['16:00:00Z', '19:00:00Z', '22:00:00Z', '01:00:00Z']
|
||||
|
||||
const knockoutRounds = [
|
||||
{
|
||||
stage: 'round32',
|
||||
date: '2026-07-03',
|
||||
pairings: [
|
||||
['1A', '3CDE'],
|
||||
['2A', '2B'],
|
||||
['1B', '3EFG'],
|
||||
['1C', '3ABF'],
|
||||
['2C', '2D'],
|
||||
['1D', '3GHI'],
|
||||
['1E', '3JKL'],
|
||||
['2E', '2F'],
|
||||
['1F', '3ABC'],
|
||||
['1G', '3DEF'],
|
||||
['2G', '2H'],
|
||||
['1H', '3IJK'],
|
||||
['1I', '3KLA'],
|
||||
['2I', '2J'],
|
||||
['1J', '3LBC'],
|
||||
['1K', '1L']
|
||||
]
|
||||
},
|
||||
{
|
||||
stage: 'round16',
|
||||
date: '2026-07-08',
|
||||
pairings: [
|
||||
['W73', 'W74'],
|
||||
['W75', 'W76'],
|
||||
['W77', 'W78'],
|
||||
['W79', 'W80'],
|
||||
['W81', 'W82'],
|
||||
['W83', 'W84'],
|
||||
['W85', 'W86'],
|
||||
['W87', 'W88']
|
||||
]
|
||||
},
|
||||
{
|
||||
stage: 'quarter',
|
||||
date: '2026-07-12',
|
||||
pairings: [
|
||||
['W89', 'W90'],
|
||||
['W91', 'W92'],
|
||||
['W93', 'W94'],
|
||||
['W95', 'W96']
|
||||
]
|
||||
},
|
||||
{
|
||||
stage: 'semi',
|
||||
date: '2026-07-16',
|
||||
pairings: [
|
||||
['W97', 'W98'],
|
||||
['W99', 'W100']
|
||||
]
|
||||
},
|
||||
{
|
||||
stage: 'final',
|
||||
date: '2026-07-19',
|
||||
pairings: [['W101', 'W102']]
|
||||
}
|
||||
]
|
||||
|
||||
function addDays(date, days) {
|
||||
const next = new Date(`${date}T00:00:00Z`)
|
||||
next.setUTCDate(next.getUTCDate() + days)
|
||||
return next.toISOString().slice(0, 10)
|
||||
}
|
||||
|
||||
function kickoffUtc(date, slotIndex) {
|
||||
const dayOffset = kickoffSlotsUtc[slotIndex % kickoffSlotsUtc.length] === '01:00:00Z' ? 1 : 0
|
||||
return `${addDays(date, dayOffset)}T${kickoffSlotsUtc[slotIndex % kickoffSlotsUtc.length]}`
|
||||
}
|
||||
|
||||
function kickoffBeijing(utcValue) {
|
||||
const date = new Date(utcValue)
|
||||
const parts = new Intl.DateTimeFormat('zh-CN', {
|
||||
timeZone: 'Asia/Shanghai',
|
||||
year: 'numeric',
|
||||
month: '2-digit',
|
||||
day: '2-digit',
|
||||
hour: '2-digit',
|
||||
minute: '2-digit',
|
||||
hour12: false
|
||||
}).formatToParts(date)
|
||||
|
||||
const value = (type) => parts.find((part) => part.type === type)?.value
|
||||
return `${value('year')}-${value('month')}-${value('day')} ${value('hour')}:${value('minute')}`
|
||||
}
|
||||
|
||||
function createMatch({ id, matchday, stage, group, homeTeamId, awayTeamId, utc, venue }) {
|
||||
return {
|
||||
id,
|
||||
matchday,
|
||||
stage,
|
||||
group,
|
||||
home_team_id: homeTeamId,
|
||||
away_team_id: awayTeamId,
|
||||
kickoff_utc: utc,
|
||||
kickoff_beijing: kickoffBeijing(utc),
|
||||
venue_id: venue.id,
|
||||
venue_city: venue.city,
|
||||
status: 'scheduled',
|
||||
home_score: null,
|
||||
away_score: null
|
||||
}
|
||||
}
|
||||
|
||||
function buildGroupStage() {
|
||||
const matches = []
|
||||
const groupLetters = Object.keys(groups)
|
||||
let id = 1
|
||||
|
||||
for (let round = 0; round < 3; round += 1) {
|
||||
for (let groupIndex = 0; groupIndex < groupLetters.length; groupIndex += 1) {
|
||||
const group = groupLetters[groupIndex]
|
||||
const teams = groups[group]
|
||||
const matchDate = addDays('2026-06-11', round * 6 + Math.floor(groupIndex / 2))
|
||||
|
||||
for (let pairIndex = 0; pairIndex < 2; pairIndex += 1) {
|
||||
const [homeIndex, awayIndex] = groupPairings[round * 2 + pairIndex]
|
||||
const globalIndex = id - 1
|
||||
const utc = kickoffUtc(matchDate, globalIndex)
|
||||
const venue = venues[globalIndex % venues.length]
|
||||
|
||||
matches.push(createMatch({
|
||||
id,
|
||||
matchday: round * 6 + Math.floor(groupIndex / 2) + 1,
|
||||
stage: 'group',
|
||||
group,
|
||||
homeTeamId: teams[homeIndex],
|
||||
awayTeamId: teams[awayIndex],
|
||||
utc,
|
||||
venue
|
||||
}))
|
||||
|
||||
id += 1
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return matches
|
||||
}
|
||||
|
||||
function qualifierId(seed) {
|
||||
if (seed.startsWith('W')) return `winner-match-${seed.slice(1)}`
|
||||
|
||||
const position = seed[0]
|
||||
const group = seed.slice(1)
|
||||
if (position === '1') return `group-${group.toLowerCase()}-winner`
|
||||
if (position === '2') return `group-${group.toLowerCase()}-runner-up`
|
||||
return `best-third-${group.toLowerCase()}`
|
||||
}
|
||||
|
||||
function buildKnockoutStage(startId) {
|
||||
const matches = []
|
||||
let id = startId
|
||||
|
||||
knockoutRounds.forEach((round, roundIndex) => {
|
||||
round.pairings.forEach(([homeSeed, awaySeed], pairIndex) => {
|
||||
const roundDayOffset = Math.floor(pairIndex / 2)
|
||||
const slotIndex = pairIndex + roundIndex
|
||||
const utc = kickoffUtc(addDays(round.date, roundDayOffset), slotIndex)
|
||||
const venue = venues[(id + 3) % venues.length]
|
||||
|
||||
matches.push(createMatch({
|
||||
id,
|
||||
matchday: 23 + roundIndex * 4 + roundDayOffset,
|
||||
stage: round.stage,
|
||||
group: null,
|
||||
homeTeamId: qualifierId(homeSeed),
|
||||
awayTeamId: qualifierId(awaySeed),
|
||||
utc,
|
||||
venue
|
||||
}))
|
||||
|
||||
id += 1
|
||||
})
|
||||
})
|
||||
|
||||
return matches
|
||||
}
|
||||
|
||||
const schedule = [
|
||||
...buildGroupStage(),
|
||||
...buildKnockoutStage(73)
|
||||
]
|
||||
|
||||
export default schedule
|
||||
@@ -0,0 +1,628 @@
|
||||
const teams = [
|
||||
{
|
||||
id: 'usa',
|
||||
name: '美国',
|
||||
name_en: 'United States',
|
||||
nickname: '山姆大叔',
|
||||
group: 'A',
|
||||
flag: '🇺🇸',
|
||||
confederation: 'CONCACAF',
|
||||
fifa_ranking: 15,
|
||||
best_result: '季军(1930)',
|
||||
coach: '毛里西奥·波切蒂诺',
|
||||
style: '身体素质出色,节奏快,擅长边路冲击和高位压迫。'
|
||||
},
|
||||
{
|
||||
id: 'colombia',
|
||||
name: '哥伦比亚',
|
||||
name_en: 'Colombia',
|
||||
nickname: '咖啡军团',
|
||||
group: 'A',
|
||||
flag: '🇨🇴',
|
||||
confederation: 'CONMEBOL',
|
||||
fifa_ranking: 13,
|
||||
best_result: '八强(2014)',
|
||||
coach: '内斯托尔·洛伦索',
|
||||
style: '技术细腻,前场个人能力强,转换进攻速度快。'
|
||||
},
|
||||
{
|
||||
id: 'senegal',
|
||||
name: '塞内加尔',
|
||||
name_en: 'Senegal',
|
||||
nickname: '特兰加雄狮',
|
||||
group: 'A',
|
||||
flag: '🇸🇳',
|
||||
confederation: 'CAF',
|
||||
fifa_ranking: 18,
|
||||
best_result: '八强(2002)',
|
||||
coach: '帕普·蒂亚乌',
|
||||
style: '对抗强硬,攻防转换直接,边路速度和身体压迫感突出。'
|
||||
},
|
||||
{
|
||||
id: 'new-zealand',
|
||||
name: '新西兰',
|
||||
name_en: 'New Zealand',
|
||||
nickname: '全白军团',
|
||||
group: 'A',
|
||||
flag: '🇳🇿',
|
||||
confederation: 'OFC',
|
||||
fifa_ranking: 83,
|
||||
best_result: '小组赛(1982、2010)',
|
||||
coach: '达伦·贝兹利',
|
||||
style: '阵型纪律性强,重视定位球和防守组织。'
|
||||
},
|
||||
{
|
||||
id: 'england',
|
||||
name: '英格兰',
|
||||
name_en: 'England',
|
||||
nickname: '三狮军团',
|
||||
group: 'B',
|
||||
flag: '\u{1F3F4}\u{E0067}\u{E0062}\u{E0065}\u{E006E}\u{E0067}\u{E007F}',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 4,
|
||||
best_result: '冠军(1966)',
|
||||
coach: '托马斯·图赫尔',
|
||||
style: '阵容厚度深,边路与中路都具备强推进能力,定位球威胁大。'
|
||||
},
|
||||
{
|
||||
id: 'iran',
|
||||
name: '伊朗',
|
||||
name_en: 'Iran',
|
||||
nickname: '波斯铁骑',
|
||||
group: 'B',
|
||||
flag: '🇮🇷',
|
||||
confederation: 'AFC',
|
||||
fifa_ranking: 21,
|
||||
best_result: '小组赛(多届)',
|
||||
coach: '阿米尔·加莱诺伊',
|
||||
style: '防守硬度高,反击简洁,善于利用中锋支点和定位球。'
|
||||
},
|
||||
{
|
||||
id: 'wales',
|
||||
name: '威尔士',
|
||||
name_en: 'Wales',
|
||||
nickname: '红龙军团',
|
||||
group: 'B',
|
||||
flag: '\u{1F3F4}\u{E0067}\u{E0062}\u{E0077}\u{E006C}\u{E0073}\u{E007F}',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 33,
|
||||
best_result: '八强(1958)',
|
||||
coach: '克雷格·贝拉米',
|
||||
style: '整体跑动积极,重视边路速度和快速反击。'
|
||||
},
|
||||
{
|
||||
id: 'saudi-arabia',
|
||||
name: '沙特阿拉伯',
|
||||
name_en: 'Saudi Arabia',
|
||||
nickname: '西亚绿鹰',
|
||||
group: 'B',
|
||||
flag: '🇸🇦',
|
||||
confederation: 'AFC',
|
||||
fifa_ranking: 58,
|
||||
best_result: '十六强(1994)',
|
||||
coach: '埃尔韦·勒纳尔',
|
||||
style: '脚下技术细腻,敢于前压,攻守节奏变化明显。'
|
||||
},
|
||||
{
|
||||
id: 'argentina',
|
||||
name: '阿根廷',
|
||||
name_en: 'Argentina',
|
||||
nickname: '潘帕斯雄鹰',
|
||||
group: 'C',
|
||||
flag: '🇦🇷',
|
||||
confederation: 'CONMEBOL',
|
||||
fifa_ranking: 1,
|
||||
best_result: '冠军(1978、1986、2022)',
|
||||
coach: '利昂内尔·斯卡洛尼',
|
||||
style: '控球与个人创造力兼备,中前场衔接细腻,比赛控制力强。'
|
||||
},
|
||||
{
|
||||
id: 'mexico',
|
||||
name: '墨西哥',
|
||||
name_en: 'Mexico',
|
||||
nickname: '仙人掌军团',
|
||||
group: 'C',
|
||||
flag: '🇲🇽',
|
||||
confederation: 'CONCACAF',
|
||||
fifa_ranking: 14,
|
||||
best_result: '八强(1970、1986)',
|
||||
coach: '哈维尔·阿吉雷',
|
||||
style: '传控基础扎实,边路推进积极,主场氛围能放大压迫强度。'
|
||||
},
|
||||
{
|
||||
id: 'poland',
|
||||
name: '波兰',
|
||||
name_en: 'Poland',
|
||||
nickname: '白鹰军团',
|
||||
group: 'C',
|
||||
flag: '🇵🇱',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 37,
|
||||
best_result: '季军(1974、1982)',
|
||||
coach: '扬·乌尔班',
|
||||
style: '中锋支点突出,打法务实,重视防守站位和禁区终结。'
|
||||
},
|
||||
{
|
||||
id: 'australia',
|
||||
name: '澳大利亚',
|
||||
name_en: 'Australia',
|
||||
nickname: '袋鼠军团',
|
||||
group: 'C',
|
||||
flag: '🇦🇺',
|
||||
confederation: 'AFC',
|
||||
fifa_ranking: 24,
|
||||
best_result: '十六强(2006、2022)',
|
||||
coach: '托尼·波波维奇',
|
||||
style: '身体对抗强,执行力稳定,擅长长传冲吊和定位球。'
|
||||
},
|
||||
{
|
||||
id: 'france',
|
||||
name: '法国',
|
||||
name_en: 'France',
|
||||
nickname: '高卢雄鸡',
|
||||
group: 'D',
|
||||
flag: '🇫🇷',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 2,
|
||||
best_result: '冠军(1998、2018)',
|
||||
coach: '迪迪埃·德尚',
|
||||
style: '攻守平衡,纵深速度顶级,反击和阵地战都具备强杀伤力。'
|
||||
},
|
||||
{
|
||||
id: 'denmark',
|
||||
name: '丹麦',
|
||||
name_en: 'Denmark',
|
||||
nickname: '丹麦童话',
|
||||
group: 'D',
|
||||
flag: '🇩🇰',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 20,
|
||||
best_result: '八强(1998)',
|
||||
coach: '布赖恩·里默',
|
||||
style: '团队结构清晰,传跑默契,边翼卫和中场组织能力突出。'
|
||||
},
|
||||
{
|
||||
id: 'tunisia',
|
||||
name: '突尼斯',
|
||||
name_en: 'Tunisia',
|
||||
nickname: '迦太基雄鹰',
|
||||
group: 'D',
|
||||
flag: '🇹🇳',
|
||||
confederation: 'CAF',
|
||||
fifa_ranking: 49,
|
||||
best_result: '小组赛(多届)',
|
||||
coach: '萨米·特拉贝尔西',
|
||||
style: '防守紧凑,拼抢积极,依靠快速转移寻找反击机会。'
|
||||
},
|
||||
{
|
||||
id: 'peru',
|
||||
name: '秘鲁',
|
||||
name_en: 'Peru',
|
||||
nickname: '印加军团',
|
||||
group: 'D',
|
||||
flag: '🇵🇪',
|
||||
confederation: 'CONMEBOL',
|
||||
fifa_ranking: 42,
|
||||
best_result: '八强(1970)',
|
||||
coach: '曼努埃尔·巴雷托',
|
||||
style: '地面配合细腻,边中结合流畅,讲究节奏控制。'
|
||||
},
|
||||
{
|
||||
id: 'spain',
|
||||
name: '西班牙',
|
||||
name_en: 'Spain',
|
||||
nickname: '斗牛士军团',
|
||||
group: 'E',
|
||||
flag: '🇪🇸',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 3,
|
||||
best_result: '冠军(2010)',
|
||||
coach: '路易斯·德拉富恩特',
|
||||
style: '控球传导成熟,边锋突破锐利,善于通过连续传递撕开空间。'
|
||||
},
|
||||
{
|
||||
id: 'germany',
|
||||
name: '德国',
|
||||
name_en: 'Germany',
|
||||
nickname: '德国战车',
|
||||
group: 'E',
|
||||
flag: '🇩🇪',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 9,
|
||||
best_result: '冠军(1954、1974、1990、2014)',
|
||||
coach: '尤利安·纳格尔斯曼',
|
||||
style: '攻防节奏快,压迫体系鲜明,中前场轮转和远射能力强。'
|
||||
},
|
||||
{
|
||||
id: 'japan',
|
||||
name: '日本',
|
||||
name_en: 'Japan',
|
||||
nickname: '蓝武士',
|
||||
group: 'E',
|
||||
flag: '🇯🇵',
|
||||
confederation: 'AFC',
|
||||
fifa_ranking: 17,
|
||||
best_result: '十六强(2002、2010、2018、2022)',
|
||||
coach: '森保一',
|
||||
style: '传控细腻,整体移动快,擅长高强度逼抢和边路渗透。'
|
||||
},
|
||||
{
|
||||
id: 'costa-rica',
|
||||
name: '哥斯达黎加',
|
||||
name_en: 'Costa Rica',
|
||||
nickname: '加勒比海盗',
|
||||
group: 'E',
|
||||
flag: '🇨🇷',
|
||||
confederation: 'CONCACAF',
|
||||
fifa_ranking: 54,
|
||||
best_result: '八强(2014)',
|
||||
coach: '米格尔·埃雷拉',
|
||||
style: '防守韧性强,门将传统出色,擅长低位防守后的快速反击。'
|
||||
},
|
||||
{
|
||||
id: 'belgium',
|
||||
name: '比利时',
|
||||
name_en: 'Belgium',
|
||||
nickname: '欧洲红魔',
|
||||
group: 'F',
|
||||
flag: '🇧🇪',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 8,
|
||||
best_result: '季军(2018)',
|
||||
coach: '鲁迪·加西亚',
|
||||
style: '中前场创造力强,进攻层次丰富,依靠球星能力制造机会。'
|
||||
},
|
||||
{
|
||||
id: 'croatia',
|
||||
name: '克罗地亚',
|
||||
name_en: 'Croatia',
|
||||
nickname: '格子军团',
|
||||
group: 'F',
|
||||
flag: '🇭🇷',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 10,
|
||||
best_result: '亚军(2018)',
|
||||
coach: '兹拉特科·达利奇',
|
||||
style: '中场控制力强,比赛经验丰富,擅长在胶着局面中掌控节奏。'
|
||||
},
|
||||
{
|
||||
id: 'morocco',
|
||||
name: '摩洛哥',
|
||||
name_en: 'Morocco',
|
||||
nickname: '亚特拉斯雄狮',
|
||||
group: 'F',
|
||||
flag: '🇲🇦',
|
||||
confederation: 'CAF',
|
||||
fifa_ranking: 12,
|
||||
best_result: '四强(2022)',
|
||||
coach: '瓦利德·雷格拉吉',
|
||||
style: '防守组织严密,边路冲击强,反击速度和对抗质量很高。'
|
||||
},
|
||||
{
|
||||
id: 'canada',
|
||||
name: '加拿大',
|
||||
name_en: 'Canada',
|
||||
nickname: '枫叶军团',
|
||||
group: 'F',
|
||||
flag: '🇨🇦',
|
||||
confederation: 'CONCACAF',
|
||||
fifa_ranking: 30,
|
||||
best_result: '小组赛(1986、2022)',
|
||||
coach: '杰西·马什',
|
||||
style: '速度优势明显,边路推进犀利,强调前场压迫和纵向冲击。'
|
||||
},
|
||||
{
|
||||
id: 'brazil',
|
||||
name: '巴西',
|
||||
name_en: 'Brazil',
|
||||
nickname: '桑巴军团',
|
||||
group: 'G',
|
||||
flag: '🇧🇷',
|
||||
confederation: 'CONMEBOL',
|
||||
fifa_ranking: 6,
|
||||
best_result: '冠军(1958、1962、1970、1994、2002)',
|
||||
coach: '卡洛·安切洛蒂',
|
||||
style: '个人技术顶级,边锋爆点多,进攻端兼具即兴创造和团队配合。'
|
||||
},
|
||||
{
|
||||
id: 'switzerland',
|
||||
name: '瑞士',
|
||||
name_en: 'Switzerland',
|
||||
nickname: '钟表匠',
|
||||
group: 'G',
|
||||
flag: '🇨🇭',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 19,
|
||||
best_result: '八强(1934、1938、1954)',
|
||||
coach: '穆拉特·雅金',
|
||||
style: '体系稳定,防线协作成熟,擅长通过中场压迫限制对手。'
|
||||
},
|
||||
{
|
||||
id: 'cameroon',
|
||||
name: '喀麦隆',
|
||||
name_en: 'Cameroon',
|
||||
nickname: '非洲雄狮',
|
||||
group: 'G',
|
||||
flag: '🇨🇲',
|
||||
confederation: 'CAF',
|
||||
fifa_ranking: 51,
|
||||
best_result: '八强(1990)',
|
||||
coach: '马克·布里斯',
|
||||
style: '身体冲击力强,攻防转换直接,依靠速度和对抗制造混乱。'
|
||||
},
|
||||
{
|
||||
id: 'south-korea',
|
||||
name: '韩国',
|
||||
name_en: 'South Korea',
|
||||
nickname: '太极虎',
|
||||
group: 'G',
|
||||
flag: '🇰🇷',
|
||||
confederation: 'AFC',
|
||||
fifa_ranking: 23,
|
||||
best_result: '四强(2002)',
|
||||
coach: '洪明甫',
|
||||
style: '跑动覆盖大,反击速度快,前场压迫和边路推进有威胁。'
|
||||
},
|
||||
{
|
||||
id: 'portugal',
|
||||
name: '葡萄牙',
|
||||
name_en: 'Portugal',
|
||||
nickname: '五盾军团',
|
||||
group: 'H',
|
||||
flag: '🇵🇹',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 7,
|
||||
best_result: '季军(1966)',
|
||||
coach: '罗伯托·马丁内斯',
|
||||
style: '技术型球员密集,边路和肋部创造力强,阵地战办法多。'
|
||||
},
|
||||
{
|
||||
id: 'uruguay',
|
||||
name: '乌拉圭',
|
||||
name_en: 'Uruguay',
|
||||
nickname: '天蓝军团',
|
||||
group: 'H',
|
||||
flag: '🇺🇾',
|
||||
confederation: 'CONMEBOL',
|
||||
fifa_ranking: 11,
|
||||
best_result: '冠军(1930、1950)',
|
||||
coach: '马塞洛·贝尔萨',
|
||||
style: '侵略性强,压迫节奏高,兼具南美技术和硬朗对抗。'
|
||||
},
|
||||
{
|
||||
id: 'ghana',
|
||||
name: '加纳',
|
||||
name_en: 'Ghana',
|
||||
nickname: '黑星军团',
|
||||
group: 'H',
|
||||
flag: '🇬🇭',
|
||||
confederation: 'CAF',
|
||||
fifa_ranking: 75,
|
||||
best_result: '八强(2010)',
|
||||
coach: '奥托·阿多',
|
||||
style: '中场运动能力强,反击推进快,依靠身体和速度拉开空间。'
|
||||
},
|
||||
{
|
||||
id: 'ecuador',
|
||||
name: '厄瓜多尔',
|
||||
name_en: 'Ecuador',
|
||||
nickname: '高原雄鹰',
|
||||
group: 'H',
|
||||
flag: '🇪🇨',
|
||||
confederation: 'CONMEBOL',
|
||||
fifa_ranking: 25,
|
||||
best_result: '十六强(2006)',
|
||||
coach: '塞巴斯蒂安·贝卡塞塞',
|
||||
style: '身体机能出色,逼抢积极,攻防转换速度快。'
|
||||
},
|
||||
{
|
||||
id: 'netherlands',
|
||||
name: '荷兰',
|
||||
name_en: 'Netherlands',
|
||||
nickname: '橙衣军团',
|
||||
group: 'I',
|
||||
flag: '🇳🇱',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 5,
|
||||
best_result: '亚军(1974、1978、2010)',
|
||||
coach: '罗纳德·科曼',
|
||||
style: '重视阵型宽度和传控推进,后场出球能力强,边中结合成熟。'
|
||||
},
|
||||
{
|
||||
id: 'serbia',
|
||||
name: '塞尔维亚',
|
||||
name_en: 'Serbia',
|
||||
nickname: '巴尔干雄鹰',
|
||||
group: 'I',
|
||||
flag: '🇷🇸',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 34,
|
||||
best_result: '第四名(1930、1962,南斯拉夫时期)',
|
||||
coach: '德拉甘·斯托伊科维奇',
|
||||
style: '身材高大,中锋和定位球威胁突出,进攻端直接性强。'
|
||||
},
|
||||
{
|
||||
id: 'algeria',
|
||||
name: '阿尔及利亚',
|
||||
name_en: 'Algeria',
|
||||
nickname: '沙漠之狐',
|
||||
group: 'I',
|
||||
flag: '🇩🇿',
|
||||
confederation: 'CAF',
|
||||
fifa_ranking: 36,
|
||||
best_result: '十六强(2014)',
|
||||
coach: '弗拉基米尔·佩特科维奇',
|
||||
style: '边路个人能力强,反击速度快,前场技术型球员多。'
|
||||
},
|
||||
{
|
||||
id: 'paraguay',
|
||||
name: '巴拉圭',
|
||||
name_en: 'Paraguay',
|
||||
nickname: '南美白衣军团',
|
||||
group: 'I',
|
||||
flag: '🇵🇾',
|
||||
confederation: 'CONMEBOL',
|
||||
fifa_ranking: 39,
|
||||
best_result: '八强(2010)',
|
||||
coach: '古斯塔沃·阿尔法罗',
|
||||
style: '防守硬朗,阵型紧凑,善于通过定位球和反击制造威胁。'
|
||||
},
|
||||
{
|
||||
id: 'italy',
|
||||
name: '意大利',
|
||||
name_en: 'Italy',
|
||||
nickname: '蓝衣军团',
|
||||
group: 'J',
|
||||
flag: '🇮🇹',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 16,
|
||||
best_result: '冠军(1934、1938、1982、2006)',
|
||||
coach: '詹纳罗·加图索',
|
||||
style: '战术纪律强,防守传统深厚,强调中场控制和攻守平衡。'
|
||||
},
|
||||
{
|
||||
id: 'egypt',
|
||||
name: '埃及',
|
||||
name_en: 'Egypt',
|
||||
nickname: '法老军团',
|
||||
group: 'J',
|
||||
flag: '🇪🇬',
|
||||
confederation: 'CAF',
|
||||
fifa_ranking: 32,
|
||||
best_result: '小组赛(1934、1990、2018)',
|
||||
coach: '霍萨姆·哈桑',
|
||||
style: '边路进攻突出,反击依赖核心球员爆点,整体防守较务实。'
|
||||
},
|
||||
{
|
||||
id: 'nigeria',
|
||||
name: '尼日利亚',
|
||||
name_en: 'Nigeria',
|
||||
nickname: '非洲雄鹰',
|
||||
group: 'J',
|
||||
flag: '🇳🇬',
|
||||
confederation: 'CAF',
|
||||
fifa_ranking: 44,
|
||||
best_result: '十六强(1994、1998、2014)',
|
||||
coach: '埃里克·谢勒',
|
||||
style: '速度和力量优势明显,前场冲击力强,转换进攻威胁大。'
|
||||
},
|
||||
{
|
||||
id: 'honduras',
|
||||
name: '洪都拉斯',
|
||||
name_en: 'Honduras',
|
||||
nickname: '加勒比蓝白军团',
|
||||
group: 'J',
|
||||
flag: '🇭🇳',
|
||||
confederation: 'CONCACAF',
|
||||
fifa_ranking: 76,
|
||||
best_result: '小组赛(1982、2010、2014)',
|
||||
coach: '雷纳尔多·鲁埃达',
|
||||
style: '对抗积极,节奏直接,擅长通过边路冲击和定位球争取机会。'
|
||||
},
|
||||
{
|
||||
id: 'czechia',
|
||||
name: '捷克',
|
||||
name_en: 'Czechia',
|
||||
nickname: '东欧铁骑',
|
||||
group: 'K',
|
||||
flag: '🇨🇿',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 35,
|
||||
best_result: '亚军(1934、1962,捷克斯洛伐克时期)',
|
||||
coach: '伊万·哈谢克',
|
||||
style: '身体对抗强,攻防节奏稳,定位球和中路冲击有传统优势。'
|
||||
},
|
||||
{
|
||||
id: 'turkiye',
|
||||
name: '土耳其',
|
||||
name_en: 'Turkiye',
|
||||
nickname: '星月军团',
|
||||
group: 'K',
|
||||
flag: '🇹🇷',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 26,
|
||||
best_result: '季军(2002)',
|
||||
coach: '文琴佐·蒙特拉',
|
||||
style: '比赛情绪和强度高,前场敢压迫,边路和远射威胁明显。'
|
||||
},
|
||||
{
|
||||
id: 'chile',
|
||||
name: '智利',
|
||||
name_en: 'Chile',
|
||||
nickname: '南美红魔',
|
||||
group: 'K',
|
||||
flag: '🇨🇱',
|
||||
confederation: 'CONMEBOL',
|
||||
fifa_ranking: 52,
|
||||
best_result: '季军(1962)',
|
||||
coach: '尼古拉斯·科尔多瓦',
|
||||
style: '拼抢凶狠,节奏直接,重视中前场压迫和快速推进。'
|
||||
},
|
||||
{
|
||||
id: 'china',
|
||||
name: '中国',
|
||||
name_en: 'China PR',
|
||||
nickname: '国足',
|
||||
group: 'K',
|
||||
flag: '🇨🇳',
|
||||
confederation: 'AFC',
|
||||
fifa_ranking: 94,
|
||||
best_result: '小组赛(2002)',
|
||||
coach: '布兰科·伊万科维奇',
|
||||
style: '打法偏务实,强调防守落位和边路推进,定位球是重要进攻手段。'
|
||||
},
|
||||
{
|
||||
id: 'austria',
|
||||
name: '奥地利',
|
||||
name_en: 'Austria',
|
||||
nickname: '奥地利雄鹰',
|
||||
group: 'L',
|
||||
flag: '🇦🇹',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 22,
|
||||
best_result: '季军(1954)',
|
||||
coach: '拉尔夫·朗尼克',
|
||||
style: '高位压迫鲜明,转换速度快,整体跑动和逼抢强度高。'
|
||||
},
|
||||
{
|
||||
id: 'scotland',
|
||||
name: '苏格兰',
|
||||
name_en: 'Scotland',
|
||||
nickname: '风笛军团',
|
||||
group: 'L',
|
||||
flag: '\u{1F3F4}\u{E0067}\u{E0062}\u{E0073}\u{E0063}\u{E0074}\u{E007F}',
|
||||
confederation: 'UEFA',
|
||||
fifa_ranking: 43,
|
||||
best_result: '小组赛(多届)',
|
||||
coach: '史蒂夫·克拉克',
|
||||
style: '作风硬朗,边路传中和身体对抗突出,团队执行力稳定。'
|
||||
},
|
||||
{
|
||||
id: 'jamaica',
|
||||
name: '牙买加',
|
||||
name_en: 'Jamaica',
|
||||
nickname: '雷鬼男孩',
|
||||
group: 'L',
|
||||
flag: '🇯🇲',
|
||||
confederation: 'CONCACAF',
|
||||
fifa_ranking: 70,
|
||||
best_result: '小组赛(1998)',
|
||||
coach: '史蒂夫·麦克拉伦',
|
||||
style: '速度天赋突出,反击冲击强,依靠边路爆发力制造机会。'
|
||||
},
|
||||
{
|
||||
id: 'qatar',
|
||||
name: '卡塔尔',
|
||||
name_en: 'Qatar',
|
||||
nickname: '西亚红狐',
|
||||
group: 'L',
|
||||
flag: '🇶🇦',
|
||||
confederation: 'AFC',
|
||||
fifa_ranking: 53,
|
||||
best_result: '小组赛(2022)',
|
||||
coach: '胡伦·洛佩特吉',
|
||||
style: '短传配合熟练,节奏控制意识强,擅长通过中路渗透组织进攻。'
|
||||
}
|
||||
]
|
||||
|
||||
export default teams
|
||||
Reference in New Issue
Block a user