|
|
@ -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 |
|
|
|