Kaynağa Gözat

fix: 主观题复核鼠标打分bug

zhangjie 11 ay önce
ebeveyn
işleme
8bebafffe1

+ 34 - 0
src/features/check/SubjectiveAnswer.vue

@@ -282,6 +282,40 @@ const getMarkData = () => {
     spent: Date.now() - store.currentTask.__markStartTime,
   };
 
+  if (!store.isTrackMode) {
+    const groupMap = {};
+    store.currentTask.questionList.forEach((question) => {
+      const { __index, groupNumber } = question;
+      if (!groupMap[groupNumber]) {
+        groupMap[groupNumber] = {
+          ...commomData,
+          groupNumber,
+          trackList: [],
+          specialTagList: [],
+          markerScore: [],
+          scoreList: [],
+          studentId: store.currentTask.studentId,
+        };
+      }
+      groupMap[groupNumber].scoreList[__index] =
+        store.currentTask.markResult.scoreList[__index];
+      groupMap[groupNumber].markerScore.push({
+        mainNumber: question.mainNumber,
+        subNumber: question.subNumber,
+        score: store.currentTask.markResult.scoreList[__index],
+      });
+    });
+
+    const groups = Object.values(groupMap).map((group) => {
+      group.scoreList = group.scoreList.filter((item) => item !== undefined);
+      return group;
+    });
+    return {
+      studentId: store.currentTask.studentId,
+      groups,
+    };
+  }
+
   let groupMap = {};
   markResult.trackList.forEach((track) => {
     const { groupNumber } =

+ 5 - 3
src/features/mark/MarkBoardMouse.vue

@@ -9,12 +9,12 @@
         <template #overlay>
           <a-menu>
             <a-menu-item key="1" @click="toggleKeyMouse">
-              鼠标给分
+              键盘给分
             </a-menu-item>
           </a-menu>
         </template>
         <a-button>
-          键盘给分
+          鼠标给分
           <DownOutlined style="display: inline-flex" />
         </a-button>
       </a-dropdown>
@@ -104,7 +104,9 @@ function chooseScore(question: Question, score: number) {
 function isCurrentScore(question: Question, score: number) {
   const { __index } = question;
   const questionScore =
-    store.currentTask && store.currentTask.markResult.scoreList[__index];
+    store.currentTask &&
+    store.currentTask.markResult &&
+    store.currentTask.markResult.scoreList[__index];
   return questionScore === score;
 }