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, Swiper, SwiperItem } 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.png"; import zhuandao from "@/assets/icons/housemantj/backTop.png"; import titlezs from "@/assets/icons/housemantj/titleTip.png"; import showMore from "@/assets/icons/housemantj/setMore.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 useSave from "@/utils/hooks/useSave"; import useLike from "@/utils/hooks/useLike"; import Extend from "../components/Extend/extend"; 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 [index, setIndex] = useState(0); const handchange = (e) => { setIndex(e.detail.current); }; const [isSaved, toggleSave] = useSave(detail.isSaved, "shop", id); const [isLike, toggleLike] = useLike(detail.isLike, "shop", id); //当前套餐总数 const [newpgNum, setNewpgNum] = useState(0); //全部套餐个数 const [AllpgNum, setAllpgNum] = useState(0); //套餐当前页数 const [page, setpage] = useState(2); const pgMore = () => { setpage(page + 1); getShopPackage(id, { pageNum: page }).then((res) => { setPackage([...spackage, ...res.records]); setNewpgNum(newpgNum + res.records.length); }); }; //本店指南 const [extend, setExtend] = useState([]); //当前指南总数 const [newextNum, setNewextNum] = useState(0); //全部指南个数 const [AllextNum, setAllextNum] = useState(0); //指南当前页数 const [epage, setepage] = useState(2); const extendMore = () => { setepage(epage + 1); getExtendContent("shop", id, { pageNum: epage }).then((res) => { setExtend([...extend, ...res.records]); setNewextNum(newextNum + res.records.length); }); }; 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(""); 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).then((res) => { setPackage(res.records || []); setNewpgNum(res.records.length); setAllpgNum(res.total); }); getExtendContent("shop", id).then((res) => { setExtend(res.records || []); setAllextNum(res.total); setNewextNum(res.records.length); }); } }, [id]); const star = parseFloat( ( (detail.sweetScore + detail.environmentScore + detail.serviceScore) / 3).toFixed(1) ); // 分享 useShareAppMessage(() => { return { title: detail.shopName, path: `/pages/details/foodDetails/foodDetails?id=${id}&subOrderId=${subOrderId}`, imageUrl: detail.poster, }; }); return ( {imglist.map((item, inx) => ( {index + 1}/{imglist.length} ))} {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 ? "已收藏" : "加入收藏"} /> ); });