diff --git a/src/popup/popup.en-US.md b/src/popup/popup.en-US.md index 0155888d1..583e1932c 100644 --- a/src/popup/popup.en-US.md +++ b/src/popup/popup.en-US.md @@ -25,6 +25,7 @@ triggerElement | String / Slot / Function | - | Typescript:`string \| TNode` visible | Boolean | - | `v-model` is supported。Typescript:`boolean` | N defaultVisible | Boolean | - | uncontrolled property。Typescript:`boolean` | N zIndex | Number | - | \- | N +onOverlayClick | Function | | Typescript:`(context: { e: MouseEvent }) => void`
trigger on popup content click | N onScroll | Function | | Typescript:`(context: { e: WheelEvent }) => void`
| N onScrollToBottom | Function | | Typescript:`(context: { e: WheelEvent }) => void`
| N onVisibleChange | Function | | Typescript:`(visible: boolean, context: PopupVisibleChangeContext) => void`
[see more ts definition](https://github.com/Tencent/tdesign-vue/tree/develop/src/popup/type.ts)。
`interface PopupVisibleChangeContext { e?: PopupTriggerEvent; trigger?: PopupTriggerSource }`

`type PopupTriggerEvent = MouseEvent \| FocusEvent \| KeyboardEvent`

`type PopupTriggerSource = 'document' \| 'trigger-element-click' \| 'trigger-element-hover' \| 'trigger-element-blur' \| 'trigger-element-focus' \| 'trigger-element-mousedown' \| 'context-menu' \| 'keydown-esc'`
| N @@ -33,6 +34,7 @@ onVisibleChange | Function | | Typescript:`(visible: boolean, context: PopupV name | params | description -- | -- | -- +overlay-click | `(context: { e: MouseEvent })` | trigger on popup content click scroll | `(context: { e: WheelEvent })` | \- scroll-to-bottom | `(context: { e: WheelEvent })` | \- visible-change | `(visible: boolean, context: PopupVisibleChangeContext)` | [see more ts definition](https://github.com/Tencent/tdesign-vue/tree/develop/src/popup/type.ts)。
`interface PopupVisibleChangeContext { e?: PopupTriggerEvent; trigger?: PopupTriggerSource }`

`type PopupTriggerEvent = MouseEvent \| FocusEvent \| KeyboardEvent`

`type PopupTriggerSource = 'document' \| 'trigger-element-click' \| 'trigger-element-hover' \| 'trigger-element-blur' \| 'trigger-element-focus' \| 'trigger-element-mousedown' \| 'context-menu' \| 'keydown-esc'`
diff --git a/src/popup/popup.md b/src/popup/popup.md index 200d3e6c9..711f39e46 100644 --- a/src/popup/popup.md +++ b/src/popup/popup.md @@ -35,6 +35,7 @@ triggerElement | String / Slot / Function | - | 触发元素。值类型为字 visible | Boolean | - | 是否显示浮层。支持语法糖 `v-model`。TS 类型:`boolean` | N defaultVisible | Boolean | - | 是否显示浮层。非受控属性。TS 类型:`boolean` | N zIndex | Number | - | 组件层级,Web 侧样式默认为 5500,移动端和小程序样式默认为 1500 | N +onOverlayClick | Function | | TS 类型:`(context: { e: MouseEvent }) => void`
内容面板点击时触发 | N onScroll | Function | | TS 类型:`(context: { e: WheelEvent }) => void`
下拉选项滚动事件 | N onScrollToBottom | Function | | TS 类型:`(context: { e: WheelEvent }) => void`
下拉滚动触底事件,常用于滚动到底执行具体业务逻辑 | N onVisibleChange | Function | | TS 类型:`(visible: boolean, context: PopupVisibleChangeContext) => void`
当浮层隐藏或显示时触发,`trigger=document` 表示点击非浮层元素触发;`trigger=context-menu` 表示右击触发。[详细类型定义](https://github.com/Tencent/tdesign-vue/tree/develop/src/popup/type.ts)。
`interface PopupVisibleChangeContext { e?: PopupTriggerEvent; trigger?: PopupTriggerSource }`

`type PopupTriggerEvent = MouseEvent \| FocusEvent \| KeyboardEvent`

`type PopupTriggerSource = 'document' \| 'trigger-element-click' \| 'trigger-element-hover' \| 'trigger-element-blur' \| 'trigger-element-focus' \| 'trigger-element-mousedown' \| 'context-menu' \| 'keydown-esc'`
| N @@ -43,6 +44,7 @@ onVisibleChange | Function | | TS 类型:`(visible: boolean, context: PopupVi 名称 | 参数 | 描述 -- | -- | -- +overlay-click | `(context: { e: MouseEvent })` | 内容面板点击时触发 scroll | `(context: { e: WheelEvent })` | 下拉选项滚动事件 scroll-to-bottom | `(context: { e: WheelEvent })` | 下拉滚动触底事件,常用于滚动到底执行具体业务逻辑 visible-change | `(visible: boolean, context: PopupVisibleChangeContext)` | 当浮层隐藏或显示时触发,`trigger=document` 表示点击非浮层元素触发;`trigger=context-menu` 表示右击触发。[详细类型定义](https://github.com/Tencent/tdesign-vue/tree/develop/src/popup/type.ts)。
`interface PopupVisibleChangeContext { e?: PopupTriggerEvent; trigger?: PopupTriggerSource }`

`type PopupTriggerEvent = MouseEvent \| FocusEvent \| KeyboardEvent`

`type PopupTriggerSource = 'document' \| 'trigger-element-click' \| 'trigger-element-hover' \| 'trigger-element-blur' \| 'trigger-element-focus' \| 'trigger-element-mousedown' \| 'context-menu' \| 'keydown-esc'`
diff --git a/src/popup/popup.tsx b/src/popup/popup.tsx index 7e5ef5ee7..b72b5d13e 100644 --- a/src/popup/popup.tsx +++ b/src/popup/popup.tsx @@ -423,6 +423,9 @@ export default mixins(classPrefixMixins, getAttachConfigMixins('popup')).extend( mousedown: () => { this.contentClicked = true; }, + click: (e: MouseEvent) => { + emitEvent(this, 'overlay-click', { e }); + }, ...(hasTrigger.hover && { mouseenter: this.onMouseEnter, mouseleave: this.onMouseLeave, diff --git a/src/popup/props.ts b/src/popup/props.ts index caf3f6faf..1f9aafdd2 100644 --- a/src/popup/props.ts +++ b/src/popup/props.ts @@ -81,6 +81,8 @@ export default { zIndex: { type: Number, }, + /** 内容面板点击时触发 */ + onOverlayClick: Function as PropType, /** 下拉选项滚动事件 */ onScroll: Function as PropType, /** 下拉滚动触底事件,常用于滚动到底执行具体业务逻辑 */ diff --git a/src/popup/type.ts b/src/popup/type.ts index ea190d68f..e1194c88b 100644 --- a/src/popup/type.ts +++ b/src/popup/type.ts @@ -89,6 +89,10 @@ export interface TdPopupProps { * 组件层级,Web 侧样式默认为 5500,移动端和小程序样式默认为 1500 */ zIndex?: number; + /** + * 内容面板点击时触发 + */ + onOverlayClick?: (context: { e: MouseEvent }) => void; /** * 下拉选项滚动事件 */