From 4a8826fa029afc966c38c916411893ed6aaea5a0 Mon Sep 17 00:00:00 2001 From: 梁灏 Date: Tue, 5 Mar 2019 09:31:03 +0800 Subject: [PATCH] fixed #4895 --- examples/routers/drawer.vue | 16 +++++++++++++++- src/components/drawer/drawer.vue | 18 +++++++++++++++++- 2 files changed, 32 insertions(+), 2 deletions(-) diff --git a/examples/routers/drawer.vue b/examples/routers/drawer.vue index c1f000d..d25af88 100644 --- a/examples/routers/drawer.vue +++ b/examples/routers/drawer.vue @@ -5,7 +5,7 @@
- +

一些内容

一些内容

一些内容

@@ -209,6 +209,20 @@ }, hrw (w) { console.log(w); + }, + handleBeforeClose () { + return new Promise((resolve, reject) => { + this.$Modal.confirm({ + title: '关闭确认', + content: '您确认要关闭抽屉吗?', + onOk: () => { + resolve(); + }, + onCancel: () => { + reject(); + } + }); + }); } } }; diff --git a/src/components/drawer/drawer.vue b/src/components/drawer/drawer.vue index 09512b9..dd6df41 100644 --- a/src/components/drawer/drawer.vue +++ b/src/components/drawer/drawer.vue @@ -106,7 +106,8 @@ draggable: { type: Boolean, default: false - } + }, + beforeClose: Function, }, data () { return { @@ -176,6 +177,21 @@ }, methods: { close () { + if (!this.beforeClose) { + return this.handleClose(); + } + + const before = this.beforeClose(); + + if (before && before.then) { + before.then(() => { + this.handleClose(); + }); + } else { + this.handleClose(); + } + }, + handleClose () { this.visible = false; this.$emit('input', false); this.$emit('on-close'); -- libgit2 0.21.4