feat(player): 完善 H5 投注端与 API 演示数据

- 球赛/串关/优胜冠军、赛事详情、历史投注与个人资料编辑
- 固定顶栏、公告与底栏,仅内容区滚动
- 底部导航与站点 favicon 使用 logo,登录页精简
- API 种子、冠军盘与历史注单增强

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-06-02 17:18:11 +08:00
parent 7af2e418c3
commit b5dca1bfb1
75 changed files with 7077 additions and 384 deletions

View File

@@ -0,0 +1,94 @@
/** 球队 code / 名称 → ISO 3166-1 alpha-2用于 flagcdn 国旗图 */
const CODE_TO_ISO: Record<string, string> = {
MEX: 'mx',
USA: 'us',
CAN: 'ca',
BRA: 'br',
ARG: 'ar',
ENG: 'gb',
MUN: 'gb',
CHE: 'gb',
LIV: 'gb',
MCI: 'gb',
CZE: 'cz',
KOR: 'kr',
BIH: 'ba',
PAR: 'py',
RSA: 'za',
SUI: 'ch',
SCO: 'gb-sct',
TUR: 'tr',
CZE: 'cz',
BIH: 'ba',
FRA: 'fr',
ESP: 'es',
ENG: 'gb',
GER: 'de',
POR: 'pt',
NED: 'nl',
NOR: 'no',
BEL: 'be',
COL: 'co',
JPN: 'jp',
MAR: 'ma',
CRO: 'hr',
SEN: 'sn',
};
const NAME_TO_ISO: Record<string, string> = {
Mexico: 'mx',
'South Africa': 'za',
'United States': 'us',
USA: 'us',
Canada: 'ca',
Brazil: 'br',
Switzerland: 'ch',
Scotland: 'gb-sct',
Turkey: 'tr',
'South Korea': 'kr',
Paraguay: 'py',
西: 'mx',
: 'us',
: 'ca',
: 'gb',
西: 'gb',
西: 'mx',
: 'za',
: 'cz',
: 'kr',
: 'ba',
: 'py',
: 'ch',
西: 'br',
: 'gb-sct',
: 'tr',
: 'fr',
: 'ar',
: 'fr',
西: 'es',
: 'gb',
: 'de',
: 'pt',
: 'nl',
: 'no',
: 'be',
: 'co',
: 'jp',
: 'ma',
: 'hr',
: 'sn',
};
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 '';
}