Skip to content

Commit 21b7660

Browse files
committed
Merge branch 'pr-282' into dev
# Conflicts: # packages/core/src/components/word/TypeWord.vue
2 parents 5267e79 + 70033a1 commit 21b7660

1 file changed

Lines changed: 9 additions & 2 deletions

File tree

packages/core/src/components/word/TypeWord.vue

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,7 @@ let showWordResult = ref(false)
6565
let wrongTimes = ref(0)
6666
//输入锁定,因为跳转到下一个单词有延时,如果重复在延时期间内重复输入,导致会跳转N次
6767
let inputLock = false
68+
let waitClear = false
6869
let wordRepeatCount = 0
6970
// 记录单词完成的时间戳,用于防止同时按下最后一个字母和空格键时跳过单词
7071
let wordCompletedTime = 0
@@ -309,6 +310,10 @@ function select(e, index: number) {
309310
let currentPracticeSentenceIndex = $ref(-1)
310311
311312
async function onTyping(e: KeyboardEvent) {
313+
if (waitClear) {
314+
return
315+
}
316+
312317
if (isWordTest) {
313318
if (e.code === 'Space') {
314319
if (completeSelect) {
@@ -469,16 +474,20 @@ async function onTyping(e: KeyboardEvent) {
469474
input += letter
470475
wrong = ''
471476
playKeyboardAudio()
477+
inputLock = false
472478
} else {
473479
typo()
474480
wrong = letter
475481
playBeep()
476482
if (settingStore.wordSound) {
477483
playWord(WordPlayTrigger.Typo, { volumeRef: targetVolumeIcon })
478484
}
485+
waitClear = true
479486
setTimeout(() => {
480487
if (settingStore.inputWrongClear && !isTypingSentence()) input = ''
481488
wrong = ''
489+
waitClear = false
490+
inputLock = false
482491
}, 500)
483492
}
484493
// 更新当前单词信息
@@ -498,8 +507,6 @@ async function onTyping(e: KeyboardEvent) {
498507
completeTypeWord(true)
499508
}
500509
}
501-
} else {
502-
inputLock = false
503510
}
504511
}
505512
}

0 commit comments

Comments
 (0)