Skip to content

Commit 9c4509a

Browse files
authored
fix(dialog): 修正 destroyOnClose 属性传递和 dialog 实例生成和返回 (#1149)
* fix(dialog): 修正 destroyOnClose 属性传递 * fix(dialog): 修正 dialog 实例生成和返回 * fix(dialog): 更新test-snap * fix(dialog): 修正 dialog 实例生成和返回-文档
1 parent 18e534a commit 9c4509a

File tree

7 files changed

+86
-84
lines changed

7 files changed

+86
-84
lines changed

src/dialog/__test__/__snapshots__/demo.test.jsx.snap

Lines changed: 0 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ exports[`Dialog > Dialog confirmVue demo works fine 1`] = `
4040
4141
<div
4242
class="t-dialog"
43-
id="root"
4443
>
4544
4645
@@ -146,7 +145,6 @@ exports[`Dialog > Dialog confirmVue demo works fine 1`] = `
146145
147146
<div
148147
class="t-dialog"
149-
id="root"
150148
>
151149
152150
@@ -254,7 +252,6 @@ exports[`Dialog > Dialog feedbackVue demo works fine 1`] = `
254252
255253
<div
256254
class="t-dialog"
257-
id="root"
258255
>
259256
260257
@@ -347,7 +344,6 @@ exports[`Dialog > Dialog feedbackVue demo works fine 1`] = `
347344
348345
<div
349346
class="t-dialog"
350-
id="root"
351347
>
352348
353349
@@ -436,7 +432,6 @@ exports[`Dialog > Dialog feedbackVue demo works fine 1`] = `
436432
437433
<div
438434
class="t-dialog"
439-
id="root"
440435
>
441436
442437
@@ -539,7 +534,6 @@ exports[`Dialog > Dialog imageDialogVue demo works fine 1`] = `
539534
540535
<div
541536
class="t-dialog"
542-
id="root"
543537
>
544538
545539
<div
@@ -692,7 +686,6 @@ exports[`Dialog > Dialog imageDialogVue demo works fine 1`] = `
692686
693687
<div
694688
class="t-dialog"
695-
id="root"
696689
>
697690
698691
@@ -850,7 +843,6 @@ exports[`Dialog > Dialog inputVue demo works fine 1`] = `
850843
851844
<div
852845
class="t-dialog"
853-
id="root"
854846
>
855847
856848
@@ -999,7 +991,6 @@ exports[`Dialog > Dialog inputVue demo works fine 1`] = `
999991
1000992
<div
1001993
class="t-dialog"
1002-
id="root"
1003994
>
1004995
1005996
@@ -1187,7 +1178,6 @@ exports[`Dialog > Dialog mobileVue demo works fine 1`] = `
11871178
11881179
<div
11891180
class="t-dialog"
1190-
id="root"
11911181
>
11921182
11931183
@@ -1280,7 +1270,6 @@ exports[`Dialog > Dialog mobileVue demo works fine 1`] = `
12801270
12811271
<div
12821272
class="t-dialog"
1283-
id="root"
12841273
>
12851274
12861275
@@ -1369,7 +1358,6 @@ exports[`Dialog > Dialog mobileVue demo works fine 1`] = `
13691358
13701359
<div
13711360
class="t-dialog"
1372-
id="root"
13731361
>
13741362
13751363
@@ -1483,7 +1471,6 @@ exports[`Dialog > Dialog mobileVue demo works fine 1`] = `
14831471
14841472
<div
14851473
class="t-dialog"
1486-
id="root"
14871474
>
14881475
14891476
@@ -1589,7 +1576,6 @@ exports[`Dialog > Dialog mobileVue demo works fine 1`] = `
15891576
15901577
<div
15911578
class="t-dialog"
1592-
id="root"
15931579
>
15941580
15951581
@@ -1712,7 +1698,6 @@ exports[`Dialog > Dialog mobileVue demo works fine 1`] = `
17121698
17131699
<div
17141700
class="t-dialog"
1715-
id="root"
17161701
>
17171702
17181703
@@ -1861,7 +1846,6 @@ exports[`Dialog > Dialog mobileVue demo works fine 1`] = `
18611846
18621847
<div
18631848
class="t-dialog"
1864-
id="root"
18651849
>
18661850
18671851
@@ -2033,7 +2017,6 @@ exports[`Dialog > Dialog mobileVue demo works fine 1`] = `
20332017
20342018
<div
20352019
class="t-dialog"
2036-
id="root"
20372020
>
20382021
20392022
<div
@@ -2186,7 +2169,6 @@ exports[`Dialog > Dialog mobileVue demo works fine 1`] = `
21862169
21872170
<div
21882171
class="t-dialog"
2189-
id="root"
21902172
>
21912173
21922174
@@ -2359,7 +2341,6 @@ exports[`Dialog > Dialog mobileVue demo works fine 1`] = `
23592341
23602342
<div
23612343
class="t-dialog"
2362-
id="root"
23632344
>
23642345
23652346
@@ -2465,7 +2446,6 @@ exports[`Dialog > Dialog mobileVue demo works fine 1`] = `
24652446
24662447
<div
24672448
class="t-dialog"
2468-
id="root"
24692449
>
24702450
24712451
@@ -2571,7 +2551,6 @@ exports[`Dialog > Dialog mobileVue demo works fine 1`] = `
25712551
25722552
<div
25732553
class="t-dialog"
2574-
id="root"
25752554
>
25762555
25772556
@@ -2677,7 +2656,6 @@ exports[`Dialog > Dialog mobileVue demo works fine 1`] = `
26772656
26782657
<div
26792658
class="t-dialog"
2680-
id="root"
26812659
>
26822660
26832661
@@ -2800,7 +2778,6 @@ exports[`Dialog > Dialog mobileVue demo works fine 1`] = `
28002778
28012779
<div
28022780
class="t-dialog"
2803-
id="root"
28042781
>
28052782
28062783
@@ -2968,7 +2945,6 @@ exports[`Dialog > Dialog multiStateVue demo works fine 1`] = `
29682945
29692946
<div
29702947
class="t-dialog"
2971-
id="root"
29722948
>
29732949
29742950
@@ -3074,7 +3050,6 @@ exports[`Dialog > Dialog multiStateVue demo works fine 1`] = `
30743050
30753051
<div
30763052
class="t-dialog"
3077-
id="root"
30783053
>
30793054
30803055
@@ -3180,7 +3155,6 @@ exports[`Dialog > Dialog multiStateVue demo works fine 1`] = `
31803155
31813156
<div
31823157
class="t-dialog"
3183-
id="root"
31843158
>
31853159
31863160
@@ -3286,7 +3260,6 @@ exports[`Dialog > Dialog multiStateVue demo works fine 1`] = `
32863260
32873261
<div
32883262
class="t-dialog"
3289-
id="root"
32903263
>
32913264
32923265
@@ -3409,7 +3382,6 @@ exports[`Dialog > Dialog multiStateVue demo works fine 1`] = `
34093382
34103383
<div
34113384
class="t-dialog"
3412-
id="root"
34133385
>
34143386
34153387

src/dialog/dialog.en-US.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ width | String / Number | - | \- | N
2222
zIndex | Number | - | \- | N
2323
onCancel | Function | | Typescript:`(context: { e: MouseEvent }) => void`<br/> | N
2424
onClose | Function | | Typescript:`(context: DialogCloseContext) => void`<br/>[see more ts definition](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/dialog/type.ts)。<br/>`type DialogEventSource = 'cancel' \| 'overlay'`<br/><br/>`interface DialogCloseContext { trigger: DialogEventSource; e: MouseEvent }`<br/> | N
25+
onClosed | Function | | Typescript:`() => void`<br/> | N
2526
onConfirm | Function | | Typescript:`(context: { e: MouseEvent }) => void`<br/> | N
2627
onOverlayClick | Function | | Typescript:`(context: { e: MouseEvent }) => void`<br/> | N
2728

src/dialog/dialog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ width | String / Number | - | 对话框宽度,示例:320, '500px', '80%' | N
2222
zIndex | Number | - | 对话框层级,Web 侧样式默认为 2500,移动端和小程序样式默认为 1500 | N
2323
onCancel | Function | | TS 类型:`(context: { e: MouseEvent }) => void`<br/>如果“取消”按钮存在,则点击“取消”按钮时触发,同时触发关闭事件 | N
2424
onClose | Function | | TS 类型:`(context: DialogCloseContext) => void`<br/>关闭事件,点击 取消按钮 或 点击蒙层 时触发。[详细类型定义](https://github.com/Tencent/tdesign-mobile-vue/tree/develop/src/dialog/type.ts)。<br/>`type DialogEventSource = 'cancel' \| 'overlay'`<br/><br/>`interface DialogCloseContext { trigger: DialogEventSource; e: MouseEvent }`<br/> | N
25+
onClosed | Function | | TS 类型:`() => void`<br/>组件关闭且动画结束后执行。 | N
2526
onConfirm | Function | | TS 类型:`(context: { e: MouseEvent }) => void`<br/>如果“确认”按钮存在,则点击“确认”按钮时触发 | N
2627
onOverlayClick | Function | | TS 类型:`(context: { e: MouseEvent }) => void`<br/>如果蒙层存在,点击蒙层时触发 | N
2728

src/dialog/dialog.vue

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,11 @@
55
:show-overlay="showOverlay"
66
:overlay-props="overlayProps"
77
:prevent-scroll-through="preventScrollThrough"
8+
:destroy-on-close="destroyOnClose"
89
@close="handleOverlayClick"
10+
@closed="handleClosed"
911
>
10-
<div id="root" :class="`${name}`" :style="rootStyles">
12+
<div :class="`${name}`" :style="rootStyles">
1113
<slot name="top" />
1214
<div v-if="closeBtn" :class="`${name}__close-btn`">
1315
<close-icon @click="handleClose" />
@@ -68,7 +70,7 @@ export default defineComponent({
6870
name,
6971
components: { TPopup, TNode, TButton, CloseIcon },
7072
props: DialogProps,
71-
emits: ['update:visible', 'confirm', 'overlay-click', 'cancel', 'close'],
73+
emits: ['update:visible', 'confirm', 'overlay-click', 'cancel', 'close', 'closed'],
7274
setup(props, context) {
7375
const internalInstance = getCurrentInstance();
7476
const contentNode = computed(() => renderContent(internalInstance, 'default', 'content'));
@@ -104,6 +106,10 @@ export default defineComponent({
104106
context.emit('close', { e, trigger: 'close-btn' });
105107
};
106108
109+
const handleClosed = () => {
110+
context.emit('closed');
111+
};
112+
107113
const handleConfirm = (e: MouseEvent) => {
108114
context.emit('update:visible', false);
109115
context.emit?.('confirm', { e });
@@ -146,6 +152,7 @@ export default defineComponent({
146152
cancelBtnProps,
147153
actionsBtnProps,
148154
handleClose,
155+
handleClosed,
149156
handleConfirm,
150157
handleCancel,
151158
handleOverlayClick,

0 commit comments

Comments
 (0)