diff --git a/src/address-list/Item.tsx b/src/address-list/Item.tsx index 13302b737..4bf68baf2 100644 --- a/src/address-list/Item.tsx +++ b/src/address-list/Item.tsx @@ -24,6 +24,7 @@ export type AddressItemProps = { export type AddressItemEvents = { onEdit(): void; + onClick(): void; onSelect(): void; }; @@ -37,10 +38,12 @@ function AddressItem( ) { const { disabled, switchable } = props; - function onSelect() { + function onClick() { if (switchable) { emit(ctx, 'select'); } + + emit(ctx, 'click'); } const renderRightIcon = () => ( @@ -50,6 +53,7 @@ function AddressItem( onClick={(event: Event) => { event.stopPropagation(); emit(ctx, 'edit'); + emit(ctx, 'click'); }} /> ); @@ -79,7 +83,7 @@ function AddressItem( default: renderContent, 'right-icon': renderRightIcon }} - onClick={onSelect} + onClick={onClick} {...inherit(ctx)} /> ); diff --git a/src/address-list/README.md b/src/address-list/README.md index fb5a2a810..0ca247902 100644 --- a/src/address-list/README.md +++ b/src/address-list/README.md @@ -85,6 +85,7 @@ export default { | select | Triggered when select address | item: address object,index | | edit-disabled | Triggered when edit disabled address | item: address object,index | | select-disabled | Triggered when select disabled address | item: address object,index | +| click-item | Triggered when click address item | item: address object,index | ### Data Structure of Address diff --git a/src/address-list/README.zh-CN.md b/src/address-list/README.zh-CN.md index 11b8129a7..be63f967a 100644 --- a/src/address-list/README.zh-CN.md +++ b/src/address-list/README.zh-CN.md @@ -86,6 +86,7 @@ export default { | select | 切换选中的地址时触发 | item: 地址对象,index: 索引 | | edit-disabled | 编辑不可配送的地址时触发 | item: 地址对象,index: 索引 | | select-disabled | 选中不可配送的地址时触发 | item: 地址对象,index: 索引 | +| click-item | 点击任意地址时触发 | item: 地址对象,index: 索引 | ### Address 数据结构 diff --git a/src/address-list/index.tsx b/src/address-list/index.tsx index 7f3e22f4a..dbbfb9140 100644 --- a/src/address-list/index.tsx +++ b/src/address-list/index.tsx @@ -50,6 +50,9 @@ function AddressList( onEdit={() => { emit(ctx, disabled ? 'edit-disabled' : 'edit', item, index); }} + onClick={() => { + emit(ctx, 'click-item', item, index); + }} /> )); } diff --git a/src/address-list/test/index.spec.js b/src/address-list/test/index.spec.js index 542eb994d..6e5a163ab 100644 --- a/src/address-list/test/index.spec.js +++ b/src/address-list/test/index.spec.js @@ -44,3 +44,21 @@ test('select event', () => { expect(onSelect).toHaveBeenCalledTimes(1); }); + +test('click-item event', () => { + const onClickItem = jest.fn(); + const wrapper = mount(AddressList, { + propsData: { + list + }, + context: { + on: { + 'click-item': onClickItem + } + } + }); + + wrapper.find('.van-address-item').trigger('click'); + + expect(onClickItem).toHaveBeenCalledTimes(1); +});