diff --git a/packages/message/src/main.js b/packages/message/src/main.js index 3799e7f2e..b6bad3d14 100644 --- a/packages/message/src/main.js +++ b/packages/message/src/main.js @@ -2,6 +2,7 @@ import Vue from 'vue'; import Main from './main.vue'; import { PopupManager } from 'element-ui/src/utils/popup'; import { isVNode } from 'element-ui/src/utils/vdom'; +import { isObject } from 'element-ui/src/utils/types'; let MessageConstructor = Vue.extend(Main); let instance; @@ -44,14 +45,17 @@ const Message = function(options) { }; ['success', 'warning', 'info', 'error'].forEach(type => { - Message[type] = options => { - if (typeof options === 'string') { - options = { - message: options - }; + Message[type] = (options) => { + if (isObject(options) && !isVNode(options)) { + return Message({ + ...options, + type + }); } - options.type = type; - return Message(options); + return Message({ + type, + message: options + }); }; });