From af0185d4fe8a68b42752565874ec0c2487b3cbe2 Mon Sep 17 00:00:00 2001 From: dingyongliang Date: Mon, 4 Nov 2024 14:24:08 +0800 Subject: [PATCH] * pick-pop: add onClickItem option. --- lib/pick/src/components/pick-pop.tsx | 6 +++++- lib/pick/src/components/pick.tsx | 1 + lib/pick/src/types/pick-options.ts | 1 + lib/pick/src/types/pick-pop-props.ts | 1 + 4 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/pick/src/components/pick-pop.tsx b/lib/pick/src/components/pick-pop.tsx index a545df7ab8..cd2aa3f237 100644 --- a/lib/pick/src/components/pick-pop.tsx +++ b/lib/pick/src/components/pick-pop.tsx @@ -30,9 +30,13 @@ export class PickPop } protected _handleClick(event: MouseEvent) { - const {togglePop} = this.props; + const {togglePop, onClickItem, state} = this.props; const $target = $(event.target as HTMLElement); const $value = $target.closest('[data-pick-value]'); + if (onClickItem) { + onClickItem(event, state.value); + } + if ($value.length) { event.stopPropagation(); return togglePop(false, {value: `${$value.dataset('pickValue')}`} as Partial); diff --git a/lib/pick/src/components/pick.tsx b/lib/pick/src/components/pick.tsx index 8cfec6c4c5..fa464666d2 100644 --- a/lib/pick/src/components/pick.tsx +++ b/lib/pick/src/components/pick.tsx @@ -172,6 +172,7 @@ export class Pick = Pi maxWidth: props.popMaxWidth, minWidth: props.popMinWidth, limitInScreen: props.limitPopInScreen, + onClickItem: props.onClickItem, }; } diff --git a/lib/pick/src/types/pick-options.ts b/lib/pick/src/types/pick-options.ts index 35e68dcaa6..b6b98a2aa9 100644 --- a/lib/pick/src/types/pick-options.ts +++ b/lib/pick/src/types/pick-options.ts @@ -46,4 +46,5 @@ export interface PickOptions { onPopShown?: () => void; onPopHide?: () => void; onPopHidden?: () => void; + onClickItem?: (event: MouseEvent, value: string) => void; } diff --git a/lib/pick/src/types/pick-pop-props.ts b/lib/pick/src/types/pick-pop-props.ts index c12d941f21..a929299fab 100644 --- a/lib/pick/src/types/pick-pop-props.ts +++ b/lib/pick/src/types/pick-pop-props.ts @@ -19,6 +19,7 @@ export interface PickPopProps { afterRender?: (info: {firstRender: boolean}) => void; beforeDestroy?: () => void; onLayout?: (element: HTMLElement) => void; + onClickItem?: (event: MouseEvent, state: string) => void; limitInScreen?: boolean; placement?: PickPopPlacement;