From 09b147195a4092792ddad532e345bb0e3826c509 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Mon, 26 Jan 2026 18:45:06 +0800 Subject: [PATCH] =?UTF-8?q?feat(popup-ui):=20=E4=B8=BA=E6=8A=BD=E5=B1=89?= =?UTF-8?q?=E5=92=8C=E6=A8=A1=E6=80=81=E6=A1=86=E6=B7=BB=E5=8A=A0=E7=A1=AE?= =?UTF-8?q?=E8=AE=A4=E6=8C=89=E9=92=AE=E7=A6=81=E7=94=A8=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 在 DrawerProps 接口中新增 confirmDisabled 属性,并在 drawer.vue 模板中绑定到确认按钮。 同时修改 modal-api.ts 和 drawer-api.ts 中的 modalLoading/drawerLoading 方法, 使其在 loading 时自动禁用确认按钮,防止用户在异步操作期间重复提交。 --- packages/@core/ui-kit/popup-ui/src/drawer/drawer-api.ts | 2 +- packages/@core/ui-kit/popup-ui/src/drawer/drawer.ts | 4 ++++ packages/@core/ui-kit/popup-ui/src/drawer/drawer.vue | 2 ++ packages/@core/ui-kit/popup-ui/src/modal/modal-api.ts | 2 +- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/packages/@core/ui-kit/popup-ui/src/drawer/drawer-api.ts b/packages/@core/ui-kit/popup-ui/src/drawer/drawer-api.ts index a19a1717..c97108f9 100644 --- a/packages/@core/ui-kit/popup-ui/src/drawer/drawer-api.ts +++ b/packages/@core/ui-kit/popup-ui/src/drawer/drawer-api.ts @@ -109,7 +109,7 @@ export class DrawerApi { * @param loading 是否loading */ drawerLoading(loading: boolean) { - this.setState({ confirmLoading: loading, loading }); + this.setState({ confirmDisabled: loading, loading }); } getData>() { diff --git a/packages/@core/ui-kit/popup-ui/src/drawer/drawer.ts b/packages/@core/ui-kit/popup-ui/src/drawer/drawer.ts index 89cd3b5f..5d8523b4 100644 --- a/packages/@core/ui-kit/popup-ui/src/drawer/drawer.ts +++ b/packages/@core/ui-kit/popup-ui/src/drawer/drawer.ts @@ -38,6 +38,10 @@ export interface DrawerProps { * @default true */ closeOnPressEscape?: boolean; + /** + * 禁用确认按钮 + */ + confirmDisabled?: boolean; /** * 确定按钮 loading * @default false diff --git a/packages/@core/ui-kit/popup-ui/src/drawer/drawer.vue b/packages/@core/ui-kit/popup-ui/src/drawer/drawer.vue index b0644440..6595b7cd 100644 --- a/packages/@core/ui-kit/popup-ui/src/drawer/drawer.vue +++ b/packages/@core/ui-kit/popup-ui/src/drawer/drawer.vue @@ -68,6 +68,7 @@ const { closeIconPlacement, closeOnClickModal, closeOnPressEscape, + confirmDisabled, confirmLoading, confirmText, contentClass, @@ -317,6 +318,7 @@ const getForceMount = computed(() => { diff --git a/packages/@core/ui-kit/popup-ui/src/modal/modal-api.ts b/packages/@core/ui-kit/popup-ui/src/modal/modal-api.ts index f8069fb6..9d879da2 100644 --- a/packages/@core/ui-kit/popup-ui/src/modal/modal-api.ts +++ b/packages/@core/ui-kit/popup-ui/src/modal/modal-api.ts @@ -131,7 +131,7 @@ export class ModalApi { * @param loading 是否loading */ modalLoading(loading: boolean) { - this.setState({ confirmLoading: loading, loading }); + this.setState({ confirmDisabled: loading, loading }); } /**