From 9e32cccc730bfc0419e989a4d6e747805d7fbe10 Mon Sep 17 00:00:00 2001 From: pengchongfu Date: Tue, 4 Apr 2017 18:00:01 +0800 Subject: [PATCH] Message: add ability to close all Messages #3941 (#3966) --- examples/docs/en-US/message.md | 1 + examples/docs/zh-CN/message.md | 1 + packages/message/src/main.js | 6 ++++++ test/unit/specs/message.spec.js | 18 ++++++++++++++++++ 4 files changed, 26 insertions(+) diff --git a/examples/docs/en-US/message.md b/examples/docs/en-US/message.md index 6a0df8112..2e6d704aa 100644 --- a/examples/docs/en-US/message.md +++ b/examples/docs/en-US/message.md @@ -191,6 +191,7 @@ import { Message } from 'element-ui'; ``` In this case you should call `Message(options)`. We have also registered methods for different types, e.g. `Message.success(options)`. +You can call `Message.closeAll()` to manually close all the instances. ### Options | Attribute | Description | Type | Accepted Values | Default | diff --git a/examples/docs/zh-CN/message.md b/examples/docs/zh-CN/message.md index 62e0457a9..7e402d895 100644 --- a/examples/docs/zh-CN/message.md +++ b/examples/docs/zh-CN/message.md @@ -191,6 +191,7 @@ import { Message } from 'element-ui'; ``` 此时调用方法为 `Message(options)`。我们也为每个 type 定义了各自的方法,如 `Message.success(options)`。 +并且可以调用 `Message.closeAll()` 手动关闭所有实例。 ### Options | 参数 | 说明 | 类型 | 可选值 | 默认值 | diff --git a/packages/message/src/main.js b/packages/message/src/main.js index b4e33525d..944c2bbf4 100644 --- a/packages/message/src/main.js +++ b/packages/message/src/main.js @@ -58,4 +58,10 @@ Message.close = function(id, userOnClose) { } }; +Message.closeAll = function() { + for (let i = instances.length - 1; i >= 0; i--) { + instances[i].close(); + } +}; + export default Message; diff --git a/test/unit/specs/message.spec.js b/test/unit/specs/message.spec.js index 5612b1f74..65be7e142 100644 --- a/test/unit/specs/message.spec.js +++ b/test/unit/specs/message.spec.js @@ -41,6 +41,24 @@ describe('Message', () => { }, 500); }); + it('close all', done => { + Message({ + message: '夏天', + duration: 0 + }); + Message({ + message: '淑女', + duration: 0 + }); + setTimeout(() => { + Message.closeAll(); + setTimeout(() => { + expect(document.querySelector('.el-message')).to.not.exist; + done(); + }, 500); + }, 500); + }); + it('create', () => { Message('娜梅莉亚'); expect(document.querySelector('.el-message')).to.exist;