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.
113 lines
2.4 KiB
113 lines
2.4 KiB
<template>
|
|
<div class="shop" :class="'terminal' + terminal">
|
|
<swiper :options="swiperOption">
|
|
<swiper-slide class="shop-item" v-for="(item,index) in imgList" :key="index">
|
|
<div class="shop-item-warp">
|
|
<img class="img" :src="item.img">
|
|
<div class="a-link" @click="jumpLink(item.linkObj)">
|
|
进店逛逛<i class="iconfont icon-arrow-right"></i>
|
|
</div>
|
|
</div>
|
|
</swiper-slide>
|
|
</swiper>
|
|
<div class="pagination shop-pagination"></div>
|
|
</div>
|
|
</template>
|
|
|
|
<script>
|
|
import { directive, Swiper, SwiperSlide } from 'vue-awesome-swiper'
|
|
import 'swiper/css/swiper.css'
|
|
import {funMixin} from '../config/mixin'
|
|
export default {
|
|
name: 'shop',
|
|
mixins: [funMixin],
|
|
data () {
|
|
return {
|
|
swiperOption: {
|
|
autoplay: false, // 可选选项,自动滑动
|
|
loop: true,
|
|
pagination: {
|
|
el: '.shop-pagination'
|
|
}
|
|
}
|
|
}
|
|
},
|
|
props: {
|
|
terminal: {
|
|
type: Number,
|
|
default: 4
|
|
},
|
|
componentContent: {
|
|
type: Object
|
|
}
|
|
},
|
|
components: {
|
|
Swiper,
|
|
SwiperSlide
|
|
},
|
|
directives: {
|
|
swiper: directive
|
|
},
|
|
computed: {
|
|
imgList: function () {
|
|
console.log(this.componentContent)
|
|
return this.componentContent.imgTextData.filter(function (item) {
|
|
return item.img
|
|
})
|
|
}
|
|
}
|
|
}
|
|
</script>
|
|
|
|
<style lang="scss" scoped>
|
|
.shop{
|
|
position: relative;
|
|
&-item{
|
|
&-warp{
|
|
position: relative;
|
|
padding: 0 20px;
|
|
.img{
|
|
width: 100%;
|
|
height: 420px;
|
|
}
|
|
.a-link{
|
|
width: 220px;
|
|
height: 80px;
|
|
line-height: 80px;
|
|
background: linear-gradient(225deg, #585858 0%, #333333 100%);
|
|
box-shadow: 0px 20px 40px rgba(0, 0, 0, 0.3);
|
|
display: block;
|
|
color: #fff;
|
|
font-size: 28px;
|
|
text-align: center;
|
|
position: absolute;
|
|
right: 0;
|
|
bottom: 30px;
|
|
.icon{
|
|
margin-left: 20px;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
.pagination{
|
|
display: flex;
|
|
justify-content: center;
|
|
padding:20px 0;
|
|
::v-deep .swiper-pagination-bullet{
|
|
width: 12px;
|
|
height: 12px;
|
|
background: #333333;
|
|
border-radius: 50%;
|
|
opacity: 0.2;
|
|
margin: 0 10px;
|
|
}
|
|
::v-deep .swiper-pagination-bullet-active{
|
|
width: 24px;
|
|
height: 12px;
|
|
background: #333333;
|
|
opacity: 1;
|
|
border-radius: 8px;
|
|
}
|
|
}
|
|
}
|
|
</style>
|