From f732b569042f7fe77c85cb295538ddd85561f7e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=A0=E6=9C=A8?= Date: Wed, 2 Jun 2021 23:31:15 +0800 Subject: [PATCH] feat(modal): add redoModalHeight for useModalInner MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 允许在Modal内部动态加载内容后重新调整高度 --- src/components/Modal/src/hooks/useModal.ts | 5 +++ src/components/Modal/src/types.ts | 1 + src/views/demo/comp/modal/Modal1.vue | 47 ++++++++++++++++++++-- src/views/demo/comp/modal/index.vue | 18 ++++----- 4 files changed, 58 insertions(+), 13 deletions(-) diff --git a/src/components/Modal/src/hooks/useModal.ts b/src/components/Modal/src/hooks/useModal.ts index 804e5b4b..25384d18 100644 --- a/src/components/Modal/src/hooks/useModal.ts +++ b/src/components/Modal/src/hooks/useModal.ts @@ -150,6 +150,11 @@ export const useModalInner = (callbackFn?: Fn): UseModalInnerReturnType => { setModalProps: (props: Partial) => { getInstance()?.setModalProps(props); }, + + redoModalHeight: () => { + const callRedo = getInstance()?.redoModalHeight; + callRedo && callRedo(); + }, }, ]; }; diff --git a/src/components/Modal/src/types.ts b/src/components/Modal/src/types.ts index 1e31926f..55e4f6ef 100644 --- a/src/components/Modal/src/types.ts +++ b/src/components/Modal/src/types.ts @@ -23,6 +23,7 @@ export interface ReturnInnerMethods extends ModalMethods { changeLoading: (loading: boolean) => void; changeOkLoading: (loading: boolean) => void; getVisible?: ComputedRef; + redoModalHeight: () => void; } export type UseModalInnerReturnType = [RegisterFn, ReturnInnerMethods]; diff --git a/src/views/demo/comp/modal/Modal1.vue b/src/views/demo/comp/modal/Modal1.vue index 3e1f7d10..04cc9fc6 100644 --- a/src/views/demo/comp/modal/Modal1.vue +++ b/src/views/demo/comp/modal/Modal1.vue @@ -1,12 +1,51 @@ + diff --git a/src/views/demo/comp/modal/index.vue b/src/views/demo/comp/modal/index.vue index 3caec892..c7c5c457 100644 --- a/src/views/demo/comp/modal/index.vue +++ b/src/views/demo/comp/modal/index.vue @@ -2,11 +2,11 @@ - 打开弹窗 默认可以拖动/全屏 + 打开弹窗,加载动态数据并自动调整高度(默认可以拖动/全屏) @@ -20,7 +20,7 @@ /> 打开弹窗并传递数据 - + @@ -39,7 +39,7 @@ export default defineComponent({ components: { Alert, Modal1, Modal2, Modal3, Modal4, PageWrapper }, setup() { - const [register1, { openModal: openModal1, setModalProps }] = useModal(); + const [register1, { openModal: openModal1 }] = useModal(); const [register2, { openModal: openModal2 }] = useModal(); const [register3, { openModal: openModal3 }] = useModal(); const [register4, { openModal: openModal4 }] = useModal(); @@ -50,11 +50,11 @@ }); } function openModalLoading() { - openModal1(); - setModalProps({ loading: true }); - setTimeout(() => { - setModalProps({ loading: false }); - }, 2000); + openModal1(true); + // setModalProps({ loading: true }); + // setTimeout(() => { + // setModalProps({ loading: false }); + // }, 2000); } return { register1,