Component({ properties: { // 提示内容 content: { type: String, value: '' }, // 容器背景颜色 containerBgColor: { type: String, value: '#e3e3e3' }, // 背景颜色 bgColor: { type: String, value: '#CA4B15' }, // 文字颜色 textColor: { type: String, value: '#FFFFFF' }, // 图标路径 iconPath: { type: String, value: '../../pages/images/sysIcon_b11.png' }, // 显示时长(毫秒),显示多久后开始淡出 duration: { type: Number, value: 1000 }, // 淡出动画时长(毫秒) fadeOutDuration: { type: Number, value: 1000 } }, data: { isShow: false, alertClass: '' }, data: { isShow: false, alertClass: '', isProcessing: false // 新增标志,表示是否正在处理提示 }, methods: { // 显示提示 showAlert: function(content) { const that = this; // 如果当前已有提示在显示或处理中,则忽略此次调用 if (this.data.isProcessing) { return; } // 标记为正在处理中 this.setData({ isProcessing: true }); // 如果传入了content参数,则更新content属性 if (content) { this.setData({ content: content }); } // 显示提示 this.setData({ isShow: true, alertClass: '' }); // 设置定时器,显示一段时间后开始淡出 setTimeout(function() { that.setData({ alertClass: 'alert-fadeout' }); // 淡出动画结束后,完全隐藏元素 setTimeout(function() { that.setData({ isShow: false, alertClass: '', isProcessing: false // 处理完成,重置标志 }); }, that.data.fadeOutDuration); }, that.data.duration); } } });