imagePreview.vue 1.7 KB
<template>
    <div>
    <div class='list gap-x-2.5 gap-y-1 flex items-center flex-wrap'>
        <div v-for="(url, index) in imgList" :key="index" @click='toPreview(index)'
            class="flex gap-x-2.5">
            <!-- <img :style="{width: imgSize.width, height: imgSize.height}"  :src="url.trueDownloadUrl" /> -->
            <DocImage :style="{width: imgSize.width, height: imgSize.height}" :src="url.trueDownloadUrl"/>
        </div>
    </div>
        <van-overlay :show='imgShow' @click='imgShow = false'>
            <div class='wrapper'>
                <van-swipe  class='block' :initial-swipe='initSwipe'>
                    <van-swipe-item v-for='image in imgList' :key='image'>
                        <img :src='image.trueDownloadUrl' style='width: 100%;height: 100%'/>
                    </van-swipe-item>
                </van-swipe>
            </div>
        </van-overlay>
    </div>
</template>

<script>
import DocImage from '../docImageUpload/DocImage.vue'

export default {
    name: 'imagePreview',
    components: {
        DocImage
    },
    props: {
        imgList: Array,
        imgSize: {
            default: () => {
                return {
                    width: '.97rem',
                    height: '.97rem'
                }
            }}
    },
    data() {
        return {
            imgShow: false,
            initSwipe: 0
        }
    },
    methods: {
        //图片预览
        toPreview(index) {
            this.initSwipe = index
            this.imgShow = true
        },
    }
}
</script>

<style scoped lang='less'>
.wrapper {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 100%;
    .block {
        width: 100%;
    }
}
</style>