bindbox-mini/.trae/documents/完善首页 UI:通知滚动与轮播图占位.md
2025-11-24 22:37:11 +08:00

2.1 KiB
Raw Blame History

目标

  • 首页 UI 始终可见轮播图在无数据时也显示占位滑块通知始终滚动显示Marquee
  • 接口路径统一为 /api/app/*,兼容返回 {list: [...]} 与字段 snake_case(如 image_url)。

变更范围

  • 文件:pages/index/index.vue
  • 保留现有登录弹窗,但不阻断首页数据加载;完善数据清洗与空态展示。

轮播图(无数据也展示)

  • 始终渲染 swiper.banner-swiper,不再用 v-if 隐藏容器。
  • 数据存在:按 banners 渲染;字段映射 idimage_url|imageUrl|imagelink_url|linkUrl|link|url
  • 数据为空:渲染 3 个占位滑块(swiper-item 内用 <view> 纯色/渐变背景 + 文案“敬请期待”),避免依赖静态图片资源。
  • URL 清洗:移除反引号与空格,保证 image_url 可用。

通知滚动Marquee

  • 始终渲染通知条。
  • 有数据横向无缝滚动CSS @keyframes + transform: translateX),将所有通知拼接为一条长文本,重复一份以实现循环滚动。
  • 无数据:使用默认文案(如“欢迎光临”“最新活动敬请期待”)参与滚动,保证始终有动效。

活动区

  • 保持当前两列栅格布局;无数据时显示“暂无活动”占位文案;点击仅在 link 为内部路径时跳转。

数据与接口

  • 请求入口统一:/api/app/notices/api/app/banners/api/app/activities
  • 解包:支持 list|items|data
  • 映射:通知 content|text|title;轮播图 image_url|imageUrl|image|img|piclink_url|linkUrl|link|url;活动 cover_url|coverUrl|image|img|pictitle|namesub_title|subTitle|subtitle|desc|description

交互与空态

  • 未登录/未绑定:弹窗提醒,但首页照常加载并显示占位内容。
  • 点击跳转:内部路径以 / 开头才触发 navigateTo;避免空链接导致错误。

验证

  • 模拟后端返回 {list:[...]} 含反引号的 image_url,确认轮播图正常显示。
  • 清空 bannersnotices,确认占位滑块与默认滚动文案显示。
  • 在微信小程序/浏览器预览,验证滚动流畅度与样式适配。