<script setup> import { showImagePreview } from 'vant'; const props = defineProps({ src: { type: String, default: '' }, preview: { type: Boolean, default: true }, // 用于控制图片尺寸 sizes: { type: Array, default: () => [320, 640, 768, 1024] }, // 用于控制图片格式 format: { type: String, default: 'webp' }, // 用于控制图片质量 quality: { type: Number, default: 80 } }) const showImage = () => { if (props.preview) { showImagePreview([props.src]); } } </script> <template> <nuxt-img loading="lazy" v-bind="{ ...props, ...$attrs }" style="object-fit: cover" @click="showImage" :src="src" :modifiers="{ format: 'webp' }" :sizes="sizes" :format="format" :quality="quality" placeholder /> </template> <style scoped> :deep(img) { width: 100%; height: 100%; } </style>