mirror of
https://github.com/youzan/vant.git
synced 2025-10-20 02:31:21 +00:00
feat(Calendar): add click-overlay event (#13312)
This commit is contained in:
@@ -115,6 +115,7 @@ export default defineComponent({
|
|||||||
'update:show',
|
'update:show',
|
||||||
'clickSubtitle',
|
'clickSubtitle',
|
||||||
'clickDisabledDate',
|
'clickDisabledDate',
|
||||||
|
'clickOverlay',
|
||||||
'panelChange',
|
'panelChange',
|
||||||
],
|
],
|
||||||
|
|
||||||
@@ -512,6 +513,8 @@ export default defineComponent({
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const onClickOverlay = (event: MouseEvent) => emit('clickOverlay', event);
|
||||||
|
|
||||||
const updateShow = (value: boolean) => emit('update:show', value);
|
const updateShow = (value: boolean) => emit('update:show', value);
|
||||||
|
|
||||||
const renderMonth = (date: Date, index: number) => {
|
const renderMonth = (date: Date, index: number) => {
|
||||||
@@ -654,6 +657,7 @@ export default defineComponent({
|
|||||||
closeOnPopstate={props.closeOnPopstate}
|
closeOnPopstate={props.closeOnPopstate}
|
||||||
safeAreaInsetTop={props.safeAreaInsetTop}
|
safeAreaInsetTop={props.safeAreaInsetTop}
|
||||||
closeOnClickOverlay={props.closeOnClickOverlay}
|
closeOnClickOverlay={props.closeOnClickOverlay}
|
||||||
|
onClickOverlay={onClickOverlay}
|
||||||
onUpdate:show={updateShow}
|
onUpdate:show={updateShow}
|
||||||
/>
|
/>
|
||||||
);
|
);
|
||||||
|
@@ -340,6 +340,7 @@ Following props are supported when the type is multiple
|
|||||||
| over-range | Emitted when exceeded max range | - |
|
| over-range | Emitted when exceeded max range | - |
|
||||||
| click-subtitle | Emitted when clicking the subtitle | _event: MouseEvent_ |
|
| click-subtitle | Emitted when clicking the subtitle | _event: MouseEvent_ |
|
||||||
| click-disabled-date `v4.7.0` | Emitted when clicking disabled date | _value: Date \| Date[]_ |
|
| click-disabled-date `v4.7.0` | Emitted when clicking disabled date | _value: Date \| Date[]_ |
|
||||||
|
| click-overlay `v4.9.16` | Emitted when overlay is clicked | _event: MouseEvent_ |
|
||||||
| panel-change | Emitted when switching calendar panel (effective when `switch mode` is not `none`) | _{ date: Date }_ |
|
| panel-change | Emitted when switching calendar panel (effective when `switch mode` is not `none`) | _{ date: Date }_ |
|
||||||
|
|
||||||
### Slots
|
### Slots
|
||||||
|
@@ -346,6 +346,7 @@ export default {
|
|||||||
| over-range | 范围选择超过最多可选天数时触发 | - |
|
| over-range | 范围选择超过最多可选天数时触发 | - |
|
||||||
| click-subtitle | 点击日历副标题时触发 | _event: MouseEvent_ |
|
| click-subtitle | 点击日历副标题时触发 | _event: MouseEvent_ |
|
||||||
| click-disabled-date `v4.7.0` | 点击禁用日期时触发 | _value: Date \| Date[]_ |
|
| click-disabled-date `v4.7.0` | 点击禁用日期时触发 | _value: Date \| Date[]_ |
|
||||||
|
| click-overlay `v4.9.16` | 点击遮罩层时触发 | _event: MouseEvent_ |
|
||||||
| panel-change | 日历面板切换时触发(`switch-mode` 不为 `none` 时生效) | _{ date: Date }_ |
|
| panel-change | 日历面板切换时触发(`switch-mode` 不为 `none` 时生效) | _{ date: Date }_ |
|
||||||
|
|
||||||
### Slots
|
### Slots
|
||||||
|
@@ -531,6 +531,22 @@ test('popup wrapper', async () => {
|
|||||||
expect(wrapper.find('.van-calendar__popup').style.display).toEqual('none');
|
expect(wrapper.find('.van-calendar__popup').style.display).toEqual('none');
|
||||||
});
|
});
|
||||||
|
|
||||||
|
test('should trigger click-overlay event when overlay is clicked', async () => {
|
||||||
|
const onClickOverlay = vi.fn();
|
||||||
|
const wrapper = mount(Calendar, {
|
||||||
|
props: {
|
||||||
|
minDate,
|
||||||
|
maxDate,
|
||||||
|
defaultDate: minDate,
|
||||||
|
show: true,
|
||||||
|
onClickOverlay,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
wrapper.find('.van-overlay').trigger('click');
|
||||||
|
expect(onClickOverlay).toHaveBeenCalled();
|
||||||
|
});
|
||||||
|
|
||||||
test('set show-mark prop to false', async () => {
|
test('set show-mark prop to false', async () => {
|
||||||
const wrapper = mount(Calendar, {
|
const wrapper = mount(Calendar, {
|
||||||
props: {
|
props: {
|
||||||
|
Reference in New Issue
Block a user