Browse Source

不要因为鼠标快速移动到“提交”而引起页面滚动

Michael Wang 3 years ago
parent
commit
ded47fe731

+ 0 - 2
src/features/mark/MarkBoardMouse.vue

@@ -127,10 +127,8 @@
 
 <script setup lang="ts">
 import type { Question } from "@/types";
-import { isNumber } from "lodash";
 import { store } from "@/store/store";
 import { keyMouse } from "./use/keyboardAndMouse";
-import { message } from "ant-design-vue";
 import { DownOutlined } from "@ant-design/icons-vue";
 
 const emit = defineEmits(["submit", "allZeroSubmit", "unselectiveSubmit"]);

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

@@ -182,7 +182,6 @@ import { isNumber } from "lodash";
 import { onMounted, onUnmounted } from "vue";
 import { store } from "@/store/store";
 import { autoChooseFirstQuestion } from "./use/autoChooseFirstQuestion";
-import { message } from "ant-design-vue";
 import { dragSplitPane } from "./use/splitPane";
 import { addFocusTrack, removeFocusTrack } from "./use/focusTracks";
 

+ 20 - 1
src/features/mark/use/focusTracks.ts

@@ -1,6 +1,23 @@
 import { store } from "@/store/store";
 
-export function addFocusTrack(
+let hovering = false;
+let timeoutId = -1;
+
+export async function addFocusTrack(
+  groupNumber: number | undefined,
+  mainNumber: number | undefined,
+  subNumber: string | undefined
+) {
+  hovering = true;
+
+  timeoutId = setTimeout(() => {
+    if (hovering) {
+      _addFocusTrack(groupNumber, mainNumber, subNumber);
+    }
+  }, 200);
+}
+
+function _addFocusTrack(
   groupNumber: number | undefined,
   mainNumber: number | undefined,
   subNumber: string | undefined
@@ -34,5 +51,7 @@ export function addFocusTrack(
 }
 
 export function removeFocusTrack() {
+  hovering = false;
+  clearTimeout(timeoutId);
   store.focusTracks.splice(0);
 }