update the master branch to the latest
This commit is contained in:
parent
67d534df27
commit
23a0ba9831
611 changed files with 122648 additions and 0 deletions
108
src/components/message/index.js
Normal file
108
src/components/message/index.js
Normal file
|
@ -0,0 +1,108 @@
|
|||
import Notification from '../base/notification';
|
||||
|
||||
const prefixCls = 'ivu-message';
|
||||
const iconPrefixCls = 'ivu-icon';
|
||||
const prefixKey = 'ivu_message_key_';
|
||||
|
||||
const defaults = {
|
||||
top: 24,
|
||||
duration: 1.5
|
||||
};
|
||||
|
||||
let messageInstance;
|
||||
let name = 1;
|
||||
|
||||
const iconTypes = {
|
||||
'info': 'ios-information-circle',
|
||||
'success': 'ios-checkmark-circle',
|
||||
'warning': 'ios-alert',
|
||||
'error': 'ios-close-circle',
|
||||
'loading': 'ios-loading'
|
||||
};
|
||||
|
||||
function getMessageInstance () {
|
||||
messageInstance = messageInstance || Notification.newInstance({
|
||||
prefixCls: prefixCls,
|
||||
styles: {
|
||||
top: `${defaults.top}px`
|
||||
}
|
||||
});
|
||||
|
||||
return messageInstance;
|
||||
}
|
||||
|
||||
function notice (content = '', duration = defaults.duration, type, onClose = function () {}, closable = false, render = function () {}) {
|
||||
const iconType = iconTypes[type];
|
||||
|
||||
// if loading
|
||||
const loadCls = type === 'loading' ? ' ivu-load-loop' : '';
|
||||
|
||||
let instance = getMessageInstance();
|
||||
|
||||
instance.notice({
|
||||
name: `${prefixKey}${name}`,
|
||||
duration: duration,
|
||||
styles: {},
|
||||
transitionName: 'move-up',
|
||||
content: `
|
||||
<div class="${prefixCls}-custom-content ${prefixCls}-${type}">
|
||||
<i class="${iconPrefixCls} ${iconPrefixCls}-${iconType} ${loadCls}"></i>
|
||||
<span>${content}</span>
|
||||
</div>
|
||||
`,
|
||||
render: render,
|
||||
onClose: onClose,
|
||||
closable: closable,
|
||||
type: 'message'
|
||||
});
|
||||
|
||||
// 用于手动消除
|
||||
return (function () {
|
||||
let target = name++;
|
||||
|
||||
return function () {
|
||||
instance.remove(`${prefixKey}${target}`);
|
||||
};
|
||||
})();
|
||||
}
|
||||
|
||||
export default {
|
||||
name: 'Message',
|
||||
|
||||
info (options) {
|
||||
return this.message('info', options);
|
||||
},
|
||||
success (options) {
|
||||
return this.message('success', options);
|
||||
},
|
||||
warning (options) {
|
||||
return this.message('warning', options);
|
||||
},
|
||||
error (options) {
|
||||
return this.message('error', options);
|
||||
},
|
||||
loading (options) {
|
||||
return this.message('loading', options);
|
||||
},
|
||||
message(type, options){
|
||||
if (typeof options === 'string') {
|
||||
options = {
|
||||
content: options
|
||||
};
|
||||
}
|
||||
return notice(options.content, options.duration, type, options.onClose, options.closable, options.render);
|
||||
},
|
||||
config (options) {
|
||||
if (options.top || options.top === 0) {
|
||||
defaults.top = options.top;
|
||||
}
|
||||
if (options.duration || options.duration === 0) {
|
||||
defaults.duration = options.duration;
|
||||
}
|
||||
},
|
||||
destroy () {
|
||||
let instance = getMessageInstance();
|
||||
messageInstance = null;
|
||||
instance.destroy('ivu-message');
|
||||
}
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue