Browse Source

fix: 尝试修复一版虚拟键盘快速点击和长按消失的问题1

master
guoapeng 2 weeks ago
parent
commit
5cc0aec2fc
  1. 20
      src/components/common/FTInput/index.vue

20
src/components/common/FTInput/index.vue

@ -146,13 +146,18 @@ const onInit = (keyboard: any) => {
document.addEventListener('click', handlePopClose) document.addEventListener('click', handlePopClose)
} }
const onChange = (input: any) => { const onChange = (input: any) => {
ignoreBlur.value = true
console.log(input) console.log(input)
model.value = input model.value = input
setTimeout(() => {
ignoreBlur.value = false
}, 150)
emits('onChange', input) emits('onChange', input)
} }
const onKeyPress = (button: any) => { const onKeyPress = (button: any) => {
ignoreBlur.value = true
if (button === '{lock}') if (button === '{lock}')
return handleLock() return handleLock()
if (button === '{change}') if (button === '{change}')
@ -195,6 +200,9 @@ const handleLock = () => {
keyboard.value.setOptions({ keyboard.value.setOptions({
layoutName: shiftToggle, layoutName: shiftToggle,
}) })
setTimeout(() => {
ignoreBlur.value = false
}, 150)
} }
const handleChange = () => { const handleChange = () => {
entering.value = true entering.value = true
@ -216,12 +224,18 @@ const handleChange = () => {
display: displayDefault.value, display: displayDefault.value,
}) })
} }
setTimeout(() => {
ignoreBlur.value = false
}, 150)
} }
const handleClear = () => { const handleClear = () => {
keyboard.value.clearInput() keyboard.value.clearInput()
model.value = '' model.value = ''
} }
const handleEnter = () => { const handleEnter = () => {
setTimeout(() => {
ignoreBlur.value = false
}, 150)
emits('enter') emits('enter')
} }
const handleClose = () => { const handleClose = () => {
@ -230,6 +244,9 @@ const handleClose = () => {
// model.value = model.value?.replace(new RegExp(`(\\d+)\\.(\\d{${props.precision}}).*$`), '$1.$2').replace(/\.$/, '') // model.value = model.value?.replace(new RegExp(`(\\d+)\\.(\\d{${props.precision}}).*$`), '$1.$2').replace(/\.$/, '')
} }
popoverRef.value.hide() popoverRef.value.hide()
setTimeout(() => {
ignoreBlur.value = false
}, 150)
emits('close') emits('close')
} }
const handleArrow = (num: number) => { const handleArrow = (num: number) => {
@ -241,6 +258,9 @@ const handleArrow = (num: number) => {
else if (num === 1 && index + 1 <= (model.value?.length || 0)) { else if (num === 1 && index + 1 <= (model.value?.length || 0)) {
keyboard.value.setCaretPosition(index + 1) keyboard.value.setCaretPosition(index + 1)
} }
setTimeout(() => {
ignoreBlur.value = false
}, 150)
} }
const handlePopClose = (e: any) => { const handlePopClose = (e: any) => {

Loading…
Cancel
Save