Browse Source

fix: 登录虚拟键盘替换

master
guoapeng 2 weeks ago
parent
commit
dd6561254b
  1. 42
      src/views/login/index.vue

42
src/views/login/index.vue

@ -32,14 +32,8 @@ const focusedInput = ref<string | null>(null)
const keyboardKey = ref(nanoid())
const rules = {
username: [
{ required: true, message: '请输入用户名', trigger: 'blur' },
{ min: 3, max: 20, message: '长度在 3 到 20 个字符', trigger: 'blur' },
],
password: [
{ required: true, message: '请输入密码', trigger: 'blur' },
{ min: 3, max: 20, message: '长度在 3 到 20 个字符', trigger: 'blur' },
],
username: [{ required: true, message: '请输入用户名', trigger: 'blur' }],
password: [{ required: true, message: '请输入密码', trigger: 'blur' }],
}
watchEffect(() => {
@ -48,17 +42,6 @@ watchEffect(() => {
}
})
const openKeyboard = (e: { target: { name: string | null } }) => {
keyboardVisible.value = true
keyboardKey.value = nanoid()
if (e.target.name) {
const labelName = e.target.name
const formValue = loginForm.value[labelName]
inputValue.value = formValue ? formValue.toString() : ''
focusedInput.value = e.target.name
}
}
const loginHandle = async () => {
try {
const valid = await formRef.value.validate()
@ -122,21 +105,14 @@ const loginHandle = async () => {
:rules="{
required: true,
message: '输入用户名',
trigger: ['blur', 'change'],
trigger: 'blur',
}"
>
<el-input
v-model="loginForm.name"
v-prevent-keyboard
size="large"
name="name"
placeholder="用户名"
@focus="openKeyboard"
>
<ft-input v-model="loginForm.name" size="large" name="name" placeholder="用户名">
<template #prepend>
<img class="input-icon" :src="user" alt="">
</template>
</el-input>
</ft-input>
</el-form-item>
<!-- <div class="input-title">
密码
@ -147,23 +123,21 @@ const loginHandle = async () => {
:rules="{
required: true,
message: '请输入密码',
trigger: ['blur', 'change'],
trigger: 'blur',
}"
>
<el-input
<ft-input
v-model="loginForm.pwd"
v-prevent-keyboard
size="large"
name="pwd"
autocomplete="new-password"
placeholder="密码"
type="password"
@focus="openKeyboard"
>
<template #prepend>
<img class="input-icon" :src="password" alt="">
</template>
</el-input>
</ft-input>
</el-form-item>
<el-form-item class="input-title">
<bt-button

Loading…
Cancel
Save