Parcourir la source

fix numberKeyListener

Michael Wang il y a 3 ans
Parent
commit
0d9414d663
2 fichiers modifiés avec 17 ajouts et 2 suppressions
  1. 16 1
      src/features/mark/MarkBoardTrack.vue
  2. 1 1
      src/features/mark/ShortCutModal.vue

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

@@ -307,7 +307,6 @@ function chooseScore(score: number) {
 let keyPressTimestamp = 0;
 let keys: string[] = [];
 function numberKeyListener(event: KeyboardEvent) {
-  // console.log(event);
   if (!store.currentQuestion) return;
   if (" jiklc".includes(event.key)) return;
   if (event.key === "#") {
@@ -370,6 +369,22 @@ onUnmounted(() => {
   document.removeEventListener("keydown", submitListener);
 });
 
+watch(
+  () => store.isScoreBoardCollapsed,
+  () => {
+    // 此处的逻辑是 MarkBoardTrackDialog 带来的,不然 numberKeyListener 在两个组件中多次触发有问题
+    if (store.isScoreBoardCollapsed) {
+      document.removeEventListener("keydown", numberKeyListener);
+      document.removeEventListener("keydown", submitListener);
+    } else {
+      // 重复添加相同的function是没问题,不会重复触发
+      document.addEventListener("keydown", numberKeyListener);
+      document.addEventListener("keydown", submitListener);
+    }
+  },
+  { immediate: true }
+);
+
 function clearLatestMarkOfCurrentQuetion() {
   if (!store.currentTask?.markResult || !store.currentQuestion) return;
 

+ 1 - 1
src/features/mark/ShortCutModal.vue

@@ -66,7 +66,7 @@
       </div>
       <div class="row">
         <div>键盘选分</div>
-        <div>Number 或 .</div>
+        <div>数字 或 . 或 #</div>
       </div>
       <div class="row">
         <div>取消选分</div>