要在 element 的 this.$message.success 中实现提示内容的5秒倒计时更新,可以使用 setInterval 来定时更新消息内容。以下是实现这个功能的代码示例:
export default {
data() {
return {
message: '该月度数据已驳回,需填报单位重新填报后审核。数据修正期间该月度数据不计入统计。(5S)',
countdown: 5,
};
},
methods: {
showMessage() {
const messageInstance = this.$message.success({
message: this.message,
duration: 5000, // 设置持续时间为5秒
});
const interval = setInterval(() => {
this.countdown -= 1;
messageInstance.message = `该月度数据已驳回,需填报单位重新填报后审核。数据修正期间该月度数据不计入统计。(${this.countdown}S)`;
if (this.countdown === 0) {
clearInterval(interval); // 倒计时结束时清除定时器
}
}, 1000);
},
},
mounted() {
this.showMessage(); // 组件挂载时显示消息
},
};
代码解析:
-
data:
message: 存储初始提示信息。countdown: 用于存储倒计时的初始秒数(5秒)。
-
showMessage 方法:
- 调用
this.$message.success显示消息,并将消息实例存储在messageInstance中。 - 使用
setInterval每秒更新一次消息内容,减少countdown的值,并更新messageInstance.message以显示新的倒计时。 - 当倒计时达到 0 秒时,使用
clearInterval停止计时器。
- 调用
-
mounted 生命周期钩子:
- 当组件挂载时,自动调用
showMessage方法来显示带有倒计时的消息。
- 当组件挂载时,自动调用
这样,提示消息会在显示的5秒内,每秒更新倒计时信息。