From deb6ce0e97fd633322d189231909038c608d6c9a Mon Sep 17 00:00:00 2001 From: hajimi Date: Fri, 31 Jul 2026 18:12:46 +0800 Subject: [PATCH] feat(uniapp): restore home page design --- docs/业务进度管理.md | 20 + docs/设计稿映射.md | 2 +- .../ai-assistant-entry/ai-assistant-entry.vue | 60 +- uniapp/src/components/feed-card/feed-card.vue | 152 ++-- uniapp/src/pages/index/index.vue | 691 +++++++++++++----- 5 files changed, 667 insertions(+), 258 deletions(-) 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 @@ @@ -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 }} {{ authorText }} - - {{ item.comment_count || item.click || 0 }}阅读 - {{ formatTime(item.create_time) }} + {{ formatRelativeTime(item.create_time) }} + + + {{ item.comment_count || item.click || 0 }} - + 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 @@