paper.vue 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. <template>
  2. <mx-paper>
  3. <template #bottom>
  4. <mx-paper-progress/>
  5. <mx-question-statistic class="!items-center"/>
  6. <mx-paper-completion/>
  7. </template>
  8. </mx-paper>
  9. </template>
  10. <script setup>
  11. import {ref, onMounted} from 'vue';
  12. import mxConst from "@/common/mxConst";
  13. import {openExamineePaper} from "@/api/webApi/studentEvaluating.js"
  14. import {useTransfer} from "@/hooks/useTransfer";
  15. import {useProvidePaperService} from "@/components/mx-paper/usePaperInjection";
  16. import {useProvideQuestionService} from "@/components/mx-question/useQuestionInjection";
  17. import {useProvidePaperNavigationService} from "@/components/mx-paper/usePaperNavigationServiceInjection";
  18. import MxQuestionStatistic from "@/components/mx-question/components/mx-question-statistic.vue";
  19. import MxPaperCompletion from "@/components/mx-paper/components/mx-paper-completion.vue";
  20. import MxPaperProgress from "@/components/mx-paper/components/mx-paper-progress.vue";
  21. const {prevData, transferTo} = useTransfer()
  22. const paperData = ref({name: '心理健康测评'})
  23. const paperService = useProvidePaperService(paperData)
  24. const questionService = useProvideQuestionService(paperService, 20, false)
  25. useProvidePaperNavigationService(paperService, questionService)
  26. onMounted(async () => {
  27. const payload = {
  28. ...prevData.value,
  29. examineeType: mxConst.enum.mentalHealthTestType
  30. }
  31. uni.showLoading()
  32. try {
  33. const res = await openExamineePaper(payload)
  34. paperData.value = res.data
  35. } finally {
  36. uni.hideLoading()
  37. }
  38. })
  39. paperService.onAnswerComplete(async () => {
  40. // 心理测评不需要阅卷过程,直接进入报告页
  41. const url = '/pages/test-center/mental-health/report'
  42. const params = {
  43. testType: prevData.value.testType,
  44. examineeId: paperData.value.examineeId
  45. }
  46. transferTo({url, params, type: 'redirect'})
  47. })
  48. </script>
  49. <style>
  50. </style>