项目需求,做一个倒计时生成四位随机验证码,点击后禁止重复点击,倒计时结束后可以继续点击
话不多说,直接上代码
<template>
<div>
<button :disabled="isSend" @click="countDown">
{{ codeName }}
</button>
</div>
</template>
<script>
export default {
data() {
return {
isSend: false,
codeName: "发送验证码",
totalTime: 10,
timer: "",
};
},
methods: {
countDown() {
if (this.isSend) return;
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 + ")");
},