From 98f494cf633e3acf5c20f3e9de0d708f2a6c2045 Mon Sep 17 00:00:00 2001 From: ZhangXianQiang <1135831638@qq.com> Date: 星期五, 05 七月 2024 09:39:59 +0800 Subject: [PATCH] feat:视频浏览 --- src/store/modules/exam.js | 212 +++++++++++++++++------------------------------------ 1 files changed, 68 insertions(+), 144 deletions(-) diff --git a/src/store/modules/exam.js b/src/store/modules/exam.js index f436304..854eb4b 100644 --- a/src/store/modules/exam.js +++ b/src/store/modules/exam.js @@ -1,153 +1,47 @@ -import { ref,computed } from 'vue'; +import { ref, computed } from 'vue'; import { defineStore } from 'pinia'; export const useExamStore = defineStore('exam', () => { - const examInfo = ref({ - examId: 1, - examName: '鑰冭瘯鍚嶇О', - examType: '鑰冭瘯绫诲瀷', - examStatus: '鑰冭瘯鐘舵��', - examStartTime: '2021-01-01', - examEndTime: '2021-01-01', - }); - + const examInfo = ref(null); + const examDetail = ref([]); + const examType = ref({ 1: '鍗曢�夐', - 2: '澶氶�夐' + 2: '澶氶�夐', + 3: '鍒ゆ柇棰�', + 4: '濉┖棰�', + 5: '绠�绛旈', + 6: '璇煶棰�', + 7: '璁$畻棰�', + 8: '鍒嗘瀽棰�', }); const currentType = ref(1); const currentIndex = ref(0); - const examDetail = ref([ - { - questionType: 1, - questionList: [ - { - "id": null, - "questionType": 1, - "gradeLevel": null, - "subjectId": 2, - "title": "1+1=锛�123", - "items": [ - { - "prefix": "A", - "content": "1" - }, - { - "prefix": "B", - "content": "2" - }, - { - "prefix": "C", - "content": "3" - }, - { - "prefix": "D", - "content": "4" - } - ], - "analyze": "闂皬鏈嬪弸", - "correct": "B", - "score": "", - "difficult": 5 - }, - { - "id": null, - "questionType": 1, - "gradeLevel": null, - "subjectId": 2, - "title": "1+1=锛�", - "items": [ - { - "prefix": "A", - "content": "1" - }, - { - "prefix": "B", - "content": "2" - }, - { - "prefix": "C", - "content": "3" - }, - { - "prefix": "D", - "content": "4" - } - ], - "analyze": "闂皬鏈嬪弸", - "correct": "B", - "score": "", - "difficult": 5 - } - ] - }, - { - questionType: 2, - questionList: [ - { - "id": null, - "questionType": 1, - "gradeLevel": null, - "subjectId": 2, - "title": "1+1=锛�", - "items": [ - { - "prefix": "A", - "content": "1" - }, - { - "prefix": "B", - "content": "2" - }, - { - "prefix": "C", - "content": "3" - }, - { - "prefix": "D", - "content": "4" - } - ], - "analyze": "闂皬鏈嬪弸", - "correct": "B", - "score": "", - "difficult": 5 - }, - { - "id": null, - "questionType": 1, - "gradeLevel": null, - "subjectId": 2, - "title": "1+1=锛�", - "items": [ - { - "prefix": "A", - "content": "1" - }, - { - "prefix": "B", - "content": "2" - }, - { - "prefix": "C", - "content": "3" - }, - { - "prefix": "D", - "content": "4" - } - ], - "analyze": "闂皬鏈嬪弸", - "correct": "B", - "score": "", - "difficult": 5 - } - ] - } - ]); + const answerProgress = ref(0); - const activeQuestion = ref(null); + + const getActiveQuestion = computed(() => { + const temp = examDetail.value.find(item => item.questionType === currentType.value); + if (temp) { + return temp.questionList[currentIndex.value]; + } + }); + + const getAnswerInfo = computed(() => { + let total = 0; + let grade = 0; + examDetail.value.forEach(item => { + total += item.questionList.length; + item.questionList.forEach(question => { + grade += Number(question.questionScore); + }); + }); + return { + total, + grade, + }; + }); const setExamInfo = (info) => { examInfo.value = info; @@ -157,19 +51,49 @@ examDetail.value = detail; }; - const setActiveQuestion = (detail) => { - activeQuestion.value = detail; + const setQuestionAnswer = (type, index, answer) => { + const temp = examDetail.value.find(item => item.questionType === type); + if (temp) { + temp.questionList[index].answer = answer; + } }; + + const setQuestionAnswerList = (type, index, answer) => { + const temp = examDetail.value.find(item => item.questionType === type); + if (temp) { + temp.questionList[index].answerList = answer; + } + } + + const setProgress = (progress) => { + answerProgress.value = progress; + }; + + const initExam = () => { + answerProgress.value = 0; + currentIndex.value = 0; + currentType.value = 1; + } + return { examInfo, examDetail, examType, - activeQuestion, + currentType, currentIndex, + answerProgress, + + getActiveQuestion, + getAnswerInfo, + + initExam, + setExamInfo, setExamDetail, - setActiveQuestion + setQuestionAnswer, + setQuestionAnswerList, + setProgress }; }); -- Gitblit v1.8.0