[{"data":1,"prerenderedAt":687},["ShallowReactive",2],{"project-football-ai-worldcup-prediction":3},{"id":4,"title":5,"body":6,"date":676,"description":677,"extension":678,"meta":679,"navigation":680,"path":681,"seo":682,"stem":683,"summary":684,"tech_stack":685,"__hash__":686},"projects\u002Fprojects\u002Ffootball-ai-worldcup-prediction.md","预见足球AI - 世界杯AI智能预测",{"type":7,"value":8,"toc":647},"minimark",[9,14,19,32,42,64,67,71,75,89,92,119,121,125,128,259,262,272,275,281,283,287,291,326,330,361,365,437,441,467,471,492,496,510,512,516,540,542,546,549,569,573,590,593,601,603,607,645],[10,11,13],"h1",{"id":12},"预见足球-ai-世界杯赛事-ai-智能预测小程序","预见足球 AI — 世界杯赛事 AI 智能预测小程序",[15,16,18],"h2",{"id":17},"一项目概述","一、项目概述",[20,21,22,23,27,28,31],"p",{},"2026 年 FIFA 世界杯即将来临，球迷和竞猜爱好者需要一款能",[24,25,26],"strong",{},"整合赛事数据、AI 预测与赔率信息","的一站式工具。然而现有应用要么仅有赛程展示，要么预测维度单一，缺少将 AI 预测、市场预期、博彩赔率进行",[24,29,30],{},"多维度对比","的综合平台。",[20,33,34,37,38,41],{},[24,35,36],{},"预见足球 AI"," 是一款基于 ",[24,39,40],{},"uni-app + Vue 3"," 构建的微信小程序，接入 BSD Sports Data API 获取赛事与预测数据，为用户提供 48 支参赛球队的赛程浏览、积分榜排名、AI 智能预测推荐、Polymarket 市场预期与多公司赔率对比，帮助用户从多个角度评估比赛走向。",[43,44,45,52,58],"ul",{},[46,47,48,51],"li",{},[24,49,50],{},"项目形态","：微信小程序（主力）+ 多端适配",[46,53,54,57],{},[24,55,56],{},"核心能力","：赛事数据展示、AI 预测推荐、赔率对比、市场预期、积分榜计算、微信一键登录",[46,59,60,63],{},[24,61,62],{},"适用场景","：世界杯赛事追踪、AI 预测参考、竞猜策略辅助",[65,66],"hr",{},[15,68,70],{"id":69},"二业务痛点与目标","二、业务痛点与目标",[72,73,74],"h3",{"id":74},"痛点",[43,76,77,80,83,86],{},[46,78,79],{},"赛事信息分散在官网、体育 App、社交媒体，缺乏聚合展示",[46,81,82],{},"AI 预测、市场预期、博彩赔率三个维度各自独立，无法同屏对比",[46,84,85],{},"积分榜数据需手动计算，小组出线形势判断困难",[46,87,88],{},"48 支参赛队伍，赛程密集，用户难以快速找到关注球队的比赛",[72,90,91],{"id":91},"目标",[43,93,94,100,106,113],{},[46,95,96,97],{},"将赛事赛程、AI 预测、市场预期、赔率信息",[24,98,99],{},"整合在同一应用",[46,101,102,103,105],{},"提供",[24,104,30],{},"：AI 推荐概率 vs 市场预期概率 vs 博彩赔率，辅助决策",[46,107,108,109,112],{},"自动计算",[24,110,111],{},"积分榜","，支持按球队筛选查看所有比赛",[46,114,102,115,118],{},[24,116,117],{},"48 队全量中文名映射","与队徽加载，降低认知门槛",[65,120],{},[15,122,124],{"id":123},"三技术方案与架构","三、技术方案与架构",[72,126,127],{"id":127},"技术栈",[129,130,131,147],"table",{},[132,133,134],"thead",{},[135,136,137,141,144],"tr",{},[138,139,140],"th",{},"层级",[138,142,143],{},"技术",[138,145,146],{},"说明",[148,149,150,164,181,194,207,220,233,246],"tbody",{},[135,151,152,158,161],{},[153,154,155],"td",{},[24,156,157],{},"跨平台框架",[153,159,160],{},"uni-app (DCloud)",[153,162,163],{},"微信小程序为主力平台",[135,165,166,171,174],{},[153,167,168],{},[24,169,170],{},"前端框架",[153,172,173],{},"Vue 3（Composition API）",[153,175,176,180],{},[177,178,179],"code",{},"\u003Cscript setup>"," 模式",[135,182,183,188,191],{},[153,184,185],{},[24,186,187],{},"样式方案",[153,189,190],{},"SCSS + rpx 响应式",[153,192,193],{},"uni.scss 全局变量",[135,195,196,201,204],{},[153,197,198],{},[24,199,200],{},"云服务",[153,202,203],{},"uniCloud 阿里云",[153,205,206],{},"用户认证 + 云函数 + 云数据库",[135,208,209,214,217],{},[153,210,211],{},[24,212,213],{},"数据源",[153,215,216],{},"BSD Sports Data API v2",[153,218,219],{},"赛事、预测、赔率、场馆",[135,221,222,227,230],{},[153,223,224],{},[24,225,226],{},"认证方案",[153,228,229],{},"微信一键登录（openid）",[153,231,232],{},"Token SHA-256 签发",[135,234,235,240,243],{},[153,236,237],{},[24,238,239],{},"构建工具",[153,241,242],{},"Vite + @dcloudio\u002Fvite-plugin-uni",[153,244,245],{},"HBuilderX 管理",[135,247,248,253,256],{},[153,249,250],{},[24,251,252],{},"图标方案",[153,254,255],{},"jk-icon (iconify)",[153,257,258],{},"SVG 图标自定义字体",[72,260,261],{"id":261},"数据流架构",[263,264,269],"pre",{"className":265,"code":267,"language":268},[266],"language-text","BSD Sports Data API (UTC)\n        │\n        ▼\n   API 封装层 (api\u002F)\n   ├── client.js      # uni.request + Token 注入 + 超时处理\n   ├── events.js      # 赛事列表 + 单场详情\n   ├── predictions.js # AI 预测列表 + 单场预测\n   ├── standings.js   # 积分榜计算逻辑\n   ├── team-names.js  # 48 队英→中映射 + 队徽 CDN\n   └── time.js        # UTC ↔ 北京时间转换\n        │\n        ▼\n   页面层 (pages\u002F)\n   ├── 首页        # 今日赛事 + AI 预测卡片\n   ├── 赛事页      # 积分榜 + 分类浏览 + 球队筛选\n   ├── AI 预测页   # 日期筛选 + 预测统计\n   ├── 详情页      # AI 预测 + 市场预期 + 赔率对比\n   └── 我的        # 登录\u002F注销\u002F使用说明\n        │\n        ▼\n   uniCloud 阿里云\n   ├── user 云函数  # 登录\u002F验证\u002F退出\u002F注销\n   └── users 表    # openid + Token + 注册时间\n","text",[177,270,267],{"__ignoreMap":271},"",[72,273,274],{"id":274},"项目组织",[263,276,279],{"className":277,"code":278,"language":268},[266],"预见足球AI\u002F\n├── api\u002F                           # API 封装层\n│   ├── config.js                  # API Token + Base URL + 世界杯联赛 ID\n│   ├── client.js                  # uni.request 封装（Token 注入、超时、错误处理）\n│   ├── events.js                  # 赛事列表 + 单场详情接口\n│   ├── predictions.js             # AI 预测列表 + 单场预测接口\n│   ├── team-names.js              # 48 队英→中映射 + 队徽 CDN URL\n│   ├── time.js                    # UTC ↔ 北京时间转换工具\n│   ├── standings.js               # 积分榜计算逻辑\n│   └── user.js                    # 用户登录\u002FToken 管理\u002F注销\n├── pages\u002F                         # 页面\n│   ├── index\u002Findex.vue            # 首页（世界杯横幅 + 今日赛事 + 数据洞察）\n│   ├── matches\u002Findex.vue          # 赛事页（积分榜 + 分类浏览 + 球队筛选）\n│   ├── ai-predict\u002Findex.vue       # AI 预测页（日期筛选 + 预测统计 + 准确率）\n│   ├── detail\u002Findex.vue           # 比赛详情页（AI 预测 + 市场预期 + 赔率对比）\n│   ├── profile\u002Findex.vue          # 我的页面（微信登录 + 使用说明 + 注销）\n│   └── login\u002Findex.vue            # 独立登录页（备用入口）\n├── components\u002F\n│   └── CustomTabBar\u002F              # 自定义胶囊样式底部导航\n├── uniCloud-aliyun\u002F               # uniCloud 云服务\n│   ├── cloudfunctions\u002Fuser\u002F       # 用户认证云函数\n│   └── database\u002Fusers.schema.json # 用户表 Schema\n└── static\u002F                        # 静态资源 + 图标字体\n",[177,280,278],{"__ignoreMap":271},[65,282],{},[15,284,286],{"id":285},"四核心功能实现","四、核心功能实现",[72,288,290],{"id":289},"_1首页-今日赛事与-ai-预测","1）首页 — 今日赛事与 AI 预测",[43,292,293,299,305,311,317,323],{},[46,294,295,298],{},[24,296,297],{},"世界杯横幅","：纯 CSS 绘制足球场线条（中圈、点球区、球门），深绿色背景 + \"进行中\"徽章",[46,300,301,304],{},[24,302,303],{},"今日赛事卡片","：小组\u002F轮次标签、北京时间、主客队名 + 圆形队徽、比分（完赛\u002F进行中）",[46,306,307,310],{},[24,308,309],{},"AI 预测进度条","：主胜\u002F平局\u002F客胜概率可视化 + 推荐标签（主胜\u002F平局\u002F客胜）",[46,312,313,316],{},[24,314,315],{},"预测结果缎带","：完赛后对比 AI 预测与实际结果，45° 旋转显示\"已中\"（绿色）\u002F \"未中\"（红色）",[46,318,319,322],{},[24,320,321],{},"数据洞察卡片","：今日赛事场数 + 预测准确率统计",[46,324,325],{},"支持下拉刷新和错误重试",[72,327,329],{"id":328},"_2赛事页-积分榜与分类浏览","2）赛事页 — 积分榜与分类浏览",[43,331,332,338,343,349,355],{},[46,333,334,337],{},[24,335,336],{},"两行 Tab 导航","：积分榜、全部比赛、小组赛、1\u002F16 决赛、1\u002F8 决赛、1\u002F4 决赛、半决赛、季军赛、决赛",[46,339,340,342],{},[24,341,111],{},"：按字母分组的 48 队积分表（排名、队徽、场次、胜\u002F平\u002F负、净胜球、积分），支持组别筛选",[46,344,345,348],{},[24,346,347],{},"比赛列表","：按分组头（如\"小组赛·第一轮 3 场\"）分类展示",[46,350,351,354],{},[24,352,353],{},"日期筛选","：横向滚动芯片选择器，支持\"全部\"和具体日期",[46,356,357,360],{},[24,358,359],{},"球队筛选","：点击积分榜队伍自动跳转查看该队所有比赛",[72,362,364],{"id":363},"_3ai-预测页-多维度预测分析","3）AI 预测页 — 多维度预测分析",[43,366,367,372,378,384],{},[46,368,369,371],{},[24,370,353],{},"：双日滚动（全部 + 今天 + 未来天数），切换日期自动拉取对应预测",[46,373,374,377],{},[24,375,376],{},"统计卡片","：已预测场次数 + 预测准确率",[46,379,380,383],{},[24,381,382],{},"预测卡片","：与首页一致的 AI 推荐展示 + 进度条 + 百分比",[46,385,386,389,390],{},[24,387,388],{},"预测字段","：\n",[43,391,392,406,412,419,425,431],{},[46,393,394,395,398,399,398,402,405],{},"胜平负概率（",[177,396,397],{},"prob_home"," \u002F ",[177,400,401],{},"prob_draw",[177,403,404],{},"prob_away","）",[46,407,408,409,405],{},"预期进球（",[177,410,411],{},"expected_goals",[46,413,414,415,418],{},"大小球概率（",[177,416,417],{},"over_under","：1.5\u002F2.5\u002F3.5）",[46,420,421,422,405],{},"双方进球概率（",[177,423,424],{},"btts",[46,426,427,428,405],{},"最可能比分（",[177,429,430],{},"most_likely",[46,432,433,434,405],{},"模型置信度（",[177,435,436],{},"confidence",[72,438,440],{"id":439},"_4比赛详情页-多维度对比","4）比赛详情页 — 多维度对比",[43,442,443,449,455,461],{},[46,444,445,448],{},[24,446,447],{},"沉浸式头部","：深色背景 + 自定义导航栏 + 对阵信息（队徽 + 队名 + 比分 + 半场比分）",[46,450,451,454],{},[24,452,453],{},"AI 预测区","：主胜\u002F平局\u002F客胜三进度条 + 推荐标签 + 预期进球 + 进球概率 + 最可能比分 + 大球概率 + 置信度",[46,456,457,460],{},[24,458,459],{},"市场预期（Polymarket）","：1x2 胜率、半场结果、大小球、让球、双方进球、精确比分 Top 10、进球球员预测",[46,462,463,466],{},[24,464,465],{},"赔率对比","：博彩公司最佳赔率（主胜\u002F平局\u002F客胜\u002F大小球\u002F双方进球）+ 多公司赔率详细列表",[72,468,470],{"id":469},"_5用户认证系统","5）用户认证系统",[43,472,473,476,479,482,489],{},[46,474,475],{},"基于 uniCloud 阿里云 + 微信 openid",[46,477,478],{},"云函数处理 login \u002F checkToken \u002F logout \u002F deleteAccount",[46,480,481],{},"Token SHA-256 生成，30 天有效期",[46,483,484,485,488],{},"App.vue 在 ",[177,486,487],{},"onLaunch"," 中静默验证已有 Token",[46,490,491],{},"已登录用户显示彩色头像（基于 openid hash 计算颜色）+ ID + 注册时间",[72,493,495],{"id":494},"_6自定义胶囊-tabbar","6）自定义胶囊 TabBar",[43,497,498,501,504,507],{},[46,499,500],{},"禁用原生 TabBar，使用 CustomTabBar 组件实现圆角胶囊样式",[46,502,503],{},"四个 Tab：首页（足球图标）、赛事（奖杯）、AI 预测（机器人）、我的（用户）",[46,505,506],{},"选中项绿色填充 + 白色图标，未选中灰色",[46,508,509],{},"支持安全区适配",[65,511],{},[15,513,515],{"id":514},"五项目效果","五、项目效果",[43,517,518,525,531,537],{},[46,519,520,521,524],{},"将赛事信息、AI 预测、市场预期、博彩赔率",[24,522,523],{},"整合在同一界面","，免去多平台切换",[46,526,527,528],{},"通过 AI 预测概率进度条和推荐标签，用户可",[24,529,530],{},"快速获取预测结论",[46,532,533,534],{},"积分榜自动计算 + 球队筛选，帮助用户",[24,535,536],{},"快速定位关注球队的比赛",[46,538,539],{},"预测结果缎带直观展示 AI 预测准确率，建立用户信任",[65,541],{},[15,543,545],{"id":544},"六技术亮点","六、技术亮点",[72,547,548],{"id":548},"时区处理",[43,550,551,554,560],{},[46,552,553],{},"API 全部使用 UTC 时间，前端展示使用北京时间（UTC+8）",[46,555,556,559],{},[177,557,558],{},"utcWindowForBeijing()"," 生成精确 UTC 窗口，避免跨日边界问题",[46,561,562,398,565,568],{},[177,563,564],{},"toBeijingTime()",[177,566,567],{},"toBeijingLabel()"," 统一转换展示格式",[72,570,572],{"id":571},"_48-队全量映射","48 队全量映射",[43,574,575,581,587],{},[46,576,577,580],{},[177,578,579],{},"api\u002Fteam-names.js"," 包含全部 48 支世界杯参赛队英文到中文映射",[46,582,583,584,405],{},"队徽通过 CDN 加载（",[177,585,586],{},"https:\u002F\u002Fsports.bzzoiro.com\u002Fimg\u002Fteam\u002F{team_id}\u002F",[46,588,589],{},"图片加载失败时显示中文队名首字兜底（如\"中\"代表\"中国\"）",[72,591,592],{"id":592},"空值兜底",[43,594,595,598],{},[46,596,597],{},"预测数据在比赛临近时才生成，代码已做\"暂无预测\"空值处理",[46,599,600],{},"API 请求封装统一超时和错误处理，网络异常时展示重试按钮",[65,602],{},[15,604,606],{"id":605},"七可扩展与复盘","七、可扩展与复盘",[43,608,609,615,621,627,633,639],{},[46,610,611,614],{},[24,612,613],{},"实时比分推送","：接入 WebSocket 实现实时比分更新",[46,616,617,620],{},[24,618,619],{},"用户预测竞猜","：支持用户提交自己的预测，与 AI 对比排名",[46,622,623,626],{},[24,624,625],{},"历史赛事分析","：积累完赛数据后提供球队\u002F联赛维度的历史统计",[46,628,629,632],{},[24,630,631],{},"社交分享","：分享预测结果到微信好友\u002F朋友圈",[46,634,635,638],{},[24,636,637],{},"多语言支持","：扩展英文、日文等国际化版本",[46,640,641,644],{},[24,642,643],{},"多联赛覆盖","：除世界杯外支持欧洲杯、英超、西甲等主流联赛",[65,646],{},{"title":271,"searchDepth":648,"depth":648,"links":649},3,[650,652,656,661,669,670,675],{"id":17,"depth":651,"text":18},2,{"id":69,"depth":651,"text":70,"children":653},[654,655],{"id":74,"depth":648,"text":74},{"id":91,"depth":648,"text":91},{"id":123,"depth":651,"text":124,"children":657},[658,659,660],{"id":127,"depth":648,"text":127},{"id":261,"depth":648,"text":261},{"id":274,"depth":648,"text":274},{"id":285,"depth":651,"text":286,"children":662},[663,664,665,666,667,668],{"id":289,"depth":648,"text":290},{"id":328,"depth":648,"text":329},{"id":363,"depth":648,"text":364},{"id":439,"depth":648,"text":440},{"id":469,"depth":648,"text":470},{"id":494,"depth":648,"text":495},{"id":514,"depth":651,"text":515},{"id":544,"depth":651,"text":545,"children":671},[672,673,674],{"id":548,"depth":648,"text":548},{"id":571,"depth":648,"text":572},{"id":592,"depth":648,"text":592},{"id":605,"depth":651,"text":606},"2025-05","基于 uni-app 的世界杯赛事 AI 预测微信小程序","md",{},true,"\u002Fprojects\u002Ffootball-ai-worldcup-prediction",{"title":5,"description":677},"projects\u002Ffootball-ai-worldcup-prediction","2026 世界杯足球赛事 AI 智能预测应用，接入 BSD Sports Data API 获取赛事与赔率数据，前端进行 AI 预测结果分析与展示。支持赛程浏览、积分榜、AI 预测推荐、赔率对比与市场预期，微信一键登录。","uni-app, Vue 3, uniCloud, BSD Sports Data API, SCSS","kV2fJWn2u6hhkE9b1kvAfc5Bl3TugbD2cFM6OIbNRLs",1780651451881]