Files
thebet365/apps/player/src/utils/teamFlag.ts
Mars 27580b2479 feat(admin,player,api): 优胜冠军通用管理与界面精简
管理端新增冠军盘列表/编辑、展开懒加载与 ECharts 修复;各列表页去掉重复标题。玩家端支持多赛事冠军盘、分批加载与语言切换刷新。API 扩展 outright CRUD 与列表性能优化。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-04 09:17:01 +08:00

175 lines
3.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/** 球队 code / 名称 → ISO 3166-1flagcdn.com含世界杯 48 强 */
const CODE_TO_ISO: Record<string, string> = {
// 世界杯 2026 48 强
FRA: 'fr',
ESP: 'es',
ENG: 'gb-eng',
BRA: 'br',
ARG: 'ar',
POR: 'pt',
GER: 'de',
NED: 'nl',
NOR: 'no',
BEL: 'be',
COL: 'co',
JPN: 'jp',
URU: 'uy',
USA: 'us',
MAR: 'ma',
CRO: 'hr',
MEX: 'mx',
SUI: 'ch',
TUR: 'tr',
SEN: 'sn',
KOR: 'kr',
AUT: 'at',
ECU: 'ec',
SWE: 'se',
IRN: 'ir',
GHA: 'gh',
ALG: 'dz',
BIH: 'ba',
EGY: 'eg',
TUN: 'tn',
CAN: 'ca',
PAN: 'pa',
AUS: 'au',
CZE: 'cz',
KSA: 'sa',
NZL: 'nz',
COD: 'cd',
UZB: 'uz',
IRQ: 'iq',
RSA: 'za',
CIV: 'ci',
JOR: 'jo',
PAR: 'py',
HAI: 'ht',
QAT: 'qa',
CPV: 'cv',
CUW: 'cw',
SCO: 'gb-sct',
// 俱乐部 / 演示联赛
MUN: 'gb',
CHE: 'gb',
LIV: 'gb',
MCI: 'gb',
};
const NAME_TO_ISO: Record<string, string> = {
France: 'fr',
Spain: 'es',
England: 'gb-eng',
Brazil: 'br',
Argentina: 'ar',
Portugal: 'pt',
Germany: 'de',
Netherlands: 'nl',
Norway: 'no',
Belgium: 'be',
Colombia: 'co',
Japan: 'jp',
Uruguay: 'uy',
USA: 'us',
'United States': 'us',
Morocco: 'ma',
Croatia: 'hr',
Mexico: 'mx',
Switzerland: 'ch',
Turkey: 'tr',
Senegal: 'sn',
'South Korea': 'kr',
Austria: 'at',
Ecuador: 'ec',
Sweden: 'se',
Iran: 'ir',
Ghana: 'gh',
Algeria: 'dz',
Bosnia: 'ba',
Egypt: 'eg',
Tunisia: 'tn',
Canada: 'ca',
Panama: 'pa',
Australia: 'au',
Czech: 'cz',
'Czech Republic': 'cz',
'Saudi Arabia': 'sa',
'New Zealand': 'nz',
'DR Congo': 'cd',
Uzbekistan: 'uz',
Iraq: 'iq',
'South Africa': 'za',
'Ivory Coast': 'ci',
Jordan: 'jo',
Paraguay: 'py',
Haiti: 'ht',
Qatar: 'qa',
'Cape Verde': 'cv',
Curacao: 'cw',
Scotland: 'gb-sct',
: 'fr',
西: 'es',
: 'gb-eng',
西: 'br',
: 'ar',
: 'pt',
: 'de',
: 'nl',
: 'no',
: 'be',
: 'co',
: 'jp',
: 'uy',
: 'us',
: 'ma',
: 'hr',
西: 'mx',
: 'ch',
: 'tr',
: 'sn',
: 'kr',
: 'at',
: 'ec',
: 'se',
: 'ir',
: 'gh',
: 'dz',
: 'ba',
: 'eg',
: 'tn',
: 'ca',
: 'pa',
: 'au',
: 'cz',
: 'sa',
西: 'nz',
'刚果(金)': 'cd',
: 'uz',
: 'iq',
: 'za',
: 'ci',
: 'jo',
: 'py',
: 'ht',
: 'qa',
: 'cv',
: 'cw',
: 'gb-sct',
: 'gb',
西: 'gb',
};
export function teamFlagUrl(code?: string, name?: string): string {
const key = (code ?? '').toUpperCase();
if (key && CODE_TO_ISO[key]) {
return `https://flagcdn.com/w40/${CODE_TO_ISO[key]}.png`;
}
if (name && NAME_TO_ISO[name]) {
return `https://flagcdn.com/w40/${NAME_TO_ISO[name]}.png`;
}
if (key.length === 2) {
return `https://flagcdn.com/w40/${key.toLowerCase()}.png`;
}
return '';
}