From de12babd314ac831d3cb645f42dbf8a476075623 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=A0=E6=9C=A8?= Date: Thu, 10 Jun 2021 19:48:43 +0800 Subject: [PATCH] fix(modal): add v-model support for visible --- src/components/Modal/src/BasicModal.vue | 9 +++++---- src/components/Modal/src/components/ModalClose.vue | 4 ++-- src/components/Modal/src/components/ModalFooter.vue | 8 ++++---- 3 files changed, 11 insertions(+), 10 deletions(-) diff --git a/src/components/Modal/src/BasicModal.vue b/src/components/Modal/src/BasicModal.vue index ab14fde8f7a..4acefc801ca 100644 --- a/src/components/Modal/src/BasicModal.vue +++ b/src/components/Modal/src/BasicModal.vue @@ -81,7 +81,7 @@ components: { Modal, ModalWrapper, ModalClose, ModalFooter, ModalHeader }, inheritAttrs: false, props: basicProps, - emits: ['visible-change', 'height-change', 'cancel', 'ok', 'register'], + emits: ['visible-change', 'height-change', 'cancel', 'ok', 'register', 'update:visible'], setup(props, { emit, attrs }) { const visibleRef = ref(false); const propsRef = ref | null>(null); @@ -157,6 +157,7 @@ () => unref(visibleRef), (v) => { emit('visible-change', v); + emit('update:visible', v); instance && modalMethods.emitVisible?.(v, instance.uid); nextTick(() => { if (props.scrollTop && v && unref(modalWrapperRef)) { @@ -180,7 +181,7 @@ } visibleRef.value = false; - emit('cancel'); + emit('cancel', e); } /** @@ -193,8 +194,8 @@ visibleRef.value = !!props.visible; } - function handleOk() { - emit('ok'); + function handleOk(e: Event) { + emit('ok', e); } function handleHeightChange(height: string) { diff --git a/src/components/Modal/src/components/ModalClose.vue b/src/components/Modal/src/components/ModalClose.vue index 3f636977726..cf6cbda83b7 100644 --- a/src/components/Modal/src/components/ModalClose.vue +++ b/src/components/Modal/src/components/ModalClose.vue @@ -35,8 +35,8 @@ ]; }); - function handleCancel() { - emit('cancel'); + function handleCancel(e: Event) { + emit('cancel', e); } function handleFullScreen(e: Event) { e?.stopPropagation(); diff --git a/src/components/Modal/src/components/ModalFooter.vue b/src/components/Modal/src/components/ModalFooter.vue index 09094813d71..10ba4cd47f5 100644 --- a/src/components/Modal/src/components/ModalFooter.vue +++ b/src/components/Modal/src/components/ModalFooter.vue @@ -26,12 +26,12 @@ props: basicProps, emits: ['ok', 'cancel'], setup(_, { emit }) { - function handleOk() { - emit('ok'); + function handleOk(e: Event) { + emit('ok', e); } - function handleCancel() { - emit('cancel'); + function handleCancel(e: Event) { + emit('cancel', e); } return { handleOk, handleCancel }; },