import Taro, { useShareAppMessage } from "@tarojs/taro"; import CustomNav from "@/components/CustomNav"; import withLayout from "@/layouts"; import { getShopDetail, getShopPackage, getExtendContent, } from "@/services/home"; import { getVerifyTargetList } from "@/services/payOrder"; import { useState, useEffect, useRef } from "react"; import { Button, View, Ad } from "@tarojs/components"; import Star from "@/components/Star/Star.jsx"; import NoData from '@/components/NoData' import Cards from "@/components/foodCards/foodCards.jsx"; import SpinBox from "@/components/Spin/SpinBox"; import TabIcon from "@/components/HorTabbar/TabIcon"; import ax from "@/assets/icons/housemantj/onlove.png"; import yysj from "@/assets/icons/housemantj/openTime.png"; import dw from "@/assets/icons/housemantj/loc-o.png"; import phoneImg from "@/assets/icons/housemantj/phone-o.png"; import zhuandao from "@/assets/icons/housemantj/backTop.png"; import titlezs from "@/assets/icons/housemantj/titleTip.png"; import share from "@/assets/icons/housemantj/touristShare.png"; import good from "@/assets/icons/housemantj/touristGood.png"; import baozan from "@/assets/icons/housemantj/bgood.png"; import weibaozan from "@/assets/icons/housemantj/unLike.png"; import logo from "@/assets/icons/UserCenter/laba.png" import useSave from "@/utils/hooks/useSave"; import useLike from "@/utils/hooks/useLike"; import Extend from "../components/Extend/extend"; import ImageList from "../components/ImageList"; import "./foodDetails.less"; export default withLayout((props) => { const { router, person, location } = props; const { id, subOrderId, scene } = props.router.params; useEffect(() => { if (id && (scene || subOrderId)) { getVerifyTargetList({ shopId: id, isMine: true, isVerified: 0, }).then((res) => { if (res?.records?.length > 0) { Taro.navigateTo({ url: `/pages/TobeShop/index?id=${id}&subOrderId=${subOrderId}`, }); } }); } }, [id, scene, subOrderId]); //商铺基础信息 const [loading, setLoading] = useState(false) const [detail, setDetail] = useState({}); //商铺套餐 const [spackage, setPackage] = useState([]); //banner图集数组 const [imglist, setimglist] = useState([]); const [isSaved, toggleSave] = useSave(detail.isSaved, "shop", id); const [isLike, toggleLike] = useLike(detail.isLike, "shop", id); //引导显隐 const [guidance, setGuidance] = useState('shareOff') //引导显隐 useEffect(() => { if (router.params.scene || router.params.enterType === "share") { setGuidance('shareOn') } }, [router.params.enterType, router.params.scene]) //本店指南 const [extend, setExtend] = useState([]); const openMap = () => { Taro.openLocation({ longitude: log.current - 0, latitude: lat.current - 0, name: detail.shopName, address: detail.address, scale: 12, }); }; const log = useRef(""); const lat = useRef(""); const handlePhone = () => { if (!detail.phone) { Taro.showToast({ title: '暂无商家联系方式', icon: 'none', }) return; } Taro.makePhoneCall({ phoneNumber: detail.phone }) } useEffect(() => { if (id) { setLoading(true) getShopDetail(id, { location }).then((res) => { setDetail(res); log.current = res.locaton.toString().split(",")[0]; lat.current = res.locaton.toString().split(",")[1]; setimglist(res.imageList || []); setLoading(false) }).catch(() => setLoading(false)); getShopPackage(id, { pageSize: 500 }).then((res) => { setPackage(res.records || []); }); getExtendContent("shop", id, { pageSize: 500 }).then((res) => { setExtend(res.records || []); }); } }, [id]); const star = parseFloat( ( (detail.sweetScore + detail.environmentScore + detail.serviceScore) / 3).toFixed(1) ); // 分享 useShareAppMessage(() => { // setShareAppMessage('shareOff') return { title: detail.shopName, path: `/pages/details/foodDetails/foodDetails?id=${id}&subOrderId=${subOrderId}&enterType=share`, imageUrl: detail.poster, }; }); const [isScroll, setScroll] = useState(true) return ( { guidance === 'shareOn' ? : } {detail.shopName} {detail.averagePrice / 100}/人 爆赞{detail.likeNum} {star} 点评: 口味:{detail.sweetScore} 环境:{detail.environmentScore} 服务:{detail.serviceScore} 营业时间:{detail.businessHours} {detail.address} { spackage == '' && extend == "" ? : <> 返现套餐 {(spackage || []).map((item) => ( ))} 本店指南 {(extend || []).map((item) => ( ))} 这是我的底线 } 0 ? baozan : weibaozan} text={isLike > 0 ? "已爆赞" : "爆赞"} /> 0 ? ax : good} text={isSaved > 0 ? "已收藏" : "加入收藏"} /> ); });