diff --git a/src/components/Drawer/src/types.ts b/src/components/Drawer/src/types.ts index e52def7462422d964ce8c17b19e57303a3a600ed..fae6a655f5fdce035ae462e03561e920c22193cd 100644 --- a/src/components/Drawer/src/types.ts +++ b/src/components/Drawer/src/types.ts @@ -7,7 +7,7 @@ export interface DrawerInstance { } export interface ReturnMethods extends DrawerInstance { - openDrawer: (visible?: boolean) => void; + openDrawer: (visible?: boolean, data?: T) => void; transferDrawerData: (data: any) => void; } diff --git a/src/components/Drawer/src/useDrawer.ts b/src/components/Drawer/src/useDrawer.ts index 58ebc65563832b61c71acb83ec422ae6da90c14f..af52968de3f924578abba72f9a8885261817a721 100644 --- a/src/components/Drawer/src/useDrawer.ts +++ b/src/components/Drawer/src/useDrawer.ts @@ -51,10 +51,13 @@ export function useDrawer(): UseDrawerReturnType { getInstance().setDrawerProps(props); }, - openDrawer: (visible = true): void => { + openDrawer: (visible = true, data?: T): void => { getInstance().setDrawerProps({ visible: visible, }); + if (data) { + dataTransferRef[unref(uidRef)] = data; + } }, transferDrawerData(val: any) { diff --git a/src/components/Modal/src/types.ts b/src/components/Modal/src/types.ts index 150b9b9a532eb8939bdc90e671f3a4283fa4b144..3f6c2954db3a208868e01533b16e84f924fe9e9a 100644 --- a/src/components/Modal/src/types.ts +++ b/src/components/Modal/src/types.ts @@ -1,4 +1,4 @@ -import type { ButtonProps } from 'ant-design-vue/types/button/button'; +import type { ButtonProps } from 'ant-design-vue/lib/button/buttonTypes'; import type { CSSProperties, VNodeChild } from 'vue'; /** * @description: 弹窗对外暴露的方法 @@ -9,7 +9,7 @@ export interface ModalMethods { export type RegisterFn = (modalMethods: ModalMethods, uuid?: string) => void; export interface ReturnMethods extends ModalMethods { - openModal: (props?: boolean) => void; + openModal: (props?: boolean, data?: T) => void; transferModalData: (data: any) => void; } export type UseModalReturnType = [RegisterFn, ReturnMethods]; diff --git a/src/components/Modal/src/useModal.ts b/src/components/Modal/src/useModal.ts index 4107b0340f32e9b08de9fcfb455e26cb420ba1b6..68dd98f9bf5de3415b97eac72508f5edb9f96b97 100644 --- a/src/components/Modal/src/useModal.ts +++ b/src/components/Modal/src/useModal.ts @@ -46,10 +46,13 @@ export function useModal(): UseModalReturnType { getInstance().setModalProps(props); }, - openModal: (visible = true): void => { + openModal: (visible = true, data?: T): void => { getInstance().setModalProps({ visible: visible, }); + if (data) { + dataTransferRef[unref(uidRef)] = data; + } }, transferModalData(val: any) { diff --git a/src/views/demo/comp/drawer/index.vue b/src/views/demo/comp/drawer/index.vue index 6db302fe40dd79dea2b4aee49b658f145c0e2b06..c8fddf93a12eb8c0e0fbda42ee3951fbb289a841 100644 --- a/src/views/demo/comp/drawer/index.vue +++ b/src/views/demo/comp/drawer/index.vue @@ -38,14 +38,23 @@ const [register1, { openDrawer: openDrawer1, setDrawerProps }] = useDrawer(); const [register2, { openDrawer: openDrawer2 }] = useDrawer(); const [register3, { openDrawer: openDrawer3 }] = useDrawer(); - const [register4, { openDrawer: openDrawer4, transferDrawerData }] = useDrawer(); + const [ + register4, + { + openDrawer: openDrawer4, + // ransferDrawerData + }, + ] = useDrawer(); const [register5, { openDrawer: openDrawer5 }] = useDrawer(); function send() { - transferDrawerData({ + // transferDrawerData({ + // data: 'content', + // info: 'Info', + // }); + openDrawer4(true, { data: 'content', info: 'Info', }); - openDrawer4(true); } function openDrawerLoading() { openDrawer1(); diff --git a/src/views/demo/comp/modal/index.vue b/src/views/demo/comp/modal/index.vue index c12fd7fa491a99dd3e9a3faa61f952a6321d5106..c57cda947e01304acb13ae31079ad5509f4434e0 100644 --- a/src/views/demo/comp/modal/index.vue +++ b/src/views/demo/comp/modal/index.vue @@ -40,19 +40,28 @@ const [register1, { openModal: openModal1, setModalProps }] = useModal(); const [register2, { openModal: openModal2 }] = useModal(); const [register3, { openModal: openModal3 }] = useModal(); - const [register4, { openModal: openModal4, transferModalData }] = useModal(); + const [ + register4, + { + openModal: openModal4, + // transferModalData + }, + ] = useModal(); function send() { - transferModalData({ - data: 'content', - info: 'Info', - }); + // transferModalData({ + // data: 'content', + // info: 'Info', + // }); // setTimeout(() => { // transferModalData({ // data: 'content1', // info: 'Info1', // }); // }, 3000); - openModal4(true); + openModal4(true, { + data: 'content', + info: 'Info', + }); } function openModalLoading() { openModal1();