| | |
| | | import { ref } from 'vue'; |
| | | import { ref, computed } from 'vue'; |
| | | import { defineStore } from 'pinia'; |
| | | const useExamStore = defineStore('exam', () => { |
| | | export const useExamStore = defineStore('exam', () => { |
| | | const examInfo = ref(null); |
| | | const examDetail = ref([]); |
| | | |
| | | const examType = ref({ |
| | | 1: '单选题', |
| | | 2: '多选题', |
| | | 3: '判断题', |
| | | 4: '填空题', |
| | | 5: '简答题', |
| | | 6: '语音题', |
| | | 7: '计算题', |
| | | 8: '分析题', |
| | | }); |
| | | |
| | | const currentType = ref(1); |
| | | const currentIndex = ref(0); |
| | | |
| | | const answerProgress = ref(0); |
| | | |
| | | |
| | | 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; |
| | | }; |
| | | |
| | | 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].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 |
| | | } |
| | | }); |
| | | examInfo, |
| | | examDetail, |
| | | examType, |
| | | |
| | | export default useExamStore; |
| | | currentType, |
| | | currentIndex, |
| | | answerProgress, |
| | | |
| | | getActiveQuestion, |
| | | getAnswerInfo, |
| | | |
| | | initExam, |
| | | |
| | | setExamInfo, |
| | | setExamDetail, |
| | | setQuestionAnswer, |
| | | setQuestionAnswerList, |
| | | setProgress |
| | | }; |
| | | }); |