vue3+vant4实现文件上传+图片/视频预览(单纯记录)

    <van-field name="uploader" readonly label="照片/视频">
                        </van-field>
                        <!-- 图片列表 -->
                        <div class="images-list">
                            <div class="image-list" v-if="imagesRef.length > 0">
                                <div v-for="(image, index) in imagesRef" :key="index" @click="previewImage(image)">
                                    <img :src="image.url" alt="Image"
                                        style="width: 100px; height: 100px; object-fit: cover;">
                                </div>
                            </div>

                            <!-- 视频列表 -->
                            <div class="image-list" v-if="videosRef.length > 0">
                                <div v-for="(video, index) in videosRef" :key="index" @click="previewVideo(video)">
                                    <video :src="video.url" controls
                                        style="width: 100px; height: 100px; object-fit: cover;">
                                        <!-- <source :src="video.url" type="video/mp4"> -->
                                    </video>
                                </div>
                            </div>
                        </div>

                        <!-- 图片预览 -->
                        <van-popup v-model:show="previewImageVisible" position="center"
                            :style="{ width: '100%', height: '60%' }">
                            <van-image style="width: 100%; height: 100%;" :src="previewImageUrl" fit="contain" />
                        </van-popup>

                        <!-- 视频预览 -->
                        <van-popup v-model:show="previewVideoVisible" position="center"
                            :style="{ width: '100%', height: '60%' }">
                            <van-video style="width: 100%; height: 100%;" :src="previewVideoUrl" />
                        </van-popup>

// 图片预览相关数据
const previewImageUrl = ref<string>('');
const previewImageVisible = ref<boolean>(false);

// 视频预览相关数据
const previewVideoUrl = ref<string>('');
const previewVideoVisible = ref<boolean>(false);
// 图片预览
const previewImage = (image: any) => {
    console.log('image', image, image.value);

    previewImageUrl.value = image.url;;
    previewImageVisible.value = true;
};

// 视频预览
const previewVideo = (video: any) => {
    console.log('预览video', video, video.value);

    previewVideoUrl.value = video.url;
    previewVideoVisible.value = true;
};

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值