IndexCommonImageItem.vue 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <template>
  2. <ImageBlock2
  3. :src="image"
  4. :title="title"
  5. :desc="desc"
  6. :width="340"
  7. :imageWidth="340"
  8. :imageRadius="15"
  9. backgroundColor="transparent"
  10. >
  11. <template #footer>
  12. <FlexRow justify="space-between" align="center" :padding="[10,0]" :margin="[10,0,0,0]">
  13. <FlexRow align="center" :gap="10">
  14. <Avatar :url="image" :size="40" />
  15. <Text :text="userName" :fontSize="24" color="gray" />
  16. </FlexRow>
  17. <FlexRow align="center" :gap="10">
  18. <Icon icon="favorite" :color="isLike ? 'primary' : 'gray'" :size="30" />
  19. <Text :text="likes" :fontSize="30" :color="isLike ? 'primary' : 'gray'" />
  20. </FlexRow>
  21. </FlexRow>
  22. </template>
  23. </ImageBlock2>
  24. </template>
  25. <script setup lang="ts">
  26. import Text from '@/components/basic/Text.vue';
  27. import FlexRow from '@/components/layout/FlexRow.vue';
  28. import Avatar from '@/components/display/Avatar.vue';
  29. import Icon from '@/components/basic/Icon.vue';
  30. import ImageBlock2 from '@/components/display/block/ImageBlock2.vue';
  31. const props = defineProps<{
  32. image?: string;
  33. title?: string;
  34. desc?: string;
  35. userName?: string;
  36. likes?: number;
  37. isLike?: boolean;
  38. }>()
  39. </script>