diff --git a/docs/markdown/changelog.zh-CN.md b/docs/markdown/changelog.zh-CN.md index 2716f6ced..8417a5a77 100644 --- a/docs/markdown/changelog.zh-CN.md +++ b/docs/markdown/changelog.zh-CN.md @@ -2,6 +2,10 @@ ### [v2.0.0-beta.5](https://github.com/youzan/vant/tree/v2.0.0-beta.5) +##### ActionSheet + +- 新增`click-overlay`事件 + ##### Field - 新增`input`插槽 diff --git a/packages/action-sheet/en-US.md b/packages/action-sheet/en-US.md index 731b8ec31..2fc81c7aa 100644 --- a/packages/action-sheet/en-US.md +++ b/packages/action-sheet/en-US.md @@ -110,6 +110,7 @@ export default { |------|------|------| | select | Triggered when click option | item, index | | cancel | Triggered when cancel click | - | +| click-overlay | Triggered when click overlay | - | ### Data struct of actions diff --git a/packages/action-sheet/index.tsx b/packages/action-sheet/index.tsx index 3ead6eceb..3c88d59c4 100644 --- a/packages/action-sheet/index.tsx +++ b/packages/action-sheet/index.tsx @@ -41,6 +41,10 @@ function ActionSheet( emit(ctx, 'input', value); } + function onClickOverlay() { + emit(ctx, 'click-overlay'); + } + function onCancel() { emit(ctx, 'input', false); emit(ctx, 'cancel'); @@ -126,6 +130,7 @@ function ActionSheet( getContainer={props.getContainer} closeOnClickOverlay={props.closeOnClickOverlay} onInput={onInput} + onClick-overlay={onClickOverlay} {...inherit(ctx)} > {Header()} diff --git a/packages/action-sheet/test/index.spec.js b/packages/action-sheet/test/index.spec.js index 47903ec69..007b2f18b 100644 --- a/packages/action-sheet/test/index.spec.js +++ b/packages/action-sheet/test/index.spec.js @@ -43,6 +43,7 @@ test('callback events', () => { test('click overlay and close', () => { const onInput = jest.fn(); + const onClickOverlay = jest.fn(); const div = document.createElement('div'); mount({ @@ -52,6 +53,7 @@ test('click overlay and close', () => { :value="true" :get-container="getContainer" @input="onInput" + @click-overlay="onClickOverlay" /> `, @@ -64,12 +66,14 @@ test('click overlay and close', () => { }; }, methods: { - onInput + onInput, + onClickOverlay } }); div.querySelector('.van-overlay').click(); expect(onInput).toHaveBeenCalledWith(false); + expect(onClickOverlay).toHaveBeenCalledTimes(1); }); test('disable lazy-render', () => { diff --git a/packages/action-sheet/zh-CN.md b/packages/action-sheet/zh-CN.md index f71ac732a..49b737d95 100644 --- a/packages/action-sheet/zh-CN.md +++ b/packages/action-sheet/zh-CN.md @@ -117,6 +117,7 @@ export default { |------|------|------| | select | 选中选项时触发,禁用或加载状态下不会触发 | item: 选项对应的对象, index: 选择对应的索引 | | cancel | 取消按钮点击时触发 | - | +| click-overlay | 点击遮罩层时触发 | - | ### actions