index.tsx 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. import { Popup } from "@varlet/ui";
  2. import { defineComponent, ref } from "vue";
  3. import styles from "./index.module.less";
  4. import state from "/src/state";
  5. import icon1 from "../icons/1.png";
  6. import { storeData } from "/src/store";
  7. import { Progress } from "vant";
  8. import { evaluatingData } from "/src/view/evaluating";
  9. import icons from "../icons/index.json";
  10. import imgs from "./index.json";
  11. import iconBadge from "./img/icon-badge.svg";
  12. export default defineComponent({
  13. name: "evaluatResult",
  14. emits: ["close"],
  15. setup(props, { emit }) {
  16. return () => (
  17. <div class={styles.evaluatResult}>
  18. <div class={styles.closeBtn} onClick={() => emit("close")}>
  19. <img src={icons["arrow-left-background"]} />
  20. </div>
  21. <div class={styles.headerButton}>
  22. <div class={styles.headBtn} onClick={() => emit("close", "update")}>
  23. 保存演奏
  24. </div>
  25. <div class={styles.headBtn} style={{ display: storeData.platformType === "STUDENT" ? "block" : "" }} onClick={() => emit("close", "share")}>
  26. 分享
  27. </div>
  28. </div>
  29. <div class={styles.fraction}>
  30. <img class={styles.bg} src={imgs.bg} />
  31. <div class={styles.top}>
  32. {evaluatingData.resultData.score > 79 && <img style={{}} class={styles.badge} src={iconBadge} />}
  33. <div class={styles.text}>
  34. <div>
  35. <span class={styles.num}>{evaluatingData.resultData.score}</span>
  36. </div>
  37. <div style={{marginLeft: '6px'}}>{evaluatingData.resultData.clxmome}</div>
  38. </div>
  39. <img class={styles.rightBadge} src={evaluatingData.resultData.clxImg} />
  40. </div>
  41. {state.isPercussion ? (
  42. <div class={styles.percussion}>
  43. <img class={styles.leftIcon} src={evaluatingData.resultData.img || icon1} />
  44. <div class={styles.scoreDes}>
  45. <span class={styles.scoreNum}>{evaluatingData.resultData.score}</span>
  46. <span style={{ marginLeft: "8px" }}>{evaluatingData.resultData.mome}</span>
  47. </div>
  48. </div>
  49. ) : (
  50. <div class={styles.detail}>
  51. <div class={styles.progressitem}>
  52. <div class={styles.intonation}>音准</div>
  53. <span>{evaluatingData.resultData.intonation}分</span>
  54. </div>
  55. <div class={styles.progressitem}>
  56. <div class={styles.cadence}>节奏</div>
  57. <span>{evaluatingData.resultData.cadence}分</span>
  58. </div>
  59. <div class={styles.progressitem}>
  60. <div class={styles.integrity}>完成度</div>
  61. <span>{evaluatingData.resultData.integrity}分</span>
  62. </div>
  63. </div>
  64. )}
  65. <div class={styles.tips}>{evaluatingData.resultData.clxtip}</div>
  66. <div class={styles.ctrls}>
  67. <img src={imgs.btn1} class={styles.ctrlsBtn} onClick={() => emit("close", "practise")} />
  68. <img src={imgs.btn2} class={styles.ctrlsBtn} onClick={() => emit("close", "tryagain")} />
  69. <img src={imgs.btn3} class={styles.ctrlsBtn} onClick={() => emit("close", "look")} />
  70. </div>
  71. </div>
  72. </div>
  73. );
  74. },
  75. });