simulation-start.vue 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. <template>
  2. <ie-page bg-color="#F6F8FA">
  3. <ie-navbar title="" bg-color="transparent" :placeholder="false" />
  4. <view class="relative">
  5. <ie-image :is-oss="true" src="/study-bg9.png" custom-class="w-full h-[544rpx] absolute top-0 left-0 z-0" />
  6. <ie-image :is-oss="true" src="/study-bg10.png" custom-class="w-312 h-198 absolute top-75 right-32 z-1"
  7. mode="aspectFill" />
  8. <view class="relative z-2 mx-30">
  9. <view class="pt-126 ml-55">
  10. <ie-image :is-oss="true" src="/study-title5.png" customClass="w-264 h-60" />
  11. </view>
  12. <view class="mt-65 bg-white rounded-15 px-40 pt-50 pb-40">
  13. <view class="text-36 text-fore-title text-center font-bold">{{ universityInfo.universityName }}</view>
  14. <view class="mt-26 text-32 text-fore-title text-center font-bold">模考须知</view>
  15. <view class="mt-66">
  16. <view class="flex items-center justify-between">
  17. <text class="text-28 text-fore-light">所考专业</text>
  18. <text class="text-28 text-fore-title">{{ universityInfo.majorName }}</text>
  19. </view>
  20. <view class="mt-40 flex items-center justify-between">
  21. <text class="text-28 text-fore-light">考生类型</text>
  22. <text class="text-28 text-fore-title">
  23. <ie-dict :dict-name="EnumDictName.EXAM_TYPE" :dict-value="userStore.getExamType || '--'" />
  24. </text>
  25. </view>
  26. <view class="mt-40 flex items-center justify-between">
  27. <text class="text-28 text-fore-light">考试类型</text>
  28. <text class="text-28 text-fore-title">{{ subjectInfo.subject }}</text>
  29. </view>
  30. <view class="mt-40 flex items-center justify-between">
  31. <text class="text-28 text-fore-light">考试标准</text>
  32. <text class="text-28 text-fore-title">{{ examTime }}分钟,满分{{ totalScore }}分</text>
  33. </view>
  34. <view class="mt-40 flex items-center justify-between">
  35. <text class="text-28 text-fore-light">考试题型</text>
  36. <text class="text-28 text-fore-title">单选、多选、判断</text>
  37. </view>
  38. </view>
  39. <view class="mt-36 rounded-15 bg-back px-40 py-36 flex">
  40. <view class="flex-1 text-center">
  41. <view class="text-40 text-fore-title font-bold">{{ questions.length }}</view>
  42. <view class="mt-10 text-28 text-fore-light">题量</view>
  43. </view>
  44. <view class="flex-1 text-center">
  45. <view class="text-40 text-fore-title font-bold">{{ totalScore }}</view>
  46. <view class="mt-10 text-28 text-fore-light">总分</view>
  47. </view>
  48. </view>
  49. <ie-button type="primary" custom-class="mt-44" :disabled="!isReady" @click="handleStartTest">开始考试</ie-button>
  50. </view>
  51. </view>
  52. </view>
  53. </ie-page>
  54. </template>
  55. <script lang="ts" setup>
  56. import { useTransferPage } from '@/hooks/useTransferPage';
  57. import { getOpenExaminee, getPaper } from '@/api/modules/study';
  58. import { useUserStore } from '@/store/userStore';
  59. import { EnumDictName } from '@/common/enum';
  60. import { Study } from '@/types';
  61. const { prevData, transferTo } = useTransferPage();
  62. const userStore = useUserStore();
  63. const isReady = ref(false);
  64. const totalScore = ref(0);
  65. const examTime = ref(0);
  66. const questions = ref<Study.Question[]>([]);
  67. const universityInfo = computed(() => {
  68. return prevData.value.universityInfo;
  69. });
  70. const subjectInfo = computed(() => {
  71. return prevData.value.subjectInfo;
  72. });
  73. const handleStartTest = () => {
  74. transferTo('/pagesStudy/pages/simulation-analysis/simulation-analysis')
  75. }
  76. const loadData = async () => {
  77. uni.$ie.showLoading('AI智能出卷中...');
  78. const { data } = await getOpenExaminee({
  79. paperType: 'Simulated',
  80. subjectId: subjectInfo.value.subjectId,
  81. directed: true
  82. });
  83. if (!data) {
  84. uni.$ie.hideLoading();
  85. return;
  86. }
  87. const { examineeId, paperId } = data;
  88. const { data: paperData } = await getPaper({ type: 'Simulated', id: paperId });
  89. if (paperData) {
  90. console.log(paperData)
  91. isReady.value = true;
  92. }
  93. uni.$ie.hideLoading();
  94. }
  95. onLoad(() => {
  96. loadData();
  97. });
  98. </script>
  99. <style lang="scss" scoped></style>