Browse Source

fix 滑动到轨迹

Michael Wang 3 years ago
parent
commit
66ce6f8d43
2 changed files with 21 additions and 6 deletions
  1. 6 1
      src/features/mark/MarkBoardTrack.vue
  2. 15 5
      src/features/mark/use/focusTracks.ts

+ 6 - 1
src/features/mark/MarkBoardTrack.vue

@@ -93,7 +93,12 @@
             :class="isCurrentQuestion(question) && 'current-question'"
             @click="chooseQuestion(question)"
             @mouseover="
-              addFocusTrack(undefined, question.mainNumber, question.subNumber)
+              addFocusTrack(
+                undefined,
+                question.mainNumber,
+                question.subNumber,
+                true
+              )
             "
             @mouseleave="removeFocusTrack"
           >

+ 15 - 5
src/features/mark/use/focusTracks.ts

@@ -6,13 +6,14 @@ let timeoutId = -1;
 export function addFocusTrack(
   groupNumber: number | undefined,
   mainNumber: number | undefined,
-  subNumber: string | undefined
+  subNumber: string | undefined,
+  isMark?: boolean | undefined // 是否是评卷,评卷时要考虑标记删除
 ) {
   hovering = true;
 
   timeoutId = setTimeout(() => {
     if (hovering) {
-      _addFocusTrack(groupNumber, mainNumber, subNumber);
+      _addFocusTrack(groupNumber, mainNumber, subNumber, isMark);
     }
   }, 200);
 }
@@ -20,7 +21,8 @@ export function addFocusTrack(
 function _addFocusTrack(
   groupNumber: number | undefined,
   mainNumber: number | undefined,
-  subNumber: string | undefined
+  subNumber: string | undefined,
+  isMark: boolean | undefined // 是否是评卷,评卷时要考虑标记删除
 ) {
   store.focusTracks.splice(0);
 
@@ -30,7 +32,11 @@ function _addFocusTrack(
       ?.map((q) => q.trackList)
       .reduce((acc, ts) => acc.concat(ts))
       .forEach((t) => {
-        store.focusTracks.push(t);
+        // 回评时,如果没被删除
+        const shouldAdd = isMark
+          ? store.currentTask?.markResult.trackList.includes(t)
+          : true;
+        if (shouldAdd) store.focusTracks.push(t);
       });
   } else {
     store.currentTask?.questionList
@@ -44,7 +50,11 @@ function _addFocusTrack(
         }
       })
       .forEach((t) => {
-        store.focusTracks.push(t);
+        // 回评时,如果没被删除
+        const shouldAdd = isMark
+          ? store.currentTask?.markResult.trackList.includes(t)
+          : true;
+        if (shouldAdd) store.focusTracks.push(t);
       });
   }
   // console.log(store.focusTracks);