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 | 32 ++++++++++++++++++++++++--------
1 files changed, 24 insertions(+), 8 deletions(-)
diff --git a/src/views/exam/index.vue b/src/views/exam/index.vue
index 62b56d5..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,7 +78,7 @@
</div>
- <!-- 鎻愮ず寮圭獥 -->
+ <!-- 閫�鍑鸿�冭瘯鎻愮ず寮圭獥 -->
<el-dialog v-model="dialogVisible" title="娉ㄦ剰" width="500">
<div class="dialog-container">
<p>璇风‘璁ゆ槸鍚﹂��鍑哄綋鍓嶈�冭瘯</p>
@@ -97,26 +97,30 @@
</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, examDetail } = storeToRefs(examStore);
+const { currentType, currentIndex, examDetail, examType } = storeToRefs(examStore);
const typeComponent = {
1: AnswerSingle,
2: AnswerMultiple,
+ 3: AnswerAudio,
};
const dialogVisible = ref(false);
@@ -144,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 {
@@ -185,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