瀏覽代碼

feat: 给分板Tab键切换题目时,自动滚动到可是区域

chenhao 2 年之前
父節點
當前提交
cb848f4131

+ 13 - 4
src/features/mark/MarkBoardTrack.vue

@@ -3,9 +3,11 @@
     v-if="store.currentTask"
     class="mark-board-track-container tw-flex tw-flex-col"
     :class="[
-      store.isScoreBoardCollapsed
-        ? 'hide mark-board-track-container-in-dialog'
-        : 'show',
+      {
+        hide: store.isScoreBoardCollapsed && !props.modal,
+        'mark-board-track-container-in-dialog': store.isScoreBoardCollapsed && !props.modal,
+        show: !store.isScoreBoardCollapsed
+      },
     ]"
   >
     <div
@@ -92,7 +94,13 @@
           :key="index"
         >
           <div
-            :id="['kbq',question.mainNumber,question.subNumber].join('-')"
+            :id="
+              store.isScoreBoardCollapsed
+                ? props.modal
+                  ? ['bq', question.mainNumber, question.subNumber].join('-')
+                  : ''
+                : ['bq', question.mainNumber, question.subNumber].join('-')
+            "
             class="question tw-rounded tw-cursor-pointer tw-relative tw-mb-2"
             :class="isCurrentQuestion(question) && 'current-question'"
             @click="chooseQuestion(question)"
@@ -236,6 +244,7 @@ import { autoChooseFirstQuestion } from "./use/autoChooseFirstQuestion";
 import { dragSplitPane } from "./use/splitPane";
 import { addFocusTrack, removeFocusTrack } from "./use/focusTracks";
 
+const props = defineProps<{ modal?: boolean }>();
 const emit = defineEmits(["submit", "allZeroSubmit", "unselectiveSubmit"]);
 const { dragSpliter, topPercent } = dragSplitPane();
 

+ 1 - 0
src/features/mark/MarkBoardTrackDialog.vue

@@ -9,6 +9,7 @@
     @close="close"
   >
     <mark-board-track
+      modal
       @submit="$emit('submit')"
       @allZeroSubmit="$emit('allZeroSubmit')"
       @unselectiveSubmit="$emit('unselectiveSubmit')"

+ 0 - 5
src/features/mark/use/autoChooseFirstQuestion.ts

@@ -3,9 +3,6 @@ import { store } from "@/store/store";
 import { watch } from "vue";
 
 const scrollToQuestionOfBoard = async (question: Question) => {
-  const keyboardNode = document.querySelector(
-    `#kbq-${question.mainNumber}-${question.subNumber}`
-  );
   const node = document.querySelector(
     `#bq-${question.mainNumber}-${question.subNumber}`
   );
@@ -15,7 +12,6 @@ const scrollToQuestionOfBoard = async (question: Question) => {
   if (!questionNode) {
     // 非多媒体阅卷
     node && node.scrollIntoView({ block: "center", behavior: "smooth" });
-    keyboardNode && keyboardNode.scrollIntoView({ block: "center", behavior: "smooth" });
     return;
   }
   // console.log(node);
@@ -38,7 +34,6 @@ const scrollToQuestionOfBoard = async (question: Question) => {
       isMoving = await checkIfEleMoving(questionNode);
     }
     node && node.scrollIntoView({ block: "center", behavior: "smooth" });
-    keyboardNode && keyboardNode.scrollIntoView({ block: "center", behavior: "smooth" });
   }
 };