src/views/exam/components/answer-main/answer-count/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/exam/components/answer-main/answer-short/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
src/views/exam/index.vue | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
src/views/exam/components/answer-main/answer-count/index.vue
New file @@ -0,0 +1,57 @@ <!-- 计算题 --> <template> <div class="answer-container w-full h-full"> <el-scrollbar> <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> </div> </template> <script setup> import { ref,watchEffect } from 'vue'; import { storeToRefs } from 'pinia'; import ExamInfo from '@/components/ExamInfo/index.vue'; import { useExamStore } from '@/store/index.js'; const examStore = useExamStore(); const editorConfig = { // 后端服务地址,后端处理参考 // https://open-doc.modstart.com/ueditor-plus/backend.html serverUrl: '/api/path/to/server', UEDITOR_HOME_URL: '/static/UEditorPlus/', UEDITOR_CORS_URL: '/static/UEditorPlus/', initialFrameWidth: '95%', initialFrameHeight: 400, toolbars: [ ['fullscreen', 'undo','redo', '|', 'fontfamily', 'fontsize', '|', 'forecolor', 'backcolor', 'bold', 'italic', 'underline','strikethrough','|', 'removeformat', 'formatmatch', 'autotypeset', 'blockquote', 'pasteplain', '|', 'inserttable', 'deletetable', 'insertparagraph', 'insertrow', 'deleterow', 'insertcol', 'deletecol','mergecells','mergerow','mergecol', 'splittocells', 'splittorows','splittocols', '|', 'formula'] ] }; const { currentType, currentIndex } = storeToRefs(examStore); const activeQuestion = ref(examStore.getActiveQuestion); const content = ref(activeQuestion.value.answer); const testClick = () => { console.log(content.value); } watchEffect(() => { examStore.setQuestionAnswer(currentType.value, currentIndex.value, content.value); }) </script> <style lang="scss" scoped> </style> src/views/exam/components/answer-main/answer-short/index.vue
@@ -53,48 +53,5 @@ </script> <style lang="scss" scoped> .answer-item { max-width: 500px; border-radius: 10px; border: 1px solid #DCDFE6; overflow: hidden; margin-bottom: 20px; cursor: pointer; &:last-of-type { margin-bottom: 0; } &:hover { border-color: #3680fa; .answer-icon { color: #3680fa; border-color: #3680fa; } } .answer-icon { width: 50px; background-color: #F0F2F5; border-right: 1px solid #ffffff; } .answer-text { min-height: 50px; padding: 15px 0; margin: 0 10px; } } .active { border-color: #409EFF !important; .answer-icon { color: #ffffff !important; border-color: #409EFF !important; background-color: #409EFF !important; } } </style> src/views/exam/index.vue
@@ -144,6 +144,7 @@ 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'; @@ -162,7 +163,8 @@ 3: AnswerDetermine, 4: AnswerFill, 5: AnswerShort, 6: AnswerAudio 6: AnswerAudio, 7: AnswerCount, }; const quitDialog = ref(false);