From 34c98099b187bef54aa81fc3fa680fe8099eb3ad Mon Sep 17 00:00:00 2001
From: ZhangXianQiang <1135831638@qq.com>
Date: 星期二, 02 七月 2024 17:55:41 +0800
Subject: [PATCH] feat:资源文件列表接口
---
src/views/exam/index.vue | 54 +++++++++++++++++++++++++++++++++++++-----------------
1 files changed, 37 insertions(+), 17 deletions(-)
diff --git a/src/views/exam/index.vue b/src/views/exam/index.vue
index ce873c5..da8d53f 100644
--- a/src/views/exam/index.vue
+++ b/src/views/exam/index.vue
@@ -40,7 +40,7 @@
</div>
<div class="submit-wrapper">
- <el-button type="primary" class="submit-button" @click="submitExam">鎻愪氦璇曞嵎</el-button>
+ <el-button type="primary" class="submit-button" @click="submitExamHandle">鎻愪氦璇曞嵎</el-button>
</div>
</div>
@@ -51,7 +51,7 @@
<div class="wrapper h-full flex flex-col">
<div class="title-wrapper w-full flex mb-5">
<div class="title text-xl font-semibold ">{{ examType[currentType] }} ({{
- examStore.getActiveQuestion.score }}鍒�)
+ examStore.getActiveQuestion.questionScore }}鍒�)
</div>
</div>
@@ -113,16 +113,13 @@
</el-dialog>
<!-- 鑰冭瘯鏃堕棿寮圭獥 -->
- <el-dialog
- v-model="timeDialog"
- align-center width="500"
- :close-on-click-modal="false"
- :close-on-press-escape="false"
- :show-close="false"
- >
+ <el-dialog v-model="timeDialog" align-center width="500" :close-on-click-modal="false"
+ :close-on-press-escape="false" :show-close="false">
<div class="dialog-container flex flex-col items-center">
<div class="icon-container">
- <el-icon :size="50" color="#3680fa"><Timer /></el-icon>
+ <el-icon :size="50" color="#3680fa">
+ <Timer />
+ </el-icon>
</div>
<div class="dialog-info">
鑰冭瘯缁撴潫锛岀郴缁熻嚜鍔ㄦ敹鍗蜂腑.......
@@ -135,7 +132,7 @@
<script setup>
import { ref, watchEffect } from 'vue';
import { storeToRefs } from 'pinia';
-import { Close,Timer } from '@element-plus/icons-vue';
+import { Close, Timer } 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';
@@ -144,9 +141,16 @@
import AnswerSingle from './components/answer-main/answer-single/index.vue';
import AnswerMultiple from './components/answer-main/answer-multiple/index.vue';
import AnswerAudio from './components/answer-main/answer-audio/index.vue';
+import AnswerFill from './components/answer-main/answer-fill/index.vue';
+import AnswerDetermine from './components/answer-main/answer-determine/index.vue';
+import AnswerShort from './components/answer-main/answer-short/index.vue';
+import AnswerCount from './components/answer-main/answer-count/index.vue';
import { useExamStore } from '@/store/index.js';
import { useRouter } from 'vue-router';
+
+import { submitExam } from '@/api/modules/exam.js';
+
const router = useRouter();
@@ -156,7 +160,11 @@
const typeComponent = {
1: AnswerSingle,
2: AnswerMultiple,
- 3: AnswerAudio,
+ 3: AnswerDetermine,
+ 4: AnswerFill,
+ 5: AnswerShort,
+ 6: AnswerAudio,
+ 7: AnswerCount,
};
const quitDialog = ref(false);
@@ -220,7 +228,7 @@
};
// 浜ゅ嵎
-const submitExam = () => {
+const submitExamHandle = () => {
submitDialog.value = true;
};
@@ -231,22 +239,34 @@
const resetAllDialog = () => {
quitDialog.value = false;
submitDialog.value = false;
-}
+};
// 鏃堕棿缁撴潫
const timeOut = () => {
resetAllDialog();
timeDialog.value = true;
+ const temp = {
+ ...examInfo.value,
+ titleList: examDetail.value
+ };
+ submitExam(temp).then(res => {
+ returnBack();
+ }).catch(() => {
+ returnBack();
+ });
+};
+
+const returnBack = () => {
setTimeout(() => {
router.back();
- },2000);
+ }, 2000);
};
watchEffect(() => {
let progress = 0;
examDetail.value.forEach(item => {
item.questionList.forEach(question => {
- if (question.correct) {
+ if (question.answer || (Array.isArray(question.answerList) && question.answerList.length)) {
progress += 1;
}
});
@@ -292,7 +312,7 @@
}
.answer-left {
- width: 340px;
+ width: 370px;
}
.submit-button,
--
Gitblit v1.8.0