From d6c366de3252df1cd776298b65d7b2cdf7018df6 Mon Sep 17 00:00:00 2001 From: Estrella Pan Date: Tue, 20 Oct 2026 14:15:51 +0200 Subject: [PATCH] =?UTF-8?q?fix(webui):=20=E5=BA=95=E9=83=A8=E6=8A=BD?= =?UTF-8?q?=E5=B1=89=E6=89=93=E5=BC=80=E6=97=B6=E4=B8=8D=E5=86=8D=E8=81=9A?= =?UTF-8?q?=E7=84=A6=E7=AC=AC=E4=B8=80=E4=B8=AA=E8=BE=93=E5=85=A5=E6=A1=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit NDrawer 默认把焦点给第一个可聚焦元素,编辑规则抽屉一打开就聚焦标题输入框(手机上会弹出键盘,键盘避让随之把面板上移)。改为关闭 auto-focus,入场后聚焦面板本身,与原 headlessui 行为一致。 --- webui/src/components/basic/ab-bottom-sheet.vue | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/webui/src/components/basic/ab-bottom-sheet.vue b/webui/src/components/basic/ab-bottom-sheet.vue index 99a48fc5..b2be0f2a 100644 --- a/webui/src/components/basic/ab-bottom-sheet.vue +++ b/webui/src/components/basic/ab-bottom-sheet.vue @@ -40,6 +40,7 @@ const show = defineModel('show', { required: true }); const titleId = useId(); const dragHandleRef = useTemplateRef('dragHandle'); +const panelRef = useTemplateRef('panel'); const translateY = ref(0); const isDragging = ref(false); const keyboardHeight = ref(0); @@ -127,9 +128,15 @@ function close() { :mask-closable="closeable" :close-on-esc="closeable" :aria-labelledby="title ? titleId : undefined" + :auto-focus="false" + @after-enter="panelRef?.focus({ preventScroll: true })" @update:show="(value: boolean) => value || close()" > +