点击获取验证码,进行60秒倒计时

效果:

 相关代码:

<template>
  <div class="get-verification-code" :class="{ disabled: isDisabled }" @click="handleClick">
    {{ buttonText }}
  </div>
</template>

<script>
import axios from 'axios';

export default {
  data() {
    return {
      buttonText: "获取验证码",
      isDisabled: false,
      countdownSeconds: 60,
      timer: null
    };
  },
  methods: {
    handleClick() {
      if (!this.isDisabled) {
        // 构造GET请求的URL,替换参数phone
        const url = "xxxxxxxxxxxxxxxxxxxxx"; // 替换为你的URL

        // 发送GET请求
        axios
          .get(url)
          .then((response) => {
            // 请求成功处理逻辑
            console.log(response.data);
            if (response.data.code === 200) {
              const msg = response.data.msg;
              console.log(response.data.msg);
              this.$modal.msgSuccess(msg);
              this.startCountdown();
            } else {
              const msg = response.data.msg;
              console.log(response.data.msg);
              this.$modal.msgSuccess(msg);
              this.buttonText = "重新获取";
            }
          })
          .catch((error) => {
            // 请求失败处理逻辑
            console.error("获取验证码失败", error);
            this.$message.error("获取验证码失败");
            this.buttonText = "重新获取";
          });
      }
    },
    startCountdown() {
      this.isDisabled = true;
      this.countdownSeconds = 60;

      this.timer = setInterval(() => {
        this.countdownSeconds--;
        if (this.countdownSeconds <= 0) {
          clearInterval(this.timer);
          this.buttonText = "获取验证码";
          this.isDisabled = false;
        } else {
          this.buttonText = `${this.countdownSeconds}s`;
        }
      }, 1000);
    }
  },
  beforeDestroy() {
    if (this.timer) {
      clearInterval(this.timer);
    }
  }
};
</script>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值