src/views/grade/components/answer-main/answer-count/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/grade/components/answer-main/answer-determine/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/grade/components/answer-main/answer-fill/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/grade/components/answer-main/answer-short/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/grade/components/answer-main/answer-count/index.vue
@@ -1,7 +1,7 @@ <!-- 计算题 --> <!-- 简答题 --> <template> <div class="answer-container w-full h-full"> <el-scrollbar> <div class="answer-container w-full h-full flex"> <el-scrollbar class="flex-1 mr-4"> <ExamInfo class="mb-5" :questionIndex="currentIndex" :activeQuestion="activeQuestion"></ExamInfo> <div class="answer-content"> @@ -9,16 +9,34 @@ :editorDependencies="['ueditor.config.js', 'ueditor.all.js']" /> </div> </el-scrollbar> <el-scrollbar class="flex-1 ml-4"> <div class="analysis-container"> <div class="analysis-item" :class="analysisState"> <div class="item-label">您的答案</div> <div class="item-info" v-html="activeQuestion.answer"></div> </div> <div class="analysis-item analysis-right"> <div class="item-label">正确答案</div> <div class="item-info" v-html="activeQuestion.questionAnswer"></div> </div> <div class="analysis-item text-gray-700"> <div class="item-label">解析</div> <div class="item-info" v-html="activeQuestion.analyze"></div> </div> </div> </el-scrollbar> </div> </template> <script setup> import { ref,watchEffect } from 'vue'; import { ref,computed } from 'vue'; import { storeToRefs } from 'pinia'; import ExamInfo from '@/components/ExamInfo/index.vue'; import { useExamStore } from '@/store/index.js'; const examStore = useExamStore(); import { useGradeStore } from '@/store/index.js'; const gradeStore = useGradeStore(); const editorConfig = { // 后端服务地址,后端处理参考 @@ -38,13 +56,37 @@ ] }; const { currentType, currentIndex } = storeToRefs(examStore); const { currentType, currentIndex } = storeToRefs(gradeStore); const activeQuestion = ref(examStore.getActiveQuestion); const content = ref(activeQuestion.value.answer); const activeQuestion = ref(gradeStore.getActiveQuestion); const content = ref(activeQuestion.value.questionAnswer); const analysisState = computed(() => { return { 'analysis-right': activeQuestion.value.isRight, 'analysis-wrong': !activeQuestion.value.isRight }; }) </script> <style lang="scss" scoped> .answer-container { --right-color: #67c23a; --wrong-color: #f56c6c; } .analysis-item { margin-bottom: 10px; .item-label { font-weight: bold; } } .analysis-right { color: var(--right-color); } .analysis-wrong { color: var(--wrong-color); } </style> src/views/grade/components/answer-main/answer-determine/index.vue
@@ -1,6 +1,6 @@ <!-- 判断题 --> <template> <div class="answer-container w-full h-full"> <div class="answer-container w-full h-full flex"> <el-scrollbar class="flex-1 mr-4"> <ExamInfo class="mb-5" :questionIndex="currentIndex" :activeQuestion="activeQuestion"></ExamInfo> @@ -38,12 +38,12 @@ import { ref, computed } from 'vue'; import { storeToRefs } from 'pinia'; import ExamInfo from '@/components/ExamInfo/index.vue'; import { useExamStore } from '@/store/index.js'; const examStore = useExamStore(); import { useGradeStore } from '@/store/index.js'; const gradeStore = useGradeStore(); const { currentType, currentIndex } = storeToRefs(examStore); const { currentType, currentIndex } = storeToRefs(gradeStore); const activeQuestion = ref(examStore.getActiveQuestion); const activeQuestion = ref(gradeStore.getActiveQuestion); const answerState = (item) => { src/views/grade/components/answer-main/answer-fill/index.vue
@@ -19,14 +19,13 @@ import { ref,computed } from 'vue'; import { storeToRefs } from 'pinia'; import ExamInfo from '@/components/ExamInfo/index.vue'; import { useExamStore } from '@/store/index.js'; const examStore = useExamStore(); import { useGradeStore } from '@/store/index.js'; const gradeStore = useGradeStore(); const { currentType, currentIndex } = storeToRefs(useGradeStore); const { currentType, currentIndex } = storeToRefs(examStore); const activeQuestion = ref(examStore.getActiveQuestion); const activeQuestion = ref(examStore.useGradeStore); const answerState = (item,index) => { src/views/grade/components/answer-main/answer-short/index.vue
@@ -1,25 +1,42 @@ <!-- 简答题 --> <template> <div class="answer-container w-full h-full"> <el-scrollbar> <div class="answer-container w-full h-full flex"> <el-scrollbar class="flex-1 mr-4"> <ExamInfo class="mb-5" :questionIndex="currentIndex" :activeQuestion="activeQuestion"></ExamInfo> <div class="answer-content"> <vue-ueditor-wrap v-model="content" editor-id="editor" :config="editorConfig" :editorDependencies="['ueditor.config.js', 'ueditor.all.js']" /> </div> <el-button @click="testClick">内容显示</el-button> </el-scrollbar> <el-scrollbar class="flex-1 ml-4"> <div class="analysis-container"> <div class="analysis-item" :class="analysisState"> <div class="item-label">您的答案</div> <div class="item-info" v-html="activeQuestion.answer"></div> </div> <div class="analysis-item analysis-right"> <div class="item-label">正确答案</div> <div class="item-info" v-html="activeQuestion.questionAnswer"></div> </div> <div class="analysis-item text-gray-700"> <div class="item-label">解析</div> <div class="item-info" v-html="activeQuestion.analyze"></div> </div> </div> </el-scrollbar> </div> </template> <script setup> import { ref,watchEffect } from 'vue'; import { ref,computed } from 'vue'; import { storeToRefs } from 'pinia'; import ExamInfo from '@/components/ExamInfo/index.vue'; import { useExamStore } from '@/store/index.js'; const examStore = useExamStore(); import { useGradeStore } from '@/store/index.js'; const gradeStore = useGradeStore(); const editorConfig = { // 后端服务地址,后端处理参考 @@ -39,19 +56,37 @@ ] }; const { currentType, currentIndex } = storeToRefs(examStore); const { currentType, currentIndex } = storeToRefs(gradeStore); const activeQuestion = ref(examStore.getActiveQuestion); const content = ref(activeQuestion.value.answer); const activeQuestion = ref(gradeStore.getActiveQuestion); const content = ref(activeQuestion.value.questionAnswer); const testClick = () => { console.log(content.value); } watchEffect(() => { examStore.setQuestionAnswer(currentType.value, currentIndex.value, content.value); const analysisState = computed(() => { return { 'analysis-right': activeQuestion.value.isRight, 'analysis-wrong': !activeQuestion.value.isRight }; }) </script> <style lang="scss" scoped> .answer-container { --right-color: #67c23a; --wrong-color: #f56c6c; } .analysis-item { margin-bottom: 10px; .item-label { font-weight: bold; } } .analysis-right { color: var(--right-color); } .analysis-wrong { color: var(--wrong-color); } </style>