123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566 |
- module.exports = {
- showZanToast(title, timeout) {
- const options = formatParameter(title, timeout);
- // 清除上一轮的计时器
- const { timer = 0 } = this.data.zanToast || {};
- clearTimeout(timer);
- // 弹层设置~
- const zanToast = {
- show: true,
- icon: options.icon,
- image: options.image,
- title: options.title
- };
- this.setData({
- zanToast
- });
- // 传入的显示时长小于0,就认为需要一直显示
- if (timeout < 0) {
- return;
- }
- // 下一轮计时器
- const nextTimer = setTimeout(() => {
- this.clearZanToast();
- }, timeout || 3000);
- this.setData({
- 'zanToast.timer': nextTimer
- });
- },
- // 清除所有 toast
- clearZanToast() {
- const { timer = 0 } = this.data.zanToast || {};
- clearTimeout(timer);
- this.setData({
- 'zanToast.show': false
- });
- },
- // 快捷方法,显示 loading
- showZanLoading(title) {
- const options = formatParameter(title);
- this.showZanToast({
- ...options,
- icon: 'loading'
- });
- }
- };
- function formatParameter(title, timeout = 0) {
- // 如果传入的 title 是对象,那么认为所有的配置属性都在这个对象中了
- if (typeof title === 'object') {
- return title;
- }
- return {
- title,
- timeout
- };
- }
|