You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
<template> <div class="product-list" :class="'terminal'+terminal"> <div class="picListWarp" v-if="componentContent.arrangeType == '横向滑动'"> <div class="picList" v-if="productData.products && productData.products.length>0"> <div class="swiper-button-prev"></div> <div class="swiper-button-next"></div> <swiper class="products-swiper" :options="swiperOption"> <swiper-slide class="products-swiper-slide item" v-for="(item,index) in productData.products" :key="index"> <div class="a-link" @click="jumpProductDetail(item)"> <div class="itemImgBox"> <div class="imgBox"> <el-image :src="item.image" fit="contain"></el-image> </div> </div> <div class="text"> <h4 class="h4">{{item.productName}}</h4> <div class="priceBox"> <span class="discount" v-if="item.originalPrice">¥{{item.originalPrice}}</span> <dl> <dt><img src="../../../static/images/group/flag-group.png" alt="拼团价"></dt> <dd> ¥{{item.price}} </dd> </dl> </div> </div> </div> </swiper-slide> </swiper> </div> </div> <div v-else class="picList" > <ul class="clearfix" :class="'imgTextNum' + componentContent.productNum" v-if="productData.products && productData.products.length>0"> <li class="item" v-for="(item,index) in productData.products.slice(0, componentContent.productRowNum * componentContent.productNum)" :key="index"> <div class="a-link" @click="jumpProductDetail(item)"> <div class="itemImgBox"> <div class="imgBox"> <el-image :src="item.image" fit="contain"></el-image> </div> </div> <div class="text"> <h4 class="h4">{{item.productName}}</h4> <div class="priceBox"> <span class="discount" v-if="item.originalPrice">¥{{item.originalPrice}}</span> <dl> <dt><img src="../../../static/images/group/flag-group.png" alt="拼团价"></dt> <dd> ¥{{item.price}} </dd> </dl> </div> </div> </div> </li> </ul> </div> <button v-show="componentContent.showMore" class="btn-more" @click="jumpGroupWorks(productData)">查看全部 <span class="icon iconfont icon-arrow-right"></span></button> </div> </template>
<script> import {commonMixin} from '../mixin' export default { mixins: [commonMixin], data () { return { swiperOption: { slidesPerView: 4, // 显示数量
spaceBetween: 13, // 间隔
autoplay: false, // 可选选项,自动滑动
loop: true, pagination: { el: '.group-pagination' }, navigation: { nextEl: '.swiper-button-next', prevEl: '.swiper-button-prev' } } } } } </script>
<style lang="scss" scoped> .product-list{ padding: 20px 0; background-color: #fff; .picListWarp{ width: 1380px; max-width: 100%; margin: 0 auto; position: relative; } .picList{ width: 1200px; max-width: 100%; margin: 0 auto; .swiper-button-prev,.swiper-button-next{ width: 50px; height: 50px; position: absolute; cursor:pointer; top: 140px; background-repeat: no-repeat; &:after{ content: ''; } } .swiper-button-prev{ left: 0; background: url('../../../static/images/btn-prev.png'); } .swiper-button-next{ right: 0; background: url('../../../static/images/btn-next.png'); } .a-link{ cursor: pointer; &:hover{ box-shadow: 3px 4px 20px 0px rgba(186, 186, 186, 0.5); } .itemImgBox { height: auto; display: flex; flex-direction: column; justify-content: center; .imgBox { padding-bottom: 100%; background-color: #cacaca; position: relative; .el-image { width: 100%; height: 100%; position: absolute; top: 0; left: 0; } } } .text{ padding:25px 20px 17px; text-align: center; //height: 180px;
.h4{ font-size: 18px; line-height: 24px; overflow: hidden; text-overflow:ellipsis; white-space: nowrap; color: #333333; //max-height: 48px;
} .p{ color: #999; font-size: 16px; overflow: hidden; text-overflow:ellipsis; white-space: nowrap; padding-top: 18px; position: relative; margin-top: 8px; &:after{ position: absolute; top: 0; left: 50%; margin-left: -80px; width: 160px; height: 2px; background: #F0F0F0; content: ''; } } .priceBox { dl { display: inline-block; min-width: 130px; dt{ float: left; img{ display: block; } } dd{ border: 1px solid #F3F4F5; font-size: 25px; line-height: 34px; color: #C83732; margin-left: 57px; padding: 0 10px; } } span.discount { display: block; font-size: 18px; line-height: 24px; padding: 15px 0 11px; color: #ccc; text-decoration: line-through; } } } } ul{ margin: -15px 0 0 -15px; display: flex; flex-wrap: wrap; li{ flex: 0 0 50%; padding: 15px 0 0 15px; width: 0; } } .imgTextNum2 { li { flex: 0 0 50%; } } .imgTextNum3 { li { flex: 0 0 33.33%; } } .imgTextNum4 { li { flex: 0 0 25%; } } .imgTextNum5 { li { flex: 0 0 20%; } } } } .btn-more { width: 130px; height: 41px; border: 2px solid #C5AA7B; color: #C5AA7B; font-size: 18px; background-color: transparent; margin: 20px auto 0; display: block; } </style>
|