diff --git a/docs/业务进度管理.md b/docs/业务进度管理.md
index f5c9083..f061ba9 100644
--- a/docs/业务进度管理.md
+++ b/docs/业务进度管理.md
@@ -13,6 +13,26 @@
## 一、已完成事项
+### 89. 移动端首页设计稿还原
+
+- 状态:代码已修改,待页面验收 - 时间:2026-07-31
+
+完成内容:
+- 首页按设计图重构为固定头部与频道栏、“今日焦点”赛程卡、主推资讯大图和“最新资讯”列表四个区域。
+- 复用既有 `/api/match/lists` 与 `/api/article/lists` 接口,首页焦点赛程优先展示进行中与未开始的前两场,未新增后端接口或业务字段。
+- 首屏资讯以现有文章封面生成主推卡,后续资讯统一使用双列文字/缩略图信息卡;外链图片增加 `referrerpolicy="no-referrer"`,加载失败时隐藏无效缩略图,避免展示浏览器错误占位。
+- 首页滚动区改为 `flex: 1; min-height: 0` 自适应布局,移除 JS 高度计算,规避 iOS 安全区下滚动区与 TabBar 之间出现间隙的问题。
+- 首页 AI 助手入口新增圆形机器人样式变体,仅首页使用,其他入口保持原有“AI 助手”按钮样式。
+
+涉及模块:
+- `uniapp/src/pages/index/index.vue`
+- `uniapp/src/components/feed-card/feed-card.vue`
+- `uniapp/src/components/ai-assistant-entry/ai-assistant-entry.vue`
+- `docs/设计稿映射.md`
+
+验证说明:
+- 按当前任务要求,未执行 H5 构建或浏览器页面验证。
+
### 88. HG 赔率平台展示名统一为皇冠
- 状态:代码已修改,待构建与页面验证 - 时间:2026-07-13
diff --git a/docs/设计稿映射.md b/docs/设计稿映射.md
index 22ba0d1..9ec9eac 100644
--- a/docs/设计稿映射.md
+++ b/docs/设计稿映射.md
@@ -25,7 +25,7 @@
| 赛事中心(含世界杯专题入口) | `uniapp/src/pages/match/match.vue` | ✅ 已完成 | 2026-07-11 赛程、直播、赔率改为在赛事中心当前内容区域切换;运动和联赛分类仅在赛程显示,赔率只保留盘口与联赛/球队搜索,顶部蓝色世界杯专题卡仍进入专题页 |
| 赛事详情页 | `uniapp/src/pages/match_detail/match_detail.vue` | 🚧 部分完成 | 2026-05-29 优化顶部赛事摘要头部,补充联赛、对阵、状态与直播入口信息 |
| 世界杯专题页(排名导航) | `uniapp/src/packages_match/pages/worldcup.vue` | 🚧 部分完成 | 2026-05-20 已按设计稿拆分排名导航、积分榜、球员榜组件,后续可继续细化表格视觉与新闻页样式 |
-| 首页 | `uniapp/src/pages/index/index.vue` | 待核对 | 需结合实际设计稿补充 |
+| 首页 | `uniapp/src/pages/index/index.vue` | 🚧 部分完成 | 2026-07-31 已按当前设计图重构为“今日焦点赛程、主推大图、最新资讯”三段式首页;频道仍复用后台配置分类,待实际 H5 页面验收后确认最终状态 |
| 新闻详情 | `uniapp/src/pages/news_detail/news_detail.vue` | 待核对 | 富文本与图片渲染已存在相关实现 |
| 个人中心 | 待补充 | 待核对 | 需核对实际页面路径 |
| AI 分析 | 待补充 | 待核对 | 需核对实际页面路径 |
diff --git a/uniapp/src/components/ai-assistant-entry/ai-assistant-entry.vue b/uniapp/src/components/ai-assistant-entry/ai-assistant-entry.vue
index f7248a0..976679b 100644
--- a/uniapp/src/components/ai-assistant-entry/ai-assistant-entry.vue
+++ b/uniapp/src/components/ai-assistant-entry/ai-assistant-entry.vue
@@ -1,7 +1,18 @@
-
- AI
- 助手
+
+
+
+
+
+
+
+
+
+
+ AI
+ 助手
+
@@ -9,9 +20,11 @@
withDefaults(defineProps<{
align?: 'left' | 'right'
size?: 'compact' | 'regular' | 'large'
+ variant?: 'badge' | 'orb'
}>(), {
align: 'left',
- size: 'regular'
+ size: 'regular',
+ variant: 'badge'
})
const goAssistant = () => {
@@ -60,6 +73,45 @@ const goAssistant = () => {
--entry-bottom-font: 14rpx;
}
+ &--orb {
+ --entry-width: 72rpx;
+ --entry-height: 72rpx;
+ --entry-radius: 50%;
+
+ background: #f7f9ff;
+ box-shadow: none;
+ }
+
+ &__orb {
+ width: 54rpx;
+ height: 54rpx;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ border-radius: 50%;
+ background: radial-gradient(circle at 34% 28%, #8ec4ff 0%, #387df6 48%, #1557dc 100%);
+ box-shadow: 0 5rpx 10rpx rgba(20, 104, 245, 0.2);
+ }
+
+ &__face {
+ width: 37rpx;
+ height: 25rpx;
+ display: flex;
+ align-items: center;
+ justify-content: space-around;
+ padding: 0 6rpx;
+ border-radius: 14rpx;
+ background: rgba(255, 255, 255, 0.94);
+ box-sizing: border-box;
+ }
+
+ &__eye {
+ width: 6rpx;
+ height: 11rpx;
+ border-radius: 999rpx;
+ background: #1f61e8;
+ }
+
&__line {
color: #fff;
font-weight: 700;
diff --git a/uniapp/src/components/feed-card/feed-card.vue b/uniapp/src/components/feed-card/feed-card.vue
index 7a104f7..f941c0b 100644
--- a/uniapp/src/components/feed-card/feed-card.vue
+++ b/uniapp/src/components/feed-card/feed-card.vue
@@ -2,25 +2,25 @@
- {{ item.title }}
- {{ descText }}
+ {{ item.title }}
+ {{ descText }}
-
+
diff --git a/uniapp/src/pages/index/index.vue b/uniapp/src/pages/index/index.vue
index 5257e88..9634e19 100644
--- a/uniapp/src/pages/index/index.vue
+++ b/uniapp/src/pages/index/index.vue
@@ -1,60 +1,122 @@
-
-
- {{ searchPlaceholder }}
-
-
-
+
+ 搜索赛事、球队、球员
+
-
-
-
-
-
-
-
- {{ item.name }}
-
-
-
-
-
+
+
+
+ {{ item.name }}
+
+ 更多
+
+
+
-
-
-
-
-
-
-
- 加载中...
-
-
- 没有更多了
-
-
- 暂无内容
+
+
+
+
+ 今日焦点
+
+ 全部赛程
+
+
+
+
+
+
+
+ {{ match.league_name || '赛事' }}
+
+ {{ formatFocusMeta(match) }}
+
+
+
+
+
+ {{ getTeamInitial(match.home_team) }}
+
+ {{ match.home_team || '主队' }}
+
+ VS
+
+
+
+ {{ getTeamInitial(match.away_team) }}
+
+ {{ match.away_team || '客队' }}
+
+
+
+
+
+
+
+
+
+
+ {{ getArticleCategoryName(featuredArticle) }}
+
+ {{ featuredArticle.title }}
+
+ {{ getArticleSummary(featuredArticle) }}
+
+
+
+ {{ getArticleAuthor(featuredArticle) }}
+ {{ formatRelativeTime(featuredArticle.create_time) }}
+
+
+
+
+
+
+ 最新资讯
+
+
+ 筛选
+
+
+
+
+
+
+
+
+
+ 加载中...
+
+
+ 没有更多了
+
+
+ 暂无内容
+
-
+
@@ -63,14 +125,14 @@