60 lines
1.4 KiB
JavaScript
60 lines
1.4 KiB
JavaScript
|
import { VantComponent } from '../common/component';
|
||
|
import { WHITE } from '../common/color';
|
||
|
VantComponent({
|
||
|
props: {
|
||
|
message: String,
|
||
|
background: String,
|
||
|
type: {
|
||
|
type: String,
|
||
|
value: 'danger'
|
||
|
},
|
||
|
color: {
|
||
|
type: String,
|
||
|
value: WHITE
|
||
|
},
|
||
|
duration: {
|
||
|
type: Number,
|
||
|
value: 3000
|
||
|
},
|
||
|
zIndex: {
|
||
|
type: Number,
|
||
|
value: 110
|
||
|
},
|
||
|
safeAreaInsetTop: {
|
||
|
type: Boolean,
|
||
|
value: false
|
||
|
}
|
||
|
},
|
||
|
created() {
|
||
|
const { statusBarHeight } = wx.getSystemInfoSync();
|
||
|
this.setData({ statusBarHeight });
|
||
|
},
|
||
|
methods: {
|
||
|
show() {
|
||
|
const { duration, onOpened } = this.data;
|
||
|
clearTimeout(this.timer);
|
||
|
this.setData({
|
||
|
show: true
|
||
|
}, onOpened);
|
||
|
if (duration > 0 && duration !== Infinity) {
|
||
|
this.timer = setTimeout(() => {
|
||
|
this.hide();
|
||
|
}, duration);
|
||
|
}
|
||
|
},
|
||
|
hide() {
|
||
|
const { onClose } = this.data;
|
||
|
clearTimeout(this.timer);
|
||
|
this.setData({
|
||
|
show: false
|
||
|
}, onClose);
|
||
|
},
|
||
|
onTap(event) {
|
||
|
const { onClick } = this.data;
|
||
|
if (onClick) {
|
||
|
onClick(event.detail);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|