fix: select components used in modal pop-ups cannot be selected (#4368)

* fix: select components used in modal pop-ups cannot be selected

* chore: update ci

* chore: update css
This commit is contained in:
Vben
2024-09-11 23:10:35 +08:00
committed by GitHub
parent 61faa1895a
commit 855ac02622
13 changed files with 163 additions and 22 deletions

View File

@@ -32,9 +32,13 @@
body,
html {
@apply size-full overscroll-none;
/* scrollbar-gutter: stable; */
}
body {
@apply !pointer-events-auto;
min-height: 100vh;
/* overflow: overlay; */
@@ -90,6 +94,7 @@
}
/* 只有非mac下才进行调整mac下使用默认滚动条 */
html:not([data-platform='macOs']) {
::-webkit-scrollbar {
@apply h-[10px] w-[10px];

View File

@@ -41,6 +41,7 @@ export class ModalApi {
isOpen: false,
loading: false,
modal: true,
openAutoFocus: false,
showCancelButton: true,
showConfirmButton: true,
title: '',

View File

@@ -75,6 +75,10 @@ export interface ModalProps {
* @default true
*/
modal?: boolean;
/**
* 是否自动聚焦
*/
openAutoFocus?: boolean;
/**
* 是否显示取消按钮
* @default true

View File

@@ -68,6 +68,7 @@ const {
header,
loading: showLoading,
modal,
openAutoFocus,
showCancelButton,
showConfirmButton,
title,
@@ -133,6 +134,13 @@ function escapeKeyDown(e: KeyboardEvent) {
e.preventDefault();
}
}
function handerOpenAutoFocus(e: Event) {
if (!openAutoFocus.value) {
e?.preventDefault();
}
}
// pointer-down-outside
function pointerDownOutside(e: Event) {
const target = e.target as HTMLElement;
@@ -166,6 +174,7 @@ function pointerDownOutside(e: Event) {
close-class="top-3"
@escape-key-down="escapeKeyDown"
@interact-outside="interactOutside"
@open-auto-focus="handerOpenAutoFocus"
@pointer-down-outside="pointerDownOutside"
>
<DialogHeader