From f763e0bc88efa373ea0cedfdb1abbdc85046097b Mon Sep 17 00:00:00 2001
From: ZhangXianQiang <1135831638@qq.com>
Date: 星期三, 19 六月 2024 15:25:25 +0800
Subject: [PATCH] feat:考试音频题

---
 src/views/exam/index.vue |   37 ++++++++++++++++++++++++++-----------
 1 files changed, 26 insertions(+), 11 deletions(-)

diff --git a/src/views/exam/index.vue b/src/views/exam/index.vue
index 61ee1a9..090e41e 100644
--- a/src/views/exam/index.vue
+++ b/src/views/exam/index.vue
@@ -50,7 +50,7 @@
           <div class="answer-wrapper answer-right grow shadow-xl p-4">
             <div class="wrapper h-full flex flex-col">
               <div class="title-wrapper w-full flex mb-5">
-                <div class="title text-xl font-semibold ">鍗曢�夐 (3鍒�)</div>
+                <div class="title text-xl font-semibold ">{{ examType[currentType] }} ({{ examStore.getActiveQuestion.score}}鍒�)</div>
               </div>
 
               <div class="main-wrapper w-full grow relative my-5">
@@ -78,11 +78,11 @@
     </div>
 
 
-    <!-- 鎻愮ず寮圭獥 -->
+    <!-- 閫�鍑鸿�冭瘯鎻愮ず寮圭獥 -->
     <el-dialog v-model="dialogVisible" title="娉ㄦ剰" width="500">
       <div class="dialog-container">
         <p>璇风‘璁ゆ槸鍚﹂��鍑哄綋鍓嶈�冭瘯</p>
-        <p>褰撳墠鑰冭瘯璇曞嵎浼氳嚜鍔ㄦ彁浜�,鍚庣画鏃犳硶缁х画浣滅瓟</p>
+        <p>褰撳墠鑰冭瘯璇曞嵎浼氳嚜鍔ㄦ彁浜�,鍚庣画灏嗘棤娉曠户缁綔绛�</p>
       </div>
       <template #footer>
         <div class="dialog-footer">
@@ -97,28 +97,31 @@
 </template>
 
 <script setup>
-import { ref } from 'vue';
+import { ref, watchEffect } from 'vue';
 import { storeToRefs } from 'pinia';
 import { Close } from '@element-plus/icons-vue';
 import AnswerTag from './components/answer-tag/index.vue';
 import AnswerProgress from './components/answer-progress/index.vue';
 import AnswerSheet from './components/answer-sheet/index.vue';
+import AnswerTime from './components/answer-time/index.vue';
+
 import AnswerSingle from './components/answer-main/answer-single/index.vue';
 import AnswerMultiple from './components/answer-main/answer-multiple/index.vue';
-import AnswerTime from './components/answer-time/index.vue';
+import AnswerAudio from './components/answer-main/answer-audio/index.vue';
+
 import { useExamStore } from '@/store/index.js';
 import { useRouter } from 'vue-router';
 
 const router = useRouter();
 
 const examStore = useExamStore();
-const { currentType, currentIndex, activeQuestion, examDetail } = storeToRefs(examStore);
+const { currentType, currentIndex, examDetail, examType } = storeToRefs(examStore);
 
 const typeComponent = {
   1: AnswerSingle,
   2: AnswerMultiple,
+  3: AnswerAudio,
 };
-examStore.setActiveQuestion(examDetail.value[0].questionList[0]);
 
 const dialogVisible = ref(false);
 
@@ -145,17 +148,17 @@
   if (typeQuestion) {
     if (currentIndex.value >= typeQuestion.questionList.length) {
       tempIndex++;
-      if(examDetail.value[tempIndex]) {
+      if (examDetail.value[tempIndex]) {
         currentType.value = examDetail.value[tempIndex].questionType;
         currentIndex.value = 0;
       } else {
         currentType.value = typeQuestion.questionType;
         currentIndex.value = typeQuestion.questionList.length - 1;
       }
-      
+
     } else if (currentIndex.value < 0) {
       tempIndex--;
-      if(examDetail.value[tempIndex]) {
+      if (examDetail.value[tempIndex]) {
         currentType.value = examDetail.value[tempIndex].questionType;
         currentIndex.value = examDetail.value[tempIndex].questionList.length - 1;
       } else {
@@ -163,7 +166,7 @@
         currentIndex.value = 0;
       }
     }
-    findQuestion(currentType.value, currentIndex.value);
+    // findQuestion(currentType.value, currentIndex.value);
   }
 
 };
@@ -186,6 +189,18 @@
   dialogVisible.value = false;
   router.back();
 };
+
+watchEffect(() => {
+  let progress = 0;
+  examDetail.value.forEach(item => {
+    item.questionList.forEach(question => {
+      if (question.correct) {
+        progress += 1;
+      }
+    });
+  });
+  examStore.setProgress(progress);
+});
 </script>
 
 <style lang="scss" scoped>

--
Gitblit v1.8.0