import {useEffect, useState} from "react"; import {Image, Tabs, Empty, Sticky} from '@nutui/nutui-react-taro' import {Share} from '@nutui/icons-react-taro' import {View, Text} from '@tarojs/components'; import Taro from "@tarojs/taro"; import {ShopGoods} from "@/api/shop/shopGoods/model"; import {pageShopGoods} from "@/api/shop/shopGoods"; const BestSellers = (props: {onStickyChange?: (isSticky: boolean) => void}) => { const [tab1value, setTab1value] = useState('0') const [list, setList] = useState([]) const [goods, setGoods] = useState() const [stickyStatus, setStickyStatus] = useState(false) const reload = () => { pageShopGoods({}).then(res => { setList(res?.list || []); }) } // 处理分享点击 const handleShare = (item: ShopGoods) => { setGoods(item); console.log(goods) // 显示分享选项菜单 Taro.showActionSheet({ itemList: ['分享给好友'], success: (res) => { if (res.tapIndex === 0) { // 分享给好友 - 触发转发 Taro.showShareMenu({ withShareTicket: true, success: () => { // 提示用户点击右上角分享 Taro.showToast({ title: '请点击右上角分享给好友', icon: 'none', duration: 2000 }); } }); } }, fail: (err) => { console.log('显示分享菜单失败', err); } }); } // 处理粘性布局状态变化 const onStickyChange = (isSticky: boolean) => { setStickyStatus(isSticky) // 通知父组件粘性状态变化 props.onStickyChange?.(isSticky) console.log('Tabs 粘性状态:', isSticky ? '已固定' : '取消固定') } // 获取小程序系统信息 const getSystemInfo = () => { const systemInfo = Taro.getSystemInfoSync() // 状态栏高度 + 导航栏高度 (一般为44px) return (systemInfo.statusBarHeight || 0) + 44 } useEffect(() => { reload() }, []) return ( <> {/* Tabs粘性布局组件 */} { setTab1value(value) }} style={{ backgroundColor: 'transparent', paddingTop: stickyStatus ? '0' : '8px', paddingBottom: stickyStatus ? '8px' : '0', }} activeType="smile" > {/* 今日主推 */} {tab1value == '0' && list?.map((item, index) => { return ( Taro.navigateTo({url: '/shop/goodsDetail/index?id=' + item.goodsId})}/> {item.name} {item.comments} 已售 {item.sales} {item.price} handleShare(item)} > Taro.navigateTo({url: '/shop/goodsDetail/index?id=' + item.goodsId})}>购买 ) })} {/* 即将到期 */} {tab1value == '1' && ( )} {/* 活动预告 */} {tab1value == '2' && ( )} ) } export default BestSellers