index.tsx 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import { defineComponent,reactive } from 'vue'
  2. import icon from '../videoDetailItem/images/icon.png'
  3. import classes from './index.module.less'
  4. import detaile from './images/detaile.png'
  5. import music from './images/music.png'
  6. import arrow from './images/arrow.png'
  7. export default defineComponent({
  8. name: 'musicLIstItem',
  9. props: {
  10. detail: {
  11. type: Object,
  12. default: {
  13. albumRow: 0,
  14. auditStatus: '',
  15. chargeType: '',
  16. createBy: 0,
  17. idAndName: '',
  18. musicTagIds: '',
  19. order: '',
  20. page: 0,
  21. platform: '',
  22. rows: 0,
  23. search: '',
  24. sheetRow: 0,
  25. sort: '',
  26. sourceType: '',
  27. state: '',
  28. subjectIds: '',
  29. version: ''
  30. }
  31. }
  32. },
  33. setup(props) {
  34. const state = reactive({
  35. detail:props.detail
  36. })
  37. return () => (
  38. <>
  39. <div>
  40. <div class={classes.itemWrap}>
  41. <div class={classes.left}>
  42. <div class={classes.imgWrap}>
  43. <img src={music} alt="" />
  44. </div>
  45. <div class={classes.textWrap}>
  46. <p>
  47. {state.detail.musicSheetName} <span>作曲: {state.detail.composer}</span>
  48. </p>
  49. <div class={classes.authorInfo}>
  50. <img class={classes.icon} src={ state.detail.addUserAvatar?state.detail.addUserAvatar: icon} alt="" />
  51. <span class={ classes.authorName}>{state.detail.addName}</span>
  52. <div class={classes.tagList}>
  53. <div class={classes.tag}>单簧管</div>
  54. <div class={classes.tag}>圆号</div>
  55. </div>
  56. </div>
  57. </div>
  58. </div>
  59. </div>
  60. <div class={classes.right}>
  61. <div class={classes.touchButton}>点播</div>
  62. <img class={classes.arrow} src={arrow} alt="" />
  63. </div>
  64. </div>
  65. </>
  66. )
  67. }
  68. })