From 331a067f8711e25cedf0540c41548de9729f034f Mon Sep 17 00:00:00 2001 From: zhangjing1 Date: Fri, 5 Sep 2025 16:40:57 +0800 Subject: [PATCH 1/2] bug(custom): eCX-7237 --- src/pages/item/espier-detail.js | 678 ++++++++++++++++---------------- 1 file changed, 340 insertions(+), 338 deletions(-) diff --git a/src/pages/item/espier-detail.js b/src/pages/item/espier-detail.js index 2a682506e..09d9446f0 100644 --- a/src/pages/item/espier-detail.js +++ b/src/pages/item/espier-detail.js @@ -102,7 +102,8 @@ const initialState = { curItem: null, recommendList: [], isParameter: false, - imgHeightList: [] // 用于存储banner高度 + imgHeightList: [], // 用于存储banner高度 + navigateMantle: false } function EspierDetail(props) { @@ -144,7 +145,8 @@ function EspierDetail(props) { curItem, recommendList, isParameter, - imgHeightList + imgHeightList, + navigateMantle } = state useEffect(() => { @@ -196,19 +198,10 @@ function EspierDetail(props) { }, [play]) useEffect(() => { - if ( - packageOpen || - skuPanelOpen || - sharePanelOpen || - posterModalOpen || - promotionOpen || - isParameter - ) { - pageRef.current.pageLock() - } else { - pageRef.current.pageUnLock() - } - }, [packageOpen, skuPanelOpen, sharePanelOpen, posterModalOpen, promotionOpen, isParameter]) + Taro.nextTick(() => { + pageRef.current && pageRef.current.pageLock() + }) + }, []) useEffect(() => { if (dtid) { @@ -443,6 +436,11 @@ function EspierDetail(props) { sessionFrom['昵称'] = userInfo.username } } + const handleScroll = (e) => { + setState((draft) => { + draft.navigateMantle = e.detail.scrollTop > 20 + }) + } return ( @@ -479,210 +479,211 @@ function EspierDetail(props) { /> } > + + - - {/* */} - {!info && } - {info && ( - - - - {info.imgs.map((img, idx) => ( - - - - - - ))} - - - {info.imgs.length > 1 && ( - {`${curImgIdx + 1}/${info.imgs.length}`} - )} - - {info.video && play && ( - - - )} - - {info.video && ( - { - setState((draft) => { - play ? (draft.play = false) : (draft.play = true) - }) - }} + {/* */} + {!info && } + {info && ( + + + - {!play && } - {play ? '退出视频' : '播放视频'} - - )} - + {info.imgs.map((img, idx) => ( + + + + + + ))} + - {/* 拼团、秒杀、限时特惠显示活动价 */} - {ACTIVITY_LIST()[info.activityType] && ( - { - fetch() - }} - > - - - )} + {info.imgs.length > 1 && ( + {`${curImgIdx + 1}/${info.imgs.length}`} + )} - - - {/* 拼团、秒杀、限时特惠不显示 */} - {!ACTIVITY_LIST()[info.activityType] && ( - + {info.video && play && ( + + + )} + + {info.video && ( + { + setState((draft) => { + play ? (draft.play = false) : (draft.play = true) + }) + }} + > + {!play && } + {play ? '退出视频' : '播放视频'} + )} - + {/* 拼团、秒杀、限时特惠显示活动价 */} + {ACTIVITY_LIST()[info.activityType] && ( + { + fetch() + }} + > + + + )} - 3 - ? info.couponList.list.slice(0, 3) - : info.couponList.list - } - onClick={handleReceiveCoupon} - /> - - - - {info.itemName} - {info.brief} + + + {/* 拼团、秒杀、限时特惠不显示 */} + {!ACTIVITY_LIST()[info.activityType] && ( + + )} - {(isWeixin || isAPP()) && ( - // {( - - { - if (isAPP()) { - Taro.SAPPShare.open() - } else { - // await getUserInfoAuth() - setState((draft) => { - draft.sharePanelOpen = true - }) - } - }} - > - - - 分享 + + + + 3 + ? info.couponList.list.slice(0, 3) + : info.couponList.list + } + onClick={handleReceiveCoupon} + /> + + + + {info.itemName} + {info.brief} + + {(isWeixin || isAPP()) && ( + // {( + + { + if (isAPP()) { + Taro.SAPPShare.open() + } else { + // await getUserInfoAuth() + setState((draft) => { + draft.sharePanelOpen = true + }) + } + }} + > + + + 分享 + + + + )} + + {info.isMedicine == 1 && info?.medicineData?.is_prescription == 1 && ( + + + 处方药 + 处方药须凭处方在药师指导下购买和使用 + + + 用药提示 + + {/* 功能主治: */} + {/* 根据法规要求,请咨询药师了解处方药详细信息 */} + {info?.medicineData?.use_tip} )} + + {/* */} + {info.salesSetting && ( + {`销量:${info.sales || 0}`} + )} + {info.store_setting && 库存:{info.store}} + - {info.isMedicine == 1 && info?.medicineData?.is_prescription == 1 && ( - - - 处方药 - 处方药须凭处方在药师指导下购买和使用 - - - 用药提示 - - {/* 功能主治: */} - {/* 根据法规要求,请咨询药师了解处方药详细信息 */} - {info?.medicineData?.use_tip} - - + + + + {!info.nospec && ( + + { + setState((draft) => { + draft.skuPanelOpen = true + draft.selectType = 'picker' + }) + }} + > + {skuText} + )} - - {/* */} - {info.salesSetting && ( - {`销量:${info.sales || 0}`} - )} - {info.store_setting && 库存:{info.store}} - - - - - {!info.nospec && ( - { - setState((draft) => { - draft.skuPanelOpen = true - draft.selectType = 'picker' - }) - }} - > - {skuText} - + {promotionPackage.length > 0 && ( + { + Taro.navigateTo({ + url: `/subpages/marketing/package-list?id=${info.itemId}&distributor_id=${info.distributorId}` + }) + // setState((draft) => { + // draft.packageOpen = true + // }) + }} + > + {`共${promotionPackage.length}种组合随意搭配`} + + )} + {promotionActivity.length > 0 && ( + { + setState((draft) => { + draft.promotionOpen = true + }) + }} + > + {promotionActivity.map((item, index) => ( + + {item.promotionTag} + + ))} + + )} - )} - - {promotionPackage.length > 0 && ( - { - Taro.navigateTo({ - url: `/subpages/marketing/package-list?id=${info.itemId}&distributor_id=${info.distributorId}` - }) - // setState((draft) => { - // draft.packageOpen = true - // }) - }} - > - {`共${promotionPackage.length}种组合随意搭配`} - - )} - {promotionActivity.length > 0 && ( - { - setState((draft) => { - draft.promotionOpen = true - }) - }} - > - {promotionActivity.map((item, index) => ( - - {item.promotionTag} - - ))} - - )} - - - {/* {info.itemParams.length > 0 && + {/* {info.itemParams.length > 0 && 商品参数 {info.itemParams.map((item, index) => ( @@ -694,156 +695,157 @@ function EspierDetail(props) { } */} - {info.itemParams.length > 0 && ( - - 参数 - - {info.itemParams.map((item, index) => { - return ( - - {item.attribute_value_name} - {item.attribute_name} - - ) - })} + {info.itemParams.length > 0 && ( + + 参数 + + {info.itemParams.map((item, index) => { + return ( + + {item.attribute_value_name} + {item.attribute_name} + + ) + })} + + - - - )} - - {/* 商品评价 */} - - - {/* 店铺 */} - {VERSION_PLATFORM && } - - - - 宝贝详情 - - {isArray(info.intro) ? ( - - {info.intro.map((item, idx) => ( - - {item.name === 'film' && } - {item.name === 'slider' && } - {item.name === 'writing' && } - {/* {item.name === 'heading' && } */} - {item.name === 'headline' && } - {item.name === 'goods' && } - {item.name === 'imgHotzone' && } - - ))} - - ) : ( - )} + + {/* 商品评价 */} + + + {/* 店铺 */} + {VERSION_PLATFORM && } + + + + 宝贝详情 + + {isArray(info.intro) ? ( + + {info.intro.map((item, idx) => ( + + {item.name === 'film' && } + {item.name === 'slider' && } + {item.name === 'writing' && } + {/* {item.name === 'heading' && } */} + {item.name === 'headline' && } + {item.name === 'goods' && } + {item.name === 'imgHotzone' && } + + ))} + + ) : ( + + )} + - - )} + )} - + - {/* 组合优惠 */} - { - setState((draft) => { - draft.packageOpen = false - }) - }} - info={{ - mainGoods, - makeUpGoods - }} - /> - - {/* 促销优惠活动 */} - { - setState((draft) => { - draft.promotionOpen = false - }) - }} - /> - - {/* Sku选择器 */} - { - setState((draft) => { - draft.skuPanelOpen = false - }) - }} - refreshs={false} - onChange={(skuText, curItem) => { - setState((draft) => { - draft.skuText = skuText - draft.curItem = curItem - }) - }} - /> - - {/* 分享 */} - { - setState((draft) => { - draft.sharePanelOpen = false - }) - }} - onCreatePoster={() => { - setState((draft) => { - draft.sharePanelOpen = false - draft.posterModalOpen = true - }) - }} - onShareEdit={() => { - const { itemId, companyId, distributorId } = info - Taro.navigateTo({ - url: `/subpage/pages/editShare/index?id=${itemId}&dtid=${distributorId}&company_id=${companyId}` - }) - }} - /> - - {/* 海报 */} - {posterModalOpen && ( - { setState((draft) => { - draft.posterModalOpen = false + draft.packageOpen = false + }) + }} + info={{ + mainGoods, + makeUpGoods + }} + /> + + {/* 促销优惠活动 */} + { + setState((draft) => { + draft.promotionOpen = false }) }} /> - )} - - - - {info?.itemParams?.map((item, index) => { - return ( - - {item.attribute_name} - {item.attribute_value_name} - - ) - })} + {/* Sku选择器 */} + { + setState((draft) => { + draft.skuPanelOpen = false + }) + }} + refreshs={false} + onChange={(skuText, curItem) => { + setState((draft) => { + draft.skuText = skuText + draft.curItem = curItem + }) + }} + /> + + {/* 分享 */} + { + setState((draft) => { + draft.sharePanelOpen = false + }) + }} + onCreatePoster={() => { + setState((draft) => { + draft.sharePanelOpen = false + draft.posterModalOpen = true + }) + }} + onShareEdit={() => { + const { itemId, companyId, distributorId } = info + Taro.navigateTo({ + url: `/subpage/pages/editShare/index?id=${itemId}&dtid=${distributorId}&company_id=${companyId}` + }) + }} + /> + + {/* 海报 */} + {posterModalOpen && ( + { + setState((draft) => { + draft.posterModalOpen = false + }) + }} + /> + )} + + + + + {info?.itemParams?.map((item, index) => { + return ( + + {item.attribute_name} + {item.attribute_value_name} + + ) + })} + + + 确认 + - - 确认 - - - + + ) } From 58494199331b6affb040017b2816806f2c261101 Mon Sep 17 00:00:00 2001 From: zhangjing1 Date: Fri, 5 Sep 2025 16:46:24 +0800 Subject: [PATCH 2/2] bug(custom): --- src/components/sp-page/index.js | 2 +- src/pages/item/espier-detail.js | 7 +------ 2 files changed, 2 insertions(+), 7 deletions(-) diff --git a/src/components/sp-page/index.js b/src/components/sp-page/index.js index c1fad9105..aaddedb41 100644 --- a/src/components/sp-page/index.js +++ b/src/components/sp-page/index.js @@ -139,7 +139,7 @@ const SpPage = memo( draft.customNavigation = custom_navigation draft.cusCurrentPage = pages.length draft.ipx = isIphoneX() - draft.pageTitle = instanceRef.current?.page?.config?.navigationBarTitleText || props.title + draft.pageTitle = props.title || instanceRef.current?.page?.config?.navigationBarTitleText draft.gNavbarH = _gNavbarH draft.gStatusBarHeight = _gStatusBarHeight draft.height = !props.immersive ? screenHeight - _gNavbarH : screenHeight diff --git a/src/pages/item/espier-detail.js b/src/pages/item/espier-detail.js index 09d9446f0..6d1d96f16 100644 --- a/src/pages/item/espier-detail.js +++ b/src/pages/item/espier-detail.js @@ -112,12 +112,7 @@ function EspierDetail(props) { const { userInfo } = useSelector((state) => state.user) const { colorPrimary, openRecommend } = useSelector((state) => state.sys) - const { shopInfo } = useSelector((state) => state.shop) - const { setNavigationBarTitle } = useNavigation() const dispatch = useDispatch() - const { updateAddress } = useLocation() - - const loginRef = useRef() const [state, setState] = useImmer(initialState) const { @@ -451,7 +446,7 @@ function EspierDetail(props) { navigateBackgroundColor='#fff' navigateMantle={navigateMantle} immersive - title={navigateMantle?info?.itemName:''} + title={navigateMantle?info?.itemName:' '} ref={pageRef} renderFloat={