fix: 锁屏和解锁密码输入框自动聚焦
This commit is contained in:
parent
32051e9ca0
commit
4e264c503a
@ -27,29 +27,30 @@ const emit = defineEmits<{
|
|||||||
submit: [Recordable<any>];
|
submit: [Recordable<any>];
|
||||||
}>();
|
}>();
|
||||||
|
|
||||||
const [Form, { resetForm, validate, getValues }] = useVbenForm(
|
const [Form, { resetForm, validate, getValues, getFieldComponentRef }] =
|
||||||
reactive({
|
useVbenForm(
|
||||||
commonConfig: {
|
reactive({
|
||||||
hideLabel: true,
|
commonConfig: {
|
||||||
hideRequiredMark: true,
|
hideLabel: true,
|
||||||
},
|
hideRequiredMark: true,
|
||||||
schema: computed(() => [
|
|
||||||
{
|
|
||||||
component: 'VbenInputPassword' as const,
|
|
||||||
componentProps: {
|
|
||||||
placeholder: $t('ui.widgets.lockScreen.placeholder'),
|
|
||||||
},
|
|
||||||
fieldName: 'lockScreenPassword',
|
|
||||||
formFieldProps: { validateOnBlur: false },
|
|
||||||
label: $t('authentication.password'),
|
|
||||||
rules: z
|
|
||||||
.string()
|
|
||||||
.min(1, { message: $t('ui.widgets.lockScreen.placeholder') }),
|
|
||||||
},
|
},
|
||||||
]),
|
schema: computed(() => [
|
||||||
showDefaultActions: false,
|
{
|
||||||
}),
|
component: 'VbenInputPassword' as const,
|
||||||
);
|
componentProps: {
|
||||||
|
placeholder: $t('ui.widgets.lockScreen.placeholder'),
|
||||||
|
},
|
||||||
|
fieldName: 'lockScreenPassword',
|
||||||
|
formFieldProps: { validateOnBlur: false },
|
||||||
|
label: $t('authentication.password'),
|
||||||
|
rules: z
|
||||||
|
.string()
|
||||||
|
.min(1, { message: $t('ui.widgets.lockScreen.placeholder') }),
|
||||||
|
},
|
||||||
|
]),
|
||||||
|
showDefaultActions: false,
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
|
||||||
const [Modal] = useVbenModal({
|
const [Modal] = useVbenModal({
|
||||||
onConfirm() {
|
onConfirm() {
|
||||||
@ -60,6 +61,13 @@ const [Modal] = useVbenModal({
|
|||||||
resetForm();
|
resetForm();
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
onOpened() {
|
||||||
|
requestAnimationFrame(() => {
|
||||||
|
getFieldComponentRef('lockScreenPassword')
|
||||||
|
?.$el?.querySelector('[name="lockScreenPassword"]')
|
||||||
|
?.focus();
|
||||||
|
});
|
||||||
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
async function handleSubmit() {
|
async function handleSubmit() {
|
||||||
|
|||||||
@ -37,7 +37,7 @@ const date = useDateFormat(now, 'YYYY-MM-DD dddd', { locales: locale.value });
|
|||||||
const showUnlockForm = ref(false);
|
const showUnlockForm = ref(false);
|
||||||
const { lockScreenPassword } = storeToRefs(accessStore);
|
const { lockScreenPassword } = storeToRefs(accessStore);
|
||||||
|
|
||||||
const [Form, { form, validate }] = useVbenForm(
|
const [Form, { form, validate, getFieldComponentRef }] = useVbenForm(
|
||||||
reactive({
|
reactive({
|
||||||
commonConfig: {
|
commonConfig: {
|
||||||
hideLabel: true,
|
hideLabel: true,
|
||||||
@ -75,6 +75,13 @@ async function handleSubmit() {
|
|||||||
|
|
||||||
function toggleUnlockForm() {
|
function toggleUnlockForm() {
|
||||||
showUnlockForm.value = !showUnlockForm.value;
|
showUnlockForm.value = !showUnlockForm.value;
|
||||||
|
if (showUnlockForm.value) {
|
||||||
|
requestAnimationFrame(() => {
|
||||||
|
getFieldComponentRef('password')
|
||||||
|
?.$el?.querySelector('[name="password"]')
|
||||||
|
?.focus();
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
useScrollLock();
|
useScrollLock();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user