您好,欢迎来到纷纭教育。
搜索
您的当前位置:首页vue实现倒计时获取验证码

vue实现倒计时获取验证码

来源:纷纭教育

项目需求,做一个倒计时生成四位随机验证码,点击后禁止重复点击,倒计时结束后可以继续点击

话不多说,直接上代码

<template>
  <div>
    <button :disabled="isSend" @click="countDown">
      {{ codeName }}
    </button>
  </div>
</template>
<script>
export default {
  data() {
    return {
      isSend: false, //禁用
      codeName: "发送验证码",
      totalTime: 10, //一般是60
      timer: "", //定时器
    };
  },
  methods: {
    // 验证码倒计时
    countDown() {
      if (this.isSend) return;
      // this.getCode() // 获取验证码的接口
      this.isSend = true;
      this.codeName = this.totalTime + "s后重新发送";
      //生成随机验证码
      const len = 4;
      const codeList = [];
      const chars = "ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz01234567";
      const charsLen = chars.length;
      for (let i = 0; i < len; i++) {
        codeList.push(chars.charAt(Math.floor(Math.random() * charsLen)));
      }
      console.log(codeList.join(""));
      //   倒计时
      this.timer = setInterval(() => {
        this.totalTime--;
        this.codeName = this.totalTime + "s后重新发送";
        if (this.totalTime < 0) {
          clearInterval(this.timer);
          this.codeName = "重新发送验证码";
          this.totalTime = 10;
          this.isSend = false;
        }
      }, 1000);
    },
  },
};
</script>

<style lang="less" scoped>
</style>

生成一个随机的颜色

   // 生成一个随机的颜色
    randomColor() {
      const r = Math.floor(Math.random() * (255 - 0) + 0);
      const g = Math.floor(Math.random() * (255 - 0) + 0);
      const b = Math.floor(Math.random() * (255 - 0) + 0);
      console.log("rgb(" + r + "," + g + "," + b + ")");
    },

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务