index.tsx 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import { Button, Grid, GridItem, Icon, Tag } from 'vant'
  2. import { defineComponent } from 'vue'
  3. import styles from './index.module.less'
  4. import iconBell from '@/views/unit-test/images/icon-bell.png'
  5. import iconTimer from '@/views/unit-test/images/icon-timer.png'
  6. import { courseEmnu } from '@/constant'
  7. export default defineComponent({
  8. name: 'notice-start',
  9. props: {
  10. data: {
  11. type: Object,
  12. default: () => {}
  13. }
  14. },
  15. emits: ['close', 'confirm'],
  16. setup(props, { emit }) {
  17. return () => (
  18. <div class={styles.noticeStart}>
  19. <div class={styles.dialogTitle}>
  20. <i></i>
  21. 测验须知
  22. </div>
  23. <div class={styles.noticeContainer}>
  24. <div class={styles.unitContainer}>
  25. <div class={styles.unitTitle}>
  26. <span class={[styles.name, 'van-ellipsis']}>{props.data.name}</span>
  27. <Tag type="primary">{courseEmnu[props.data.courseTypeCode]}</Tag>
  28. </div>
  29. <Grid border={false} columnNum={3} class={styles.gridScore}>
  30. <GridItem>
  31. <p class={styles.title}>{props.data.totalScore}</p>
  32. <p class={styles.name}>总分</p>
  33. </GridItem>
  34. <GridItem>
  35. <p
  36. class={[styles.title]}
  37. style={{
  38. color: '#F67146'
  39. }}
  40. >
  41. {props.data.passScore}
  42. </p>
  43. <p class={styles.name}>合格分</p>
  44. </GridItem>
  45. <GridItem>
  46. <p class={styles.title}>{props.data.questionNum}</p>
  47. <p class={styles.name}>题目数量</p>
  48. </GridItem>
  49. </Grid>
  50. <div class={[styles.unitTimer, 'van-hairline--top']}>
  51. <Icon name={iconTimer} />
  52. <span>测验时长:{props.data.timeMinutes}分钟</span>
  53. </div>
  54. </div>
  55. <div class={styles.reminder}>
  56. <div class={styles.rTitle}>
  57. <Icon name={iconBell} class={styles.iconBell} />
  58. <span>温馨提示:</span>
  59. </div>
  60. <p class={styles.rContent}>
  61. 1、单元测验仅可进行一次,请通过练习模式充分练习后再进行测试,以保障测验分数准确;
  62. <br />
  63. 2、点击开始测验后开始测验计时,到达测验时长后自动完成;
  64. <br />
  65. 3、开始测验后若中途退出,时长依然计算; <br /> 4、准备好后开始测验吧!
  66. </p>
  67. </div>
  68. </div>
  69. <div class={['van-hairline--top van-dialog__footer', styles.btns]}>
  70. <Button onClick={() => emit('close')} class={['van-dialog__cancel']}>
  71. 再等等
  72. </Button>
  73. <Button
  74. onClick={() => emit('confirm')}
  75. class={['van-dialog__confirm van-hairline--left']}
  76. >
  77. 开始测验
  78. </Button>
  79. </div>
  80. </div>
  81. )
  82. }
  83. })