index.tsx 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import { Cell, CellGroup, Image, Tag } from 'vant'
  2. import { defineComponent, onMounted, reactive, ref } from 'vue'
  3. import { useRoute, useRouter } from 'vue-router'
  4. import styles from './index.module.less'
  5. import iconTag from '../images/icon-tag.png'
  6. import request from '@/helpers/request'
  7. export default defineComponent({
  8. name: 'unit-detail',
  9. setup() {
  10. const route = useRoute()
  11. const router = useRouter()
  12. const state = reactive({
  13. id: route.query.id,
  14. name: '',
  15. courseTypeCode: '',
  16. visiableNotice: false,
  17. list: [] as any
  18. })
  19. const getDetails = async () => {
  20. try {
  21. const { data } = await request.post('/api-student/unitExamination/queryKnowledgePoint', {
  22. requestType: 'form',
  23. data: {
  24. unitExaminationId: state.id
  25. }
  26. })
  27. state.list = data.lists || []
  28. state.name = data.unitExaminationName
  29. state.courseTypeCode = data.courseTypeCode
  30. console.log(data)
  31. } catch {
  32. //
  33. }
  34. }
  35. const onDetail = (item: any) => {
  36. router.push({
  37. path: '/practice-mode',
  38. query: {
  39. examId: state.id, // 单元测试编号
  40. id: item.id,
  41. courseTypeCode: state.courseTypeCode,
  42. name: state.name
  43. }
  44. })
  45. }
  46. onMounted(() => {
  47. getDetails()
  48. })
  49. return () => (
  50. <div class={styles.unitDetail}>
  51. <Cell center class={styles.unitSection}>
  52. {{
  53. title: () => (
  54. <div class={styles.unitTitle}>
  55. {state.name}
  56. {/* <Tag type="primary">长笛单技课</Tag> */}
  57. </div>
  58. ),
  59. label: () => (
  60. <div class={styles.examSite}>
  61. <p>1、在练习模式中可以对本次测验相关考点进行反复练习;</p>
  62. <p>2、为了测验达到理想成绩,充分练习后再进行正式测验吧!</p>
  63. </div>
  64. )
  65. }}
  66. </Cell>
  67. <div class={styles.cellGroup}>
  68. <div class={styles.cellTitle}>
  69. <i></i>考点
  70. </div>
  71. {state.list.map((item: any) => (
  72. <Cell center isLink titleClass={['van-ellipsis']} onClick={() => onDetail(item)}>
  73. {{
  74. icon: () => <Image src={iconTag} class={styles.img} />,
  75. title: () => <>{item.name}</>,
  76. value: () => <span>去练习</span>
  77. }}
  78. </Cell>
  79. ))}
  80. </div>
  81. </div>
  82. )
  83. }
  84. })