detail-item.tsx 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. import { defineComponent, reactive, ref } from 'vue'
  2. import styles from './detail-item.module.less'
  3. import msgIcon from '@/school/images/msg-icon.png'
  4. import sendmsgIcon from '@/school/images/sendmsg-icon.png'
  5. import phoneIcon from '@/school/images/phone-icon.png'
  6. import { Icon, ActionSheet } from 'vant'
  7. import Image1 from '@/school/images/Image1.png'
  8. import Image2 from '@/school/images/Image2.png'
  9. import Image3 from '@/school/images/Image3.png'
  10. import Image4 from '@/school/images/Image4.png'
  11. import Image5 from '@/school/images/Image5.png'
  12. const scoreInfos: any = {
  13. 1: {
  14. img: Image1,
  15. tips: '你的演奏不太好,音准和完整性还需加强,再练一练吧~',
  16. mome: '敢于尝试'
  17. },
  18. 2: {
  19. img: Image2,
  20. tips: '你的演奏还不熟练,音准和完整性还需加强,加紧训练才能有好成绩哦~',
  21. mome: '还要加油哦~'
  22. },
  23. 3: {
  24. img: Image3,
  25. tips: '你的演奏还不流畅,音准和节奏还需加强,科学的练习才能更完美哦~',
  26. mome: '突破自我'
  27. },
  28. 4: {
  29. img: Image4,
  30. tips: '你的演奏还不错,继续加油吧,加强音准,离完美就差一步啦~',
  31. mome: '崭露头角'
  32. },
  33. 5: {
  34. img: Image5,
  35. tips: '你的演奏非常不错,音准的把握和节奏稍有瑕疵,完整性把握的很好~',
  36. mome: '你很棒'
  37. }
  38. }
  39. export default defineComponent({
  40. props: ['item'],
  41. name: 'detail-item',
  42. setup(props) {
  43. const getLeveByScoreId = (score?: string | number) => {
  44. if (!score && typeof score !== 'number') {
  45. return {}
  46. }
  47. let leve: any = 1
  48. if (score > 20 && score <= 40) {
  49. leve = 2
  50. } else if (score > 40 && score <= 60) {
  51. leve = 3
  52. } else if (score > 60 && score <= 80) {
  53. leve = 4
  54. } else if (score > 80) {
  55. leve = 5
  56. }
  57. return leve
  58. }
  59. const gotoDetail = () => {
  60. window.location.href =
  61. window.location.origin + `/orchestra-music-score/colexiu-report.html?id=${props.item.id}`
  62. // window.open()
  63. }
  64. return () => (
  65. <>
  66. <div>
  67. <div class={styles.itemWrap} onClick={gotoDetail}>
  68. <div class={styles.itemTop}>
  69. <div class={styles.itemTopLeft}>
  70. <p class={styles.itemTopMain}>{props.item.musicSheetName}</p>
  71. <p class={styles.itemTopSub}>{props.item.createTime}</p>
  72. </div>
  73. <div class={styles.itemTopRight}>
  74. <div class={styles.imgWrap}>
  75. <img src={scoreInfos[getLeveByScoreId(props.item.score)].img} alt="" />
  76. </div>
  77. <Icon name="arrow" class={styles.imgIcon} />
  78. </div>
  79. </div>
  80. <div class={styles.itemBottom}>
  81. <div class={styles.itemBottomDot}>
  82. <p class={styles.dotMain} style={{ color: '#F67146' }}>
  83. {props.item.score} <span>分</span>{' '}
  84. </p>
  85. <p class={styles.dotSub}> 综合得分</p>
  86. </div>
  87. <div class={styles.itemBottomDot}>
  88. <p class={styles.dotMain}>
  89. {props.item.intonation}
  90. <span>分</span>{' '}
  91. </p>
  92. <p class={styles.dotSub}>音准 </p>
  93. </div>
  94. <div class={styles.itemBottomDot}>
  95. <p class={styles.dotMain}>
  96. {props.item.cadence} <span>分</span>{' '}
  97. </p>
  98. <p class={styles.dotSub}>节奏 </p>
  99. </div>
  100. <div class={styles.itemBottomDot}>
  101. <p class={styles.dotMain}>
  102. {props.item.integrity} <span>分</span>{' '}
  103. </p>
  104. <p class={styles.dotSub}>完成度 </p>
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. </>
  110. )
  111. }
  112. })