swiper.vue 1.44 KB
<template>
    <div class="swiper-box" v-if="swipers  && swipers.length">
        <swipe class="swipe" :autoplay="5000" :touchable="swipers.length===1 ? false : true" :show-indicators="options && options.showIndicators !== undefined ? options.showIndicators : showIndicators" @change="onChange">
            <swipe-item class="swipe-item" v-for="(item, index) in swipers" :key="index">
                <div class="item" @click="$parent.$parent.gotoDetail(item)">
                    <div class="img-box">
                        <img v-lazy="item.simg + SIGN.BIG" class="img" mode="widthFix" />
                    </div>
                </div>
            </swipe-item>
        </swipe>
    </div>
</template>

<script>

    // 引入组件
    // import { Swipe, SwipeItem } from 'mint-ui';
    import { Swipe, SwipeItem } from "vant";

    export default {
        data() {
            return {
                showIndicators: true,
            }
        },
        props: ["swipers", "options"],
        components: {
            Swipe,
            SwipeItem
        },
        methods: {
            /**
             * 当swiper切换
             * @param {int} index [切换swiper索引]
             */
            onChange(index) {
                this.$emit("onChange", index);
            }
        }
    }
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style rel="stylesheet/less" lang="less" scoped>
    @import './swiper';
</style>