item.tsx 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. import { Image } from 'vant'
  2. import { defineComponent } from 'vue'
  3. import { useRouter } from 'vue-router'
  4. import Footer from './footer'
  5. import styles from './item.module.less'
  6. export default defineComponent({
  7. name: 'AlbumItem',
  8. props: {
  9. data: {
  10. type: Object,
  11. default: {}
  12. }
  13. },
  14. setup({ data }) {
  15. const router = useRouter()
  16. return () => (
  17. <div
  18. class={styles.album}
  19. onClick={() => router.push('/music-album-detail/' + data.id)}
  20. >
  21. <Image class={styles.img} src={data.albumCoverUrl} />
  22. {data.paymentType && (
  23. <span class={styles.albumType}>
  24. {data.paymentType === 'FREE' && '免费'}
  25. {data.paymentType === 'CHARGE' && '付费'}
  26. </span>
  27. )}
  28. <div class={styles.content}>
  29. <h4 class="van-ellipsis">{data.albumName}</h4>
  30. <p class="van-multi-ellipsis--l3">{data.albumDesc}</p>
  31. <Footer
  32. musicSheetCount={data.musicSheetCount}
  33. albumFavoriteCount={data.albumFavoriteCount}
  34. />
  35. </div>
  36. </div>
  37. )
  38. }
  39. })