要在 element 的 this.$message.success 中实现提示内容的5秒倒计时更新,可以使用 setInterval 来定时更新消息内容。

139 阅读1分钟

要在 elementthis.$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(); // 组件挂载时显示消息
  },
};

代码解析:

  1. data:

    • message: 存储初始提示信息。
    • countdown: 用于存储倒计时的初始秒数(5秒)。
  2. showMessage 方法:

    • 调用 this.$message.success 显示消息,并将消息实例存储在 messageInstance 中。
    • 使用 setInterval 每秒更新一次消息内容,减少 countdown 的值,并更新 messageInstance.message 以显示新的倒计时。
    • 当倒计时达到 0 秒时,使用 clearInterval 停止计时器。
  3. mounted 生命周期钩子:

    • 当组件挂载时,自动调用 showMessage 方法来显示带有倒计时的消息。

这样,提示消息会在显示的5秒内,每秒更新倒计时信息。