<template>
    <div class="watch-box" v-show="show">
        <div class="pos-r dis-f al-item mg-t-60">
            <div class="s-w-100">
                <el-carousel arrow="never" height="600px" :autoplay="false" indicator-position="none" ref="carousel">
                    <el-carousel-item v-for="(item, i) in list" :key="i">
                        <div class="dis-f jus-x al-item" v-if="item">
                            <div class="img-box dis-f jus-x" v-if="item.thumbnail">
                                <img :src="item && item.url || item['imageurl'] || item['image']" class="img" alt="">
                            </div>
                            <div class="img-box dis-f jus-x" style="width:600px" v-if="!item.thumbnail">
                                <source :src="item && item.url || item['videourl']" class="img" style="width:600px"
                                    type="video/mp4">
                            </div>
                        </div>
                    </el-carousel-item>
                </el-carousel>
            </div>
            <img src="../../assets/img/detail/imageArrowIcon.svg" class="image-arrow-icon left-arrow" @click="next" alt="">
            <img src="../../assets/img/detail/imageArrowIcon.svg" class="image-arrow-icon right-arrow" @click="prev" alt="">
        </div>
        <div class="tab-text">
            {{ `${imageTab + 1}/${list.length}` }}
        </div>
        <div class="dis-f jus-x al-item">
            <div class="list-img-box dis-f al-item jus-x">
                <div v-for="(item, i) in list" :key="i" @click="watchSet(i)" class="pos-r">
                    <div class="voide" :class="{ 'select-box': imageTab === i }" v-if="!item.thumbnail">
                        <div class="icon-box dis-f jus-x al-item" :class="{'bor-r-8':imageTab === i}">
                            <img src="../../assets/img/detail/videoStop.svg" class="icon" alt="">
                        </div>
                    </div>
                    <div class="img-box-s dis-f jus-x"
                        :class="[{ 'select-box': imageTab === i&&item.thumbnail }, { 'voide-img': !item.thumbnail }]">
                        <img :src="item.thumbnail || item.image" alt="" class="img-s" style="object-fit: cover;">
                    </div>
                </div>
            </div>
        </div>
        <img src="../../assets/img/detail/imageClose.svg" @click="close" class="close-img" alt="">
    </div>
</template>
  
<script setup>
import { reactive, onMounted, ref, defineProps, watchEffect } from 'vue'

const props = defineProps({
    //url:展示图   thumbnail:缩略图
    // list:[{url:'',thumbnail:''}]
    list: {
        type: Array,
        default: function () {
            return []
        }
    },
    close: {
        type: Function
    },
    show: {
        type: Boolean,
        default: false
    }
})

let show = props.show
let list = ref([])
let close = props.close

let carousel = ref(null)
let imageTab = ref(0)
//上一张
let prev = () => {
    if (imageTab.value === list.value.length - 1) return
    imageTab.value++
    carousel.value.prev()
}

//下一张
let next = () => {
    if (imageTab.value <= 0) return
    imageTab.value--
    carousel.value.next()
}

//点击预览图
let watchSet = (num) => {
    imageTab.value = num
    carousel.value.setActiveItem(num)
}

watchEffect(() => {
    show = props.show
    list.value = props.list
    if (imageTab.value > 0) carousel.value.setActiveItem(imageTab.value)

})
</script>
<style scoped>
img {
    object-fit: contain;
}

.dis-f {
    display: flex;
}

.jus-x {
    justify-content: center;
}

.al-item {
    align-items: center;
}

.pos-r {
    position: relative;
}

.body-maxWidth {
    width: 1200px;
    min-width: 1200px;
}

.s-w-100 {
    width: 100%;
}

.jus-bet {
    justify-content: space-between;
}

.close-img {
    width: 20px;
    height: 20px;
    position: absolute;
    right: 20px;
    top: 20px;
    cursor: pointer;
}

.right-arrow {
    right: 30px;
    z-index: 66;
}

.left-arrow {
    left: 30px;
    z-index: 66;
    transform: rotate(180deg);
}

.image-arrow-icon {
    width: 18px;
    height: 30px;
    position: absolute;
    cursor: pointer;
}

.mg-t-60 {
    margin-top: 60px;
}

.select-box {
    border: 1px solid #50e3c2 !important;
}

.watch-box {
    width: 100%;
    height: 100%;
    background: #4c4c4c;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 999;

    .tab-text {
        font-family: 'PingFangSC-Regular', 'PingFang SC', sans-serif;
        font-weight: 400;
        font-style: normal;
        font-size: 14px;
        color: #FFFFFF;
        text-align: center;
        padding: 20px 0;
    }

    .list-img-box {
        overflow-x: scroll;
        width: 1200px;
        height: 100px;

        .img-box-s {
            height: 62px;
            border: 1px solid transparent;
            border-radius: 8px;
            margin-left: 5px;
            cursor: pointer;
            object-fit: cover;

            .img-s {
                height: 60px;
                border-radius: 8px;
            }
        }

        .voide-img {
            width: 60px;
            height: 60px;
            border: 1px solid transparent;
            margin-left: 5px;
            border-radius: 8px;
            cursor: pointer;
            overflow: hidden;
        }

        .voide {
            width: 60px;
            height: 60px;
            border: 1px solid transparent;
            margin-left: 5px;
            border-radius: 8px;
            cursor: pointer;
            position: absolute;
            top: 0;
            left: 0;
            .bor-r-8{
                border-radius:8px !important;
            }

            .icon-box {
                width: 58px;
                height: 58px;
                background: inherit;
                background-color: rgba(51, 51, 51, 0.733333333333333);
                border: none;
                border-radius: 6px;

                .icon {
                    width: 18px;
                    height: 18px;
                }
            }
        }
    }

    .img-box {
        width: 1200px;
        height: 600px;
        border-radius: 10px;
        overflow: hidden;

        .img {
            height: 600px;
        }
    }
}

::-webkit-scrollbar {
    display: none;
}</style>
  