From d988caa5ed9725550f6a5a570e5f3d633cd829ff Mon Sep 17 00:00:00 2001 From: pcn_ Date: Sat, 13 Sep 2025 17:10:16 +0800 Subject: [PATCH] =?UTF-8?q?banner=E5=9B=BE=E7=89=87=E6=8D=A2=E6=88=90?= =?UTF-8?q?=E5=8A=A8=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/index/Banner.tsx | 126 ++++++++++++++++++++++--------------- 1 file changed, 76 insertions(+), 50 deletions(-) diff --git a/src/pages/index/Banner.tsx b/src/pages/index/Banner.tsx index ca32c84..4cd6237 100644 --- a/src/pages/index/Banner.tsx +++ b/src/pages/index/Banner.tsx @@ -1,48 +1,48 @@ -import { useEffect, useState } from 'react' -import { Swiper } from '@nutui/nutui-react-taro' -import { CmsAd } from "@/api/cms/cmsAd/model"; -import { Image } from '@nutui/nutui-react-taro' -import { getCmsAd } from "@/api/cms/cmsAd"; +import {useEffect, useState} from 'react' +import {Swiper} from '@nutui/nutui-react-taro' +import {CmsAd} from "@/api/cms/cmsAd/model"; +import {Image} from '@nutui/nutui-react-taro' +import {getCmsAd} from "@/api/cms/cmsAd"; import navTo from "@/utils/common"; -// 右侧固定的两张图片(上下排列) -const rightFixedImages = [ - { - url: '/static/images/right-top.png', // 上层图片路径 - path: '/pages/activity/detail?id=1' // 上层图片点击跳转地址 - }, - { - url: '/static/images/right-bottom.png', // 下层图片路径 - path: '/pages/goods/list?category=2' // 下层图片点击跳转地址 - } -]; const MyPage = () => { const [carouselData, setCarouselData] = useState() + const [hotToday, setHotToday] = useState() + const [groupBuy, setGroupBuy] = useState() - // 加载轮播图数据 - const loadCarouselData = () => { + // 加载数据 + const loadData = () => { + // 轮播图 getCmsAd(439).then(data => { setCarouselData(data) }) + // 今日热卖素材(上层图片) + getCmsAd(444).then(data => { + setHotToday(data) + }) + // 社区拼团素材(下层图片) + getCmsAd(445).then(data => { + setGroupBuy(data) + }) } useEffect(() => { - loadCarouselData() + loadData() }, []) // 轮播图高度,默认200px const carouselHeight = carouselData?.height || 200; return ( -
- {/* 左侧轮播图区域 - 保持原有功能 */} -
+
+ {/* 左侧轮播图区域 */} +
{carouselData?.imageList?.map((img, index) => ( @@ -53,7 +53,7 @@ const MyPage = () => { mode={'scaleToFill'} onClick={() => navTo(`${img.path}`)} lazyLoad={false} - style={{ height: `${carouselHeight}px`, borderRadius: '4px' }} + style={{height: `${carouselHeight}px`, borderRadius: '4px'}} alt={`轮播图${index + 1}`} /> @@ -61,34 +61,60 @@ const MyPage = () => {
- {/* 右侧固定图片区域 - 上下两张图片 */} -
- {/* 上层图片 */} -
- navTo(rightFixedImages[0].path)} - lazyLoad={false} - style={{ borderRadius: '4px' }} - alt="右侧上层图片" - /> + {/* 右侧上下图片区域 - 从API获取数据 */} +
+ {/* 上层图片 - 使用今日热卖素材 */} +
+ {hotToday?.imageList?.length ? ( + navTo("/cms/category/index?id=4424" || '')} + lazyLoad={false} + style={{borderRadius: '4px'}} + alt="今日热卖" + /> + ) : ( +
+ 加载中... +
+ )}
- {/* 下层图片 */} -
- navTo(rightFixedImages[1].path)} - lazyLoad={false} - style={{ borderRadius: '4px' }} - alt="右侧下层图片" - /> + {/* 下层图片 - 使用社区拼团素材 */} +
+ {groupBuy?.imageList?.length ? ( + navTo(groupBuy.imageList[0].path || '')} + lazyLoad={false} + style={{borderRadius: '4px'}} + alt="社区拼团" + /> + ) : ( +
+ 加载中... +
+ )}