From d37dc9cb6a611ac03d70b65f6e91e85824ede289 Mon Sep 17 00:00:00 2001
From: ZhangXianQiang <1135831638@qq.com>
Date: 星期四, 04 七月 2024 18:49:23 +0800
Subject: [PATCH] fix:修改简答题计算题

---
 src/views/grade/components/answer-main/answer-determine/index.vue |   10 +-
 src/views/grade/components/answer-main/answer-fill/index.vue      |    9 +-
 src/views/grade/components/answer-main/answer-count/index.vue     |   62 +++++++++++++++++---
 src/views/grade/components/answer-main/answer-short/index.vue     |   65 ++++++++++++++++-----
 4 files changed, 111 insertions(+), 35 deletions(-)

diff --git a/src/views/grade/components/answer-main/answer-count/index.vue b/src/views/grade/components/answer-main/answer-count/index.vue
index bca7347..7a57fe2 100644
--- a/src/views/grade/components/answer-main/answer-count/index.vue
+++ b/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">姝g‘绛旀</div>
+          <div class="item-info" v-html="activeQuestion.questionAnswer"></div>
+        </div>
+
+        <div class="analysis-item text-gray-700">
+          <div class="item-label">瑙f瀽</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>
\ No newline at end of file
diff --git a/src/views/grade/components/answer-main/answer-determine/index.vue b/src/views/grade/components/answer-main/answer-determine/index.vue
index 5f23935..e29e3f8 100644
--- a/src/views/grade/components/answer-main/answer-determine/index.vue
+++ b/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) => {
diff --git a/src/views/grade/components/answer-main/answer-fill/index.vue b/src/views/grade/components/answer-main/answer-fill/index.vue
index 2546644..abe16cd 100644
--- a/src/views/grade/components/answer-main/answer-fill/index.vue
+++ b/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) => {
diff --git a/src/views/grade/components/answer-main/answer-short/index.vue b/src/views/grade/components/answer-main/answer-short/index.vue
index e5f4d49..7a57fe2 100644
--- a/src/views/grade/components/answer-main/answer-short/index.vue
+++ b/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">姝g‘绛旀</div>
+          <div class="item-info" v-html="activeQuestion.questionAnswer"></div>
+        </div>
+
+        <div class="analysis-item text-gray-700">
+          <div class="item-label">瑙f瀽</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>
\ No newline at end of file

--
Gitblit v1.8.0