mirror of
https://gitee.com/ShopeX/ECShopX_mobile-frontend
synced 2026-08-13 14:45:41 +08:00
master
This commit is contained in:
14
.env
14
.env
@@ -1,16 +1,16 @@
|
||||
APP_BASE_URL=https://demo-ecshopx.ishopex.cn/api/h5app/wxapp
|
||||
APP_WEBSOCKET=wss://demo-ecshopx.ishopex.cn/ws
|
||||
APP_COMPANY_ID=38
|
||||
APP_BASE_URL=https://test-dtc.amandax.com.cn/api/h5app/wxapp
|
||||
APP_WEBSOCKET=wss://test-dtc.amandax.com.cn/ws
|
||||
APP_COMPANY_ID=1
|
||||
APP_PLATFORM=standard
|
||||
APP_CUSTOM_SERVER=https://ecshopx-h5.ex-sandbox.com/
|
||||
APP_CUSTOM_SERVER=https://test-dtc.amandax.com.cn
|
||||
APP_HOME_PAGE=/pages/index
|
||||
APP_TRACK=youshu
|
||||
APP_YOUSHU_TOKEN=bi281e87ab2424481a
|
||||
APP_ID=wx1e25e45145b70faa
|
||||
APP_MAP_KEY=1ccc1ebc947719886f0cd766d70241fe
|
||||
APP_ID=wx27fc041381fe1e0d
|
||||
APP_MAP_KEY=NWBBZ-NKJ6J-LMOFT-D3LBD-IEYKE-JRFOY
|
||||
APP_MAP_NAME=oneX新零售门店定位
|
||||
APP_IMAGE_CDN=https://b-img-cdn.yuanyuanke.cn/ecshopx-vshop
|
||||
APP_DIANWU_URL=https://demo-ecshopx-dianwu.shopex123.com
|
||||
APP_DIANWU_URL=
|
||||
APP_MERCHANT_URL=
|
||||
APP_ADAPAY=
|
||||
|
||||
|
||||
15
CHANGELOG.md
15
CHANGELOG.md
@@ -2,6 +2,21 @@
|
||||
|
||||
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
||||
|
||||
### [3.21.4](https://git.ishopex.cn/ecshopx/ecshopx-vshop/compare/v3.21.3...v3.21.4) (2025-06-19)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 修复购物车猜你喜欢列表不展示 ([57ac99a](https://git.ishopex.cn/ecshopx/ecshopx-vshop/commit/57ac99a82017189838f6599872757801d8e8ed59))
|
||||
|
||||
### [3.21.3](https://git.ishopex.cn/ecshopx/ecshopx-vshop/compare/v3.21.0...v3.21.3) (2025-06-09)
|
||||
|
||||
|
||||
### Bug Fixes
|
||||
|
||||
* 导购欢迎语参数兼容处理 ([a2a062c](https://git.ishopex.cn/ecshopx/ecshopx-vshop/commit/a2a062c43fc9f2f456f9e1d449c4ede5cd3c7cb3))
|
||||
* 购物车输入框bug ([29f5893](https://git.ishopex.cn/ecshopx/ecshopx-vshop/commit/29f5893d76f58dbc8d103b7947915a88dd9fadcd))
|
||||
|
||||
### [3.21.2](https://git.ishopex.cn/ecshopx/ecshopx-vshop/compare/v3.20.7...v3.21.2) (2025-06-05)
|
||||
|
||||
|
||||
|
||||
@@ -1047,7 +1047,6 @@ map_name = oneX新零售门店定位
|
||||
image_cdn = https://b-img-cdn.yuanyuanke.cn/ecshopx-vshop
|
||||
dianwu_url=https://dw.xsdaojia.com
|
||||
|
||||
|
||||
[辉绮-测试]
|
||||
appid = wx27fc041381fe1e0d
|
||||
base_url = https://test-dtc.amandax.com.cn/api/h5app/wxapp
|
||||
|
||||
2
package-lock.json
generated
2
package-lock.json
generated
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ecshopx-vshop",
|
||||
"version": "3.21.2",
|
||||
"version": "3.21.4",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "ecshopx-vshop",
|
||||
"app_name": "ecshopx",
|
||||
"version": "3.21.2",
|
||||
"version": "3.21.4",
|
||||
"private": true,
|
||||
"description": "taro app for bbc",
|
||||
"scripts": {
|
||||
|
||||
@@ -328,12 +328,12 @@ export const ESPIER_DETAIL_GOODS_INFO = {
|
||||
// 如果 regions 不是数组,可以将它转换成数组 把 regions 转换成只包含一个元素的数组
|
||||
regions = [regions]
|
||||
}
|
||||
if (item_unit) {
|
||||
res.push({ attribute_name: '计量单位', attribute_value_name: item_unit })
|
||||
}
|
||||
if (regions) {
|
||||
res.push({ attribute_name: '产地', attribute_value_name: regions.join(' ') })
|
||||
}
|
||||
// if (item_unit) {
|
||||
// res.push({ attribute_name: '计量单位', attribute_value_name: item_unit })
|
||||
// }
|
||||
// if (regions) {
|
||||
// res.push({ attribute_name: '产地', attribute_value_name: regions.join(' ') })
|
||||
// }
|
||||
return res.concat(item_params)
|
||||
},
|
||||
groupsList: 'groups_list',
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
{
|
||||
"extEnable": true,
|
||||
"extAppid": "wx1e25e45145b70faa",
|
||||
"extAppid": "wx27fc041381fe1e0d",
|
||||
"ext": {
|
||||
"company_id": "38",
|
||||
"appid": "wx1e25e45145b70faa",
|
||||
"company_id": "1",
|
||||
"appid": "wx27fc041381fe1e0d",
|
||||
"wxa_name": "通用小程序",
|
||||
"ali_isvid":""
|
||||
},
|
||||
|
||||
@@ -50,10 +50,10 @@ function GoodReservateResult(props) {
|
||||
return (
|
||||
<SpPage className='good-reservate-result'>
|
||||
<View className='good-reservate-result__title-box'>
|
||||
<View className='good-reservate-result__title'>
|
||||
{/* <View className='good-reservate-result__title'>
|
||||
<Text className='icon-wancheng iconfont'> </Text>
|
||||
股东您好,报名已填报完成!
|
||||
</View>
|
||||
</View> */}
|
||||
{info?.joinTips && <View className='good-reservate-result__subtitle'>{info.joinTips}</View>}
|
||||
</View>
|
||||
|
||||
|
||||
@@ -94,12 +94,12 @@ function CartIndex() {
|
||||
const params = {
|
||||
shop_type: type
|
||||
}
|
||||
|
||||
|
||||
await dispatch(fetchCartList(params))
|
||||
await dispatch(updateCount(params))
|
||||
let cartRemindres = await api.cart.getCartRemind(params)
|
||||
setState({
|
||||
cartRemind: cartRemindres
|
||||
setState((draft) => {
|
||||
draft.cartRemind = cartRemindres
|
||||
})
|
||||
Taro.hideLoading()
|
||||
}
|
||||
|
||||
@@ -33,7 +33,7 @@ const initialState = {
|
||||
searchMethod: null
|
||||
}
|
||||
function HomeWgts(props) {
|
||||
const { wgts, dtid, onLoad = () => { }, children ,copywriting = true} = props
|
||||
const { wgts, dtid, onLoad = () => { }, children ,copywriting = false} = props
|
||||
const [state, setState] = useImmer(initialState)
|
||||
const { localWgts, searchMethod } = state
|
||||
const wgtsRef = useRef()
|
||||
|
||||
@@ -8,7 +8,7 @@ import Taro, {
|
||||
} from '@tarojs/taro'
|
||||
import { View, Text, Swiper, SwiperItem, Video, ScrollView } from '@tarojs/components'
|
||||
import { useImmer } from 'use-immer'
|
||||
import { AtCountdown } from 'taro-ui'
|
||||
import { AtFloatLayout , AtButton } from 'taro-ui'
|
||||
import {
|
||||
SpPrice,
|
||||
SpCell,
|
||||
@@ -107,7 +107,8 @@ const initialState = {
|
||||
showCancel: true,
|
||||
onCancel: null,
|
||||
onConfirm: null
|
||||
}
|
||||
},
|
||||
isParameter: false
|
||||
}
|
||||
|
||||
function EspierDetail(props) {
|
||||
@@ -176,7 +177,8 @@ function EspierDetail(props) {
|
||||
curItem,
|
||||
recommendList,
|
||||
policyModal,
|
||||
modalDivided
|
||||
modalDivided,
|
||||
isParameter
|
||||
} = state
|
||||
|
||||
// 添加一个 ref 来追踪是否是首次渲染
|
||||
@@ -231,12 +233,12 @@ function EspierDetail(props) {
|
||||
}, [play])
|
||||
|
||||
useEffect(() => {
|
||||
if (packageOpen || skuPanelOpen || sharePanelOpen || posterModalOpen || promotionOpen) {
|
||||
if (packageOpen || skuPanelOpen || sharePanelOpen || posterModalOpen || promotionOpen || isParameter) {
|
||||
pageRef.current.pageLock()
|
||||
} else {
|
||||
pageRef.current.pageUnLock()
|
||||
}
|
||||
}, [packageOpen, skuPanelOpen, sharePanelOpen, posterModalOpen, promotionOpen])
|
||||
}, [packageOpen, skuPanelOpen, sharePanelOpen, posterModalOpen, promotionOpen,isParameter])
|
||||
|
||||
// 添加一个新的 useEffect 来监听 dtid 变化
|
||||
useEffect(() => {
|
||||
@@ -715,6 +717,12 @@ function EspierDetail(props) {
|
||||
})
|
||||
}
|
||||
|
||||
const handleClose = () => {
|
||||
setState((draft) => {
|
||||
draft.isParameter = !isParameter
|
||||
})
|
||||
}
|
||||
|
||||
// 领券
|
||||
const handleReceiveCoupon = () => {
|
||||
const { itemId, distributorId } = info
|
||||
@@ -982,7 +990,7 @@ function EspierDetail(props) {
|
||||
)}
|
||||
</View>
|
||||
|
||||
{info.itemParams.length > 0 && <View className='goods-params'>
|
||||
{/* {info.itemParams.length > 0 && <View className='goods-params'>
|
||||
<View className='params-hd'>商品参数</View>
|
||||
<View className='params-bd'>
|
||||
{info.itemParams.map((item, index) => (
|
||||
@@ -992,7 +1000,35 @@ function EspierDetail(props) {
|
||||
</View>
|
||||
))}
|
||||
</View>
|
||||
</View>}
|
||||
</View>} */}
|
||||
|
||||
{
|
||||
info.itemParams.length > 0 &&
|
||||
<View className='goods-params-flat'>
|
||||
<View className='parameter'>
|
||||
参数
|
||||
</View>
|
||||
<View className='parameter-content'>
|
||||
{
|
||||
info.itemParams.map((item, index) => {
|
||||
return(
|
||||
<View className='parameter-item'>
|
||||
<View className='attribute'>
|
||||
{item.attribute_value_name}
|
||||
</View>
|
||||
<View className='configuration'>
|
||||
{item.attribute_name}
|
||||
</View>
|
||||
</View>
|
||||
)
|
||||
})
|
||||
}
|
||||
</View>
|
||||
<Text className='iconfont icon-arrowRight' onClick={handleClose} />
|
||||
</View>
|
||||
}
|
||||
|
||||
|
||||
|
||||
{/* 商品评价 */}
|
||||
<CompEvaluation list={evaluationList} itemId={info.itemId}></CompEvaluation>
|
||||
@@ -1131,6 +1167,24 @@ function EspierDetail(props) {
|
||||
onCancel={modalDivided.onCancel}
|
||||
onConfirm={modalDivided.onConfirm}
|
||||
/>}
|
||||
|
||||
<AtFloatLayout isOpened ={isParameter} title="商品参数" onClose={handleClose}>
|
||||
<View className='product-parameter'>
|
||||
<View className='product-parameter-all'>
|
||||
{
|
||||
info?.itemParams?.map((item,index)=>{
|
||||
return(
|
||||
<View className='product-parameter-item'>
|
||||
<Text className='title'>{item.attribute_name}</Text>
|
||||
<Text className='content'>{item.attribute_value_name}</Text>
|
||||
</View>
|
||||
)
|
||||
})
|
||||
}
|
||||
</View>
|
||||
<AtButton type='primary' circle onClick={handleClose}>确认</AtButton>
|
||||
</View>
|
||||
</AtFloatLayout>
|
||||
</SpPage>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -293,4 +293,71 @@
|
||||
// @include text-overflow();
|
||||
}
|
||||
}
|
||||
|
||||
.goods-params-flat{
|
||||
margin: 0 16px 24px;
|
||||
padding: 16px 24px;
|
||||
background: #fff;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
width: 670px;
|
||||
.parameter{
|
||||
font-weight: 600;
|
||||
font-size: 28px;
|
||||
width: 100px;
|
||||
text-align: center;
|
||||
white-space:nowrap;
|
||||
}
|
||||
.parameter-content{
|
||||
display: flex;
|
||||
align-items: center;
|
||||
white-space:nowrap;
|
||||
flex: 1;
|
||||
overflow-y: auto;
|
||||
.parameter-item{
|
||||
text-align: center;
|
||||
width: 164px;
|
||||
.attribute{
|
||||
width: 160px;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
white-space: nowrap;
|
||||
}
|
||||
flex-shrink: 0;
|
||||
.configuration{
|
||||
color: #999;
|
||||
}
|
||||
}
|
||||
}
|
||||
.icon-arrowRight{
|
||||
font-size: 36px;
|
||||
}
|
||||
}
|
||||
|
||||
.at-float-layout .layout-header__title {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.product-parameter{
|
||||
height: 700px;
|
||||
padding: 0 24px;
|
||||
&-all{
|
||||
margin-bottom: 24px;
|
||||
height: 560px;
|
||||
overflow-x: auto;
|
||||
.product-parameter-item{
|
||||
height: 80px;
|
||||
.title{
|
||||
color: #999;
|
||||
width: 260px;
|
||||
display: inline-block;
|
||||
}
|
||||
.content{
|
||||
font-weight: 600;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user