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', examTime: 5, }); const examType = ref({ 1: '单选题', 2: '多选题', 3: '音频题' }); const currentType = ref(1); const currentIndex = ref(0); const answerProgress = 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": "", "score": "3", "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": "", "score": "3", "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": "", "score": "5", "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": "", "score": "5", "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": "", "score": "5", "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": "", "score": "5", "difficult": 5 } ] }, { questionType: 3, questionList: [ { "id": null, "questionType": 1, "gradeLevel": null, "subjectId": 2, "title": "测试音频1", "audioFile": '/test.mp3', "items": [ { "prefix": "A", "content": "1" }, { "prefix": "B", "content": "2" }, { "prefix": "C", "content": "3" }, { "prefix": "D", "content": "4" } ], "analyze": "问小朋友", "correct": "", "score": "3", "difficult": 5 }, { "id": null, "questionType": 1, "gradeLevel": null, "subjectId": 2, "title": "测试音频2", "audioFile": '/test.mp3', "items": [ { "prefix": "A", "content": "1" }, { "prefix": "B", "content": "2" }, { "prefix": "C", "content": "3" }, { "prefix": "D", "content": "4" } ], "analyze": "问小朋友", "correct": "", "score": "3", "difficult": 5 } ] }, ]); 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.score); }); }); return { total, grade, }; }); const setExamInfo = (info) => { examInfo.value = info; }; const setExamDetail = (detail) => { examDetail.value = detail; }; const setQuestionAnswer = (type, index, answer) => { const temp = examDetail.value.find(item => item.questionType === type); if (temp) { temp.questionList[index].correct = answer; } }; const setProgress = (progress) => { answerProgress.value = progress; }; return { examInfo, examDetail, examType, currentType, currentIndex, answerProgress, getActiveQuestion, getAnswerInfo, setExamInfo, setExamDetail, setQuestionAnswer, setProgress }; });