You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
119 lines
3.2 KiB
119 lines
3.2 KiB
/** |
|
* toast提示 |
|
* |
|
* Created by GUY on 2015/9/7. |
|
* @class BI.Toast |
|
* @extends BI.Tip |
|
*/ |
|
BI.Toast = BI.inherit(BI.Tip, { |
|
_const: { |
|
closableMinWidth: 146, |
|
minWidth: 100, |
|
closableMaxWidth: 410, |
|
maxWidth: 400, |
|
}, |
|
|
|
_defaultConfig: function () { |
|
return BI.extend(BI.Toast.superclass._defaultConfig.apply(this, arguments), { |
|
extraCls: "bi-toast", |
|
text: "", |
|
level: "success", // success或warning |
|
autoClose: true, |
|
closable: null, |
|
textHeight: 20, |
|
vgap: 10, |
|
innerHgap: 4, |
|
hgap: 8, |
|
}); |
|
}, |
|
|
|
render: function () { |
|
var self = this, o = this.options, c = this._const; |
|
this.element.css({ |
|
minWidth: BI.pixFormat(o.closable ? c.closableMinWidth : c.minWidth), |
|
maxWidth: BI.pixFormat(o.closable ? c.closableMaxWidth : c.maxWidth), |
|
}); |
|
this.element.addClass("toast-" + o.level); |
|
function fn(e) { |
|
e.stopPropagation(); |
|
e.stopEvent(); |
|
|
|
return false; |
|
} |
|
this.element.bind({ |
|
click: fn, |
|
mousedown: fn, |
|
mouseup: fn, |
|
mouseover: fn, |
|
mouseenter: fn, |
|
mouseleave: fn, |
|
mousemove: fn, |
|
}); |
|
var cls; |
|
switch (o.level) { |
|
case "success": |
|
cls = "toast-success-font"; |
|
break; |
|
case "error": |
|
cls = "toast-error-font"; |
|
break; |
|
case "warning": |
|
cls = "toast-warning-font"; |
|
break; |
|
case "loading": |
|
cls = "toast-loading-font anim-rotate"; |
|
break; |
|
case "normal": |
|
default: |
|
cls = "toast-message-font"; |
|
break; |
|
} |
|
|
|
function hasCloseIcon() { |
|
return o.closable === true || (o.closable === null && o.autoClose === false); |
|
} |
|
var items = [{ |
|
type: "bi.icon_label", |
|
cls: cls + " toast-icon", |
|
height: o.textHeight, |
|
}, { |
|
el: BI.isPlainObject(o.text) ? o.text : { |
|
type: "bi.label", |
|
whiteSpace: "normal", |
|
text: o.text, |
|
textHeight: o.textHeight, |
|
textAlign: "left", |
|
}, |
|
}]; |
|
|
|
var columnSize = ["", "fill"]; |
|
|
|
if (hasCloseIcon()) { |
|
items.push({ |
|
type: "bi.icon_button", |
|
cls: "close-font toast-icon", |
|
handler: function () { |
|
self.destroy(); |
|
}, |
|
height: o.textHeight, |
|
}); |
|
columnSize.push(""); |
|
} |
|
|
|
return { |
|
type: "bi.horizontal", |
|
horizontalAlign: BI.HorizontalAlign.Stretch, |
|
items: items, |
|
hgap: o.hgap, |
|
vgap: o.vgap, |
|
innerHgap: o.innerHgap, |
|
columnSize: columnSize, |
|
}; |
|
}, |
|
|
|
beforeDestroy: function () { |
|
this.fireEvent(BI.Toast.EVENT_DESTORY); |
|
}, |
|
}); |
|
BI.Toast.EVENT_DESTORY = "EVENT_DESTORY"; |
|
BI.shortcut("bi.toast", BI.Toast);
|
|
|