image-content.vue 841 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. <template>
  2. <div class="img-content" v-if="type === '1'">
  3. <div class="item" v-for="(img, i) in props.waters" :key="i">
  4. <van-image
  5. fit="contain"
  6. width="100%"
  7. height="100%"
  8. :src="img"
  9. @click.native="shopImagePreviews(i)"
  10. />
  11. </div>
  12. </div>
  13. </template>
  14. <script setup lang="ts">
  15. import { ChangeTabEmit } from '@/types/views/database.type';
  16. import { showImagePreview } from "vant";
  17. const props = defineProps<{
  18. waters: string[]
  19. type: ChangeTabEmit
  20. }>()
  21. const shopImagePreviews = (index: number) => {
  22. console.log(index);
  23. showImagePreview({
  24. images: props.waters,
  25. startPosition: index,
  26. });
  27. };
  28. </script>
  29. <style scoped lang="scss">
  30. .img-content {
  31. display: grid;
  32. grid-template-columns: repeat(3, 1fr);
  33. grid-gap: 12px;
  34. .item {
  35. border: 1px solid #e1e1e1;
  36. width: 106px;
  37. height: 106px;
  38. }
  39. }
  40. </style>