From b9ab90e90cf78d5cd89273deefe154ec236b519e Mon Sep 17 00:00:00 2001 From: ZhangXianQiang <1135831638@qq.com> Date: 星期一, 01 七月 2024 16:22:57 +0800 Subject: [PATCH] feat:计算题 --- src/views/exam/components/answer-main/answer-count/index.vue | 57 ++++++++++++++++++++++++++++ src/views/exam/components/answer-main/answer-short/index.vue | 43 --------------------- src/views/exam/index.vue | 4 + 3 files changed, 60 insertions(+), 44 deletions(-) diff --git a/src/views/exam/components/answer-main/answer-count/index.vue b/src/views/exam/components/answer-main/answer-count/index.vue new file mode 100644 index 0000000..c2dae2a --- /dev/null +++ b/src/views/exam/components/answer-main/answer-count/index.vue @@ -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> \ No newline at end of file diff --git a/src/views/exam/components/answer-main/answer-short/index.vue b/src/views/exam/components/answer-main/answer-short/index.vue index 3521a78..e5f4d49 100644 --- a/src/views/exam/components/answer-main/answer-short/index.vue +++ b/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> \ No newline at end of file diff --git a/src/views/exam/index.vue b/src/views/exam/index.vue index 5eadf62..da8d53f 100644 --- a/src/views/exam/index.vue +++ b/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); -- Gitblit v1.8.0