45 lines
924 B
JavaScript
45 lines
924 B
JavaScript
|
const default_data = {
|
||
|
visible: false,
|
||
|
content: '',
|
||
|
duration: 2,
|
||
|
type: 'default', // default || success || warning || error
|
||
|
};
|
||
|
|
||
|
let timmer = null;
|
||
|
|
||
|
Component({
|
||
|
externalClasses: ['i-class'],
|
||
|
|
||
|
data: {
|
||
|
...default_data
|
||
|
},
|
||
|
|
||
|
methods: {
|
||
|
handleShow (options) {
|
||
|
const { type = 'default', duration = 2 } = options;
|
||
|
|
||
|
this.setData({
|
||
|
...options,
|
||
|
type,
|
||
|
duration,
|
||
|
visible: true
|
||
|
});
|
||
|
|
||
|
const d = this.data.duration * 1000;
|
||
|
|
||
|
if (timmer) clearTimeout(timmer);
|
||
|
if (d !== 0) {
|
||
|
timmer = setTimeout(() => {
|
||
|
this.handleHide();
|
||
|
timmer = null;
|
||
|
}, d);
|
||
|
}
|
||
|
},
|
||
|
|
||
|
handleHide () {
|
||
|
this.setData({
|
||
|
...default_data
|
||
|
});
|
||
|
}
|
||
|
}
|
||
|
});
|