|
|
|
@ -34,7 +34,7 @@
|
|
|
|
|
<!-- 规格 --> |
|
|
|
|
<view class="attribute acea-row row-between-wrapper" @click="selecAttrTap"> |
|
|
|
|
<view>选规格</view> |
|
|
|
|
<view class="acea-row attr-content"> |
|
|
|
|
<view class="acea-row attr-content"> |
|
|
|
|
<image v-if="item.image" :src="item.image" v-for="(item,index) in attrImages" :key="index" mode="aspectFill"></image> |
|
|
|
|
<view class="attrs">共{{attr.productAttr[0].attrValueArr.length}}个{{attr.productAttr.length == 1?attr.productAttr[0].attrName:attr.productAttr[0].attrValueArr.length == 1?attr.productAttr[1].attrName:attr.productAttr[0].attrName}}可选</view> |
|
|
|
|
<!-- <text>{{ attrTxt }}:</text> |
|
|
|
@ -45,16 +45,34 @@
|
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
<!-- 用户评价 --> |
|
|
|
|
<!-- <view class="userEvaluation" v-if="replyCount"> |
|
|
|
|
<view class="userEvaluation" v-if="replyCount"> |
|
|
|
|
<view class="title acea-row row-between-wrapper"> |
|
|
|
|
<view>用户评价({{ replyCount }})</view> |
|
|
|
|
<text @click="goEvaluateList(id)" class="praise"> |
|
|
|
|
<text class="font-color-red">{{ replyChance }}%</text>好评率 |
|
|
|
|
<text class="iconfont icon-jiantou"></text> |
|
|
|
|
</text> |
|
|
|
|
<view class="acea-row row-middle"> |
|
|
|
|
<text>评价</text> |
|
|
|
|
<text class="replyCount">{{ replyCount }}</text> |
|
|
|
|
</view> |
|
|
|
|
<view @click="goEvaluateList(id)" class="praise acea-row row-middle"> |
|
|
|
|
<view>好评率{{ replyChance }}%</view> |
|
|
|
|
<view class="jiantou-right"></view> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<user-evaluation :reply="reply"></user-evaluation> |
|
|
|
|
</view> --> |
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
<view class="product-parameter" v-if="storeInfo.parameter.length > 0"> |
|
|
|
|
<view class="title">商品参数</view> |
|
|
|
|
<view :class="'parameter-list ' + (isUnfold?'unfold':'')" :style="isUnfold?'height: auto;':'max-height: 184rpx;'"> |
|
|
|
|
<view class="parameter-item acea-row" v-for="(item,index) in storeInfo.parameter" :key="index"> |
|
|
|
|
<view class="parameter-name one-t">{{item.name}}</view> |
|
|
|
|
<view class="parameter">{{item.details}}</view> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
<view v-if="storeInfo.parameter.length > 4" class="more-box acea-row row-center-wrapper" @click="unfold" :style="isUnfold?'height: 50rpx;padding-top: 0rpx;':''"> |
|
|
|
|
<view>{{isUnfold?'收起':'展开'}}</view> |
|
|
|
|
<view v-if="isUnfold" class="jiantou-up"></view> |
|
|
|
|
<view v-else class="jiantou-down"></view> |
|
|
|
|
</view> |
|
|
|
|
</view> |
|
|
|
|
|
|
|
|
|
<!-- 商品详情 --> |
|
|
|
|
<view class="product-intro"> |
|
|
|
@ -150,7 +168,7 @@ export default {
|
|
|
|
|
productSelect: {}, |
|
|
|
|
}, |
|
|
|
|
isOpen: false, //是否打开属性组件 |
|
|
|
|
productValue: [], |
|
|
|
|
productValue: [], |
|
|
|
|
attrImages: [], |
|
|
|
|
id: 0, |
|
|
|
|
storeInfo: {}, |
|
|
|
@ -347,10 +365,10 @@ export default {
|
|
|
|
|
that.$set(that, 'goodList', goodArray) |
|
|
|
|
that.updateTitle() |
|
|
|
|
that.DefaultSelect() |
|
|
|
|
that.getCartCount() |
|
|
|
|
for(let i in that.productValue) { |
|
|
|
|
that.attrImages.push(that.productValue[i]); |
|
|
|
|
if(that.attrImages.length == 2) return |
|
|
|
|
that.getCartCount() |
|
|
|
|
for(let i in that.productValue) { |
|
|
|
|
that.attrImages.push(that.productValue[i]); |
|
|
|
|
if(that.attrImages.length == 2) return |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
.catch(err => { |
|
|
|
@ -748,6 +766,83 @@ export default {
|
|
|
|
|
margin-left: 8rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.userEvaluation .title .replyCount { |
|
|
|
|
font-size: 20rpx; |
|
|
|
|
font-family: PingFang SC; |
|
|
|
|
font-weight: 500; |
|
|
|
|
color: #3A3A3C; |
|
|
|
|
padding-left: 8rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.product-parameter { |
|
|
|
|
margin: 0rpx 32rpx 20rpx; |
|
|
|
|
padding: 16rpx 24rpx; |
|
|
|
|
background: #F5F6F8; |
|
|
|
|
box-shadow: 0rpx 10rpx 16rpx 0rpx rgba(0, 0, 0, 0.06); |
|
|
|
|
border-radius: 16rpx; |
|
|
|
|
position: relative; |
|
|
|
|
transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); |
|
|
|
|
|
|
|
|
|
.title { |
|
|
|
|
font-size: 30rpx; |
|
|
|
|
font-family: SourceHanSansSCVF; |
|
|
|
|
font-weight: 600; |
|
|
|
|
color: #3A3A3C; |
|
|
|
|
line-height: 46rpx; |
|
|
|
|
padding-bottom: 22rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.parameter-list { |
|
|
|
|
overflow: hidden; |
|
|
|
|
.parameter-item { |
|
|
|
|
font-size: 24rpx; |
|
|
|
|
font-family: PingFang SC; |
|
|
|
|
font-weight: 500; |
|
|
|
|
color: #3A3A3C; |
|
|
|
|
line-height: 40rpx; |
|
|
|
|
padding-bottom: 6rpx; |
|
|
|
|
|
|
|
|
|
.parameter-name { |
|
|
|
|
padding: 0rpx 20rpx; |
|
|
|
|
width: 172rpx; |
|
|
|
|
height: 40rpx; |
|
|
|
|
background: #E3E3E3; |
|
|
|
|
margin-right: 6rpx; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.parameter { |
|
|
|
|
padding: 0rpx 20rpx; |
|
|
|
|
width: 460rpx; |
|
|
|
|
height: 40rpx; |
|
|
|
|
background: #E3E3E3; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.unfold { |
|
|
|
|
overflow: visible; |
|
|
|
|
padding-bottom: 26rpx; |
|
|
|
|
transition: all 0.3s cubic-bezier(0.25, 0.5, 0.5, 0.9); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.more-box { |
|
|
|
|
width: 686rpx; |
|
|
|
|
height: 76rpx; |
|
|
|
|
border-radius: 0rpx 0rpx 16rpx 16rpx; |
|
|
|
|
padding-top: 10rpx; |
|
|
|
|
position: absolute; |
|
|
|
|
left: 0; |
|
|
|
|
bottom: 0; |
|
|
|
|
// z-index: 1; |
|
|
|
|
background: linear-gradient(180deg, rgba(243, 243, 243, 0.4) 0%, #FFFFFF 100%); |
|
|
|
|
font-size: 20rpx; |
|
|
|
|
font-family: PingFang SC; |
|
|
|
|
font-weight: 500; |
|
|
|
|
color: #999999; |
|
|
|
|
line-height: 26rpx; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
.geoPage { |
|
|
|
|
position: fixed; |
|
|
|
|
width: 100%; |
|
|
|
|