Commit b6d5e5c96f89c31d4df11e71f2d4cb5ecf8f0b92
1 parent
94bf854d
perf: enhance openModal and openDrawer
Showing
6 changed files
with
38 additions
and
14 deletions
src/components/Drawer/src/types.ts
@@ -7,7 +7,7 @@ export interface DrawerInstance { | @@ -7,7 +7,7 @@ export interface DrawerInstance { | ||
7 | } | 7 | } |
8 | 8 | ||
9 | export interface ReturnMethods extends DrawerInstance { | 9 | export interface ReturnMethods extends DrawerInstance { |
10 | - openDrawer: (visible?: boolean) => void; | 10 | + openDrawer: <T = any>(visible?: boolean, data?: T) => void; |
11 | transferDrawerData: (data: any) => void; | 11 | transferDrawerData: (data: any) => void; |
12 | } | 12 | } |
13 | 13 |
src/components/Drawer/src/useDrawer.ts
@@ -51,10 +51,13 @@ export function useDrawer(): UseDrawerReturnType { | @@ -51,10 +51,13 @@ export function useDrawer(): UseDrawerReturnType { | ||
51 | getInstance().setDrawerProps(props); | 51 | getInstance().setDrawerProps(props); |
52 | }, | 52 | }, |
53 | 53 | ||
54 | - openDrawer: (visible = true): void => { | 54 | + openDrawer: <T = any>(visible = true, data?: T): void => { |
55 | getInstance().setDrawerProps({ | 55 | getInstance().setDrawerProps({ |
56 | visible: visible, | 56 | visible: visible, |
57 | }); | 57 | }); |
58 | + if (data) { | ||
59 | + dataTransferRef[unref(uidRef)] = data; | ||
60 | + } | ||
58 | }, | 61 | }, |
59 | 62 | ||
60 | transferDrawerData(val: any) { | 63 | transferDrawerData(val: any) { |
src/components/Modal/src/types.ts
1 | -import type { ButtonProps } from 'ant-design-vue/types/button/button'; | 1 | +import type { ButtonProps } from 'ant-design-vue/lib/button/buttonTypes'; |
2 | import type { CSSProperties, VNodeChild } from 'vue'; | 2 | import type { CSSProperties, VNodeChild } from 'vue'; |
3 | /** | 3 | /** |
4 | * @description: 弹窗对外暴露的方法 | 4 | * @description: 弹窗对外暴露的方法 |
@@ -9,7 +9,7 @@ export interface ModalMethods { | @@ -9,7 +9,7 @@ export interface ModalMethods { | ||
9 | 9 | ||
10 | export type RegisterFn = (modalMethods: ModalMethods, uuid?: string) => void; | 10 | export type RegisterFn = (modalMethods: ModalMethods, uuid?: string) => void; |
11 | export interface ReturnMethods extends ModalMethods { | 11 | export interface ReturnMethods extends ModalMethods { |
12 | - openModal: (props?: boolean) => void; | 12 | + openModal: <T = any>(props?: boolean, data?: T) => void; |
13 | transferModalData: (data: any) => void; | 13 | transferModalData: (data: any) => void; |
14 | } | 14 | } |
15 | export type UseModalReturnType = [RegisterFn, ReturnMethods]; | 15 | export type UseModalReturnType = [RegisterFn, ReturnMethods]; |
src/components/Modal/src/useModal.ts
@@ -46,10 +46,13 @@ export function useModal(): UseModalReturnType { | @@ -46,10 +46,13 @@ export function useModal(): UseModalReturnType { | ||
46 | getInstance().setModalProps(props); | 46 | getInstance().setModalProps(props); |
47 | }, | 47 | }, |
48 | 48 | ||
49 | - openModal: (visible = true): void => { | 49 | + openModal: <T = any>(visible = true, data?: T): void => { |
50 | getInstance().setModalProps({ | 50 | getInstance().setModalProps({ |
51 | visible: visible, | 51 | visible: visible, |
52 | }); | 52 | }); |
53 | + if (data) { | ||
54 | + dataTransferRef[unref(uidRef)] = data; | ||
55 | + } | ||
53 | }, | 56 | }, |
54 | 57 | ||
55 | transferModalData(val: any) { | 58 | transferModalData(val: any) { |
src/views/demo/comp/drawer/index.vue
@@ -38,14 +38,23 @@ | @@ -38,14 +38,23 @@ | ||
38 | const [register1, { openDrawer: openDrawer1, setDrawerProps }] = useDrawer(); | 38 | const [register1, { openDrawer: openDrawer1, setDrawerProps }] = useDrawer(); |
39 | const [register2, { openDrawer: openDrawer2 }] = useDrawer(); | 39 | const [register2, { openDrawer: openDrawer2 }] = useDrawer(); |
40 | const [register3, { openDrawer: openDrawer3 }] = useDrawer(); | 40 | const [register3, { openDrawer: openDrawer3 }] = useDrawer(); |
41 | - const [register4, { openDrawer: openDrawer4, transferDrawerData }] = useDrawer(); | 41 | + const [ |
42 | + register4, | ||
43 | + { | ||
44 | + openDrawer: openDrawer4, | ||
45 | + // ransferDrawerData | ||
46 | + }, | ||
47 | + ] = useDrawer(); | ||
42 | const [register5, { openDrawer: openDrawer5 }] = useDrawer(); | 48 | const [register5, { openDrawer: openDrawer5 }] = useDrawer(); |
43 | function send() { | 49 | function send() { |
44 | - transferDrawerData({ | 50 | + // transferDrawerData({ |
51 | + // data: 'content', | ||
52 | + // info: 'Info', | ||
53 | + // }); | ||
54 | + openDrawer4(true, { | ||
45 | data: 'content', | 55 | data: 'content', |
46 | info: 'Info', | 56 | info: 'Info', |
47 | }); | 57 | }); |
48 | - openDrawer4(true); | ||
49 | } | 58 | } |
50 | function openDrawerLoading() { | 59 | function openDrawerLoading() { |
51 | openDrawer1(); | 60 | openDrawer1(); |
src/views/demo/comp/modal/index.vue
@@ -40,19 +40,28 @@ | @@ -40,19 +40,28 @@ | ||
40 | const [register1, { openModal: openModal1, setModalProps }] = useModal(); | 40 | const [register1, { openModal: openModal1, setModalProps }] = useModal(); |
41 | const [register2, { openModal: openModal2 }] = useModal(); | 41 | const [register2, { openModal: openModal2 }] = useModal(); |
42 | const [register3, { openModal: openModal3 }] = useModal(); | 42 | const [register3, { openModal: openModal3 }] = useModal(); |
43 | - const [register4, { openModal: openModal4, transferModalData }] = useModal(); | 43 | + const [ |
44 | + register4, | ||
45 | + { | ||
46 | + openModal: openModal4, | ||
47 | + // transferModalData | ||
48 | + }, | ||
49 | + ] = useModal(); | ||
44 | function send() { | 50 | function send() { |
45 | - transferModalData({ | ||
46 | - data: 'content', | ||
47 | - info: 'Info', | ||
48 | - }); | 51 | + // transferModalData({ |
52 | + // data: 'content', | ||
53 | + // info: 'Info', | ||
54 | + // }); | ||
49 | // setTimeout(() => { | 55 | // setTimeout(() => { |
50 | // transferModalData({ | 56 | // transferModalData({ |
51 | // data: 'content1', | 57 | // data: 'content1', |
52 | // info: 'Info1', | 58 | // info: 'Info1', |
53 | // }); | 59 | // }); |
54 | // }, 3000); | 60 | // }, 3000); |
55 | - openModal4(true); | 61 | + openModal4(true, { |
62 | + data: 'content', | ||
63 | + info: 'Info', | ||
64 | + }); | ||
56 | } | 65 | } |
57 | function openModalLoading() { | 66 | function openModalLoading() { |
58 | openModal1(); | 67 | openModal1(); |