diff --git a/packages/devui-vue/devui/overlay/src/fixed-overlay.tsx b/packages/devui-vue/devui/overlay/src/fixed-overlay.tsx index c4ccfa03ec89e41c599e1037da30dfdfdbcf17a8..6d8f57c16bde4542388affbd6e58740bbe20bbf2 100644 --- a/packages/devui-vue/devui/overlay/src/fixed-overlay.tsx +++ b/packages/devui-vue/devui/overlay/src/fixed-overlay.tsx @@ -1,12 +1,13 @@ -import { defineComponent, ref, renderSlot, CSSProperties, PropType } from 'vue'; +import { defineComponent, renderSlot } from 'vue'; import { CommonOverlay } from './common-overlay'; -import { fixedOverlayProps, FixedOverlayProps } from './overlay-types'; +import { fixedOverlayProps, FixedOverlayProps, overlayEmits } from './overlay-types'; import { useOverlayLogic } from './utils'; import './overlay.scss'; export const FixedOverlay = defineComponent({ name: 'DFixedOverlay', props: fixedOverlayProps, + emits: overlayEmits, setup(props: FixedOverlayProps, ctx) { const { backgroundClass, diff --git a/packages/devui-vue/devui/overlay/src/flexible-overlay.tsx b/packages/devui-vue/devui/overlay/src/flexible-overlay.tsx index 42556b58eac8d580e2c83d54579947b50d4b8a04..18320b2f45366abf98f1ea99787aa8f2d33f00b0 100644 --- a/packages/devui-vue/devui/overlay/src/flexible-overlay.tsx +++ b/packages/devui-vue/devui/overlay/src/flexible-overlay.tsx @@ -13,7 +13,7 @@ import { watch, } from 'vue'; import { CommonOverlay } from './common-overlay'; -import { OriginOrDomRef, flexibleOverlayProps, FlexibleOverlayProps, Point, Origin, ConnectionPosition } from './overlay-types'; +import { OriginOrDomRef, flexibleOverlayProps, FlexibleOverlayProps, Point, Origin, ConnectionPosition, overlayEmits } from './overlay-types'; import { useOverlayLogic } from './utils'; import { getElement, isComponent } from '../../shared/util/dom'; @@ -24,7 +24,7 @@ import { getElement, isComponent } from '../../shared/util/dom'; export const FlexibleOverlay = defineComponent({ name: 'DFlexibleOverlay', props: flexibleOverlayProps, - emits: ['onUpdate:visible'], + emits: overlayEmits, setup(props: FlexibleOverlayProps, ctx) { // lift cycle const overlayRef = ref(null); diff --git a/packages/devui-vue/devui/overlay/src/overlay-types.ts b/packages/devui-vue/devui/overlay/src/overlay-types.ts index f90ccfb71b1086cdc7f528fffd8447deeccba49b..23f933ebac5690a4daa651607b7cb3e088d29260 100644 --- a/packages/devui-vue/devui/overlay/src/overlay-types.ts +++ b/packages/devui-vue/devui/overlay/src/overlay-types.ts @@ -18,7 +18,7 @@ export const overlayProps = { backgroundStyle: { type: [String, Object] as PropType }, - backdropClick: { + onBackdropClick: { type: Function, }, backdropClose: { @@ -31,6 +31,7 @@ export const overlayProps = { }, } as const; +export const overlayEmits = ['onUpdate:visible', 'backdropClick'] as ['onUpdate:visible', 'backdropClick']; export type OverlayProps = ExtractPropTypes; @@ -41,9 +42,9 @@ export const fixedOverlayProps = { default: undefined, }, }; - export type FixedOverlayProps = ExtractPropTypes; + export const flexibleOverlayProps = { origin: { type: Object as PropType, @@ -51,7 +52,7 @@ export const flexibleOverlayProps = { }, position: { type: Object as PropType, - default: () => ({ + default: (): ConnectionPosition => ({ originX: 'left', originY: 'top', overlayX: 'left', @@ -62,6 +63,8 @@ export const flexibleOverlayProps = { } + + export interface ClientRect { bottom: number readonly height: number diff --git a/packages/devui-vue/devui/overlay/src/utils.ts b/packages/devui-vue/devui/overlay/src/utils.ts index 4f115130a5184a1421f5153a7ee85751fe26053a..cd7f89c11ab2d7dbe0eb08ab6ced4a064b14910d 100644 --- a/packages/devui-vue/devui/overlay/src/utils.ts +++ b/packages/devui-vue/devui/overlay/src/utils.ts @@ -22,8 +22,7 @@ export function useOverlayLogic(props: OverlayProps): CommonInfo { const handleBackdropClick = (event: Event) => { event.preventDefault(); - - props.backdropClick?.(); + props.onBackdropClick?.(); if (props.backdropClose) { props['onUpdate:visible']?.(false); } diff --git a/packages/devui-vue/docs/components/overlay/index.md b/packages/devui-vue/docs/components/overlay/index.md index 7d604b356d6046ecc2c653440c4c767f0b0a4bf0..3b57bcc3206bb676d3e4cfddeac6a7a66f217771 100644 --- a/packages/devui-vue/docs/components/overlay/index.md +++ b/packages/devui-vue/docs/components/overlay/index.md @@ -14,7 +14,12 @@ backgroundClass="justify-center items-center bg-gray-50" backgroundBlock > -
hello world
+
+ hello world +