Browse Source

商品详情规格图片切换轮播图显示规格图片业务功能完善

master
dy-hu 1 year ago
parent
commit
3ec7a0b3ae
  1. 5
      pages_category_page1/goodsModule/components/GoodActivityDetail.vue
  2. 5
      pages_category_page1/goodsModule/components/GoodSkuSelect.vue
  3. 22
      pages_category_page1/goodsModule/goodsDetails.vue

5
pages_category_page1/goodsModule/components/GoodActivityDetail.vue

@ -393,12 +393,7 @@ export default {
}, },
switchSkuImage(index) { switchSkuImage(index) {
console.log('switchSkuImage-->', this.$refs.skuSwiper)
this.swiperCurrent = index this.swiperCurrent = index
// if (this.$refs.skuSwiper){
// this.$refs.skuSwiper.$swiper.slideTo(index, 1000, false);
// }
} }
} }
} }

5
pages_category_page1/goodsModule/components/GoodSkuSelect.vue

@ -57,7 +57,7 @@
<scroll-view class="scroll-view_H" scroll-x="true"> <scroll-view class="scroll-view_H" scroll-x="true">
<view class="sku-box" v-for="(skuColItem, skuColIndex) in skuRowItem.values" <view class="sku-box" v-for="(skuColItem, skuColIndex) in skuRowItem.values"
:key="skuColIndex"> :key="skuColIndex">
<view class="sku-image-item" @click="handleClickSkuItem(skuRowItem['nameCode'], skuColItem.valueCode)">
<view class="sku-image-item" @click="handleClickSkuItem(skuRowItem['nameCode'], skuColItem.valueCode,skuRowIndex,skuColIndex)">
<image class="sku-image" :class="{'sku-image-select' : selectedAttr[skuRowItem['nameCode']] === skuColItem.valueCode}" <image class="sku-image" :class="{'sku-image-select' : selectedAttr[skuRowItem['nameCode']] === skuColItem.valueCode}"
:src="skuColItem.image ? skuColItem.image : defaultImageUrl" @error="onImageError"/> :src="skuColItem.image ? skuColItem.image : defaultImageUrl" @error="onImageError"/>
<label class="sku-name" :class="{'sku-name-select' : selectedAttr[skuRowItem['nameCode']] === skuColItem.valueCode}"> {{ skuColItem.skuValue }}</label> <label class="sku-name" :class="{'sku-name-select' : selectedAttr[skuRowItem['nameCode']] === skuColItem.valueCode}"> {{ skuColItem.skuValue }}</label>
@ -313,7 +313,7 @@ export default {
* @param valueCode SKU列的valueCode * @param valueCode SKU列的valueCode
* nameCodeValueCodeClick * nameCodeValueCodeClick
*/ */
handleClickSkuItem(nameCode, valueCode) {
handleClickSkuItem(nameCode, valueCode, rowIndex, colIndex) {
// //
this.$set(this.selectedAttr, nameCode, valueCode) this.$set(this.selectedAttr, nameCode, valueCode)
// skuvalues.valueCode // skuvalues.valueCode
@ -340,6 +340,7 @@ export default {
} }
} }
this.$emit('skuImageSelect', rowIndex, colIndex)
}, },
// //

22
pages_category_page1/goodsModule/goodsDetails.vue

@ -94,7 +94,7 @@
<view class="sku-image-box"> <view class="sku-image-box">
<!--规格图片遍历处理最大只显示4个--> <!--规格图片遍历处理最大只显示4个-->
<block v-for="(skuImgItem,skuImgIndex) in productData.names[0].values" :key="skuImgIndex"> <block v-for="(skuImgItem,skuImgIndex) in productData.names[0].values" :key="skuImgIndex">
<image class="sku-image" :class="{'sku-image-select' : skuImgItem.valueCode === selectedAttr[productData.names[0].nameCode]}" @click="handleClickSku(productData.names[0].nameCode, skuImgItem.valueCode, skuImgIndex)"
<image class="sku-image" :class="{'sku-image-select' : skuImgItem.valueCode === selectedAttr[productData.names[0].nameCode]}" @click="handleClickSku(productData.names[0].nameCode, skuImgItem.valueCode, 0, skuImgIndex)"
:src="skuImgItem.image ? skuImgItem.image: defaultImageUrl" @error="onImageError"/> :src="skuImgItem.image ? skuImgItem.image: defaultImageUrl" @error="onImageError"/>
</block> </block>
@ -342,6 +342,7 @@
@postSelectSku="selectSkuPostProcessor" @postSelectSku="selectSkuPostProcessor"
@getCurrentSku="handleSelectSku" @getCurrentSku="handleSelectSku"
@changeCartNum="(num)=>allCartNum = num" @changeCartNum="(num)=>allCartNum = num"
@skuImageSelect="switchSkuImage"
/> />
<!-- 优惠券选择器 --> <!-- 优惠券选择器 -->
<coupon-popup <coupon-popup
@ -474,6 +475,7 @@ export default {
}, },
defaultImageUrl: 'http://36.138.125.206:8081/ceres-local-file/image/sku_default.png', defaultImageUrl: 'http://36.138.125.206:8081/ceres-local-file/image/sku_default.png',
selectedAttr: {}, selectedAttr: {},
skuImages: []
} }
}, },
created() { created() {
@ -750,15 +752,14 @@ export default {
} }
} }
const skuImages = []
for (const valueCode of this.productData.names[0].values){ for (const valueCode of this.productData.names[0].values){
if (valueCode.image) { if (valueCode.image) {
skuImages.push(valueCode.image)
this.skuImages.push(valueCode.image)
} }
} }
if (skuImages.length > 0) {
if (this.skuImages.length > 0) {
// //
this.productData.images = skuImages
this.productData.images = this.skuImages
} }
// //
@ -844,10 +845,15 @@ export default {
(await Services(this.shopId)).flyToService() (await Services(this.shopId)).flyToService()
}, },
handleClickSku(nameCode, valueCode, index) {
this.$refs.skuSelect.handleClickSkuItem(nameCode,valueCode)
handleClickSku(nameCode, valueCode, rowIndex, colIndex) {
this.$refs.skuSelect.handleClickSkuItem(nameCode, valueCode, rowIndex, colIndex)
this.selectedAttr = this.$refs.skuSelect.selectedAttr this.selectedAttr = this.$refs.skuSelect.selectedAttr
this.$refs.goodActivityDetail.switchSkuImage(index)
},
switchSkuImage(rowIndex, colIndex) {
if (this.skuImages.length > 0 && rowIndex === 0) {
this.$refs.goodActivityDetail.switchSkuImage(colIndex)
}
}, },
onImageError(e) { onImageError(e) {

Loading…
Cancel
Save