cheetah-framework
Version:
Cheetah Framework JS used in all our applications
65 lines (51 loc) • 1.71 kB
JavaScript
import { Message as ElMessage } from 'element-ui'
import { Notification as ElNotification } from 'element-ui'
/**
* possible options here:
* http://element.eleme.io/#/en-US/component/message
*/
class MessageClass {
info (options, useMessageInstead = false) {
useMessageInstead = useMessageInstead || false
const method = useMessageInstead ? ElMessage : ElNotification
method(buildOptions(options, 'info'))
}
success (options, useMessageInstead = false) {
useMessageInstead = useMessageInstead || false
const method = useMessageInstead ? ElMessage : ElNotification
method(buildOptions(options, 'success'))
}
warning (options, useMessageInstead = false) {
useMessageInstead = useMessageInstead || false
const method = useMessageInstead ? ElMessage : ElNotification
method(buildOptions(options, 'warning'))
}
error (options, useMessageInstead = false) {
useMessageInstead = useMessageInstead || false
const method = useMessageInstead ? ElMessage : ElNotification
method(buildOptions(options, 'error'))
}
}
function buildOptions (options, type) {
if (typeof options === 'string') {
return {
message: options,
type,
offset: 120,
...(type === 'success' ? { position: 'bottom-right', duration: 1500, offset: 0 } : {})
}
}
if (type === 'success') {
options.position = options.position || 'bottom-right'
options.duration = options.duration || 1500
}
if (typeof options.offset === 'undefined') {
options.offset = _.get(options, 'position', '').indexOf('bottom') === -1 ? 120 : 0
}
return {
...options,
type
}
}
const Message = new MessageClass()
export default Message