代码展示
<template>
<canvas ref="canvas"></canvas>
</template>
<script>
export default {
data(){
return {
Code:""
}
},
mounted(){
this.Code = this.createCaptcha();
},
methods: {
generateCaptcha() {
let captcha = '';
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
for (let i = 0; i < 4; i++) {
captcha += characters.charAt(Math.floor(Math.random() * characters.length));
}
return captcha;
},
createCaptcha() {
const canvas = this.$refs.canvas
const context = canvas.getContext('2d');
const captcha = this.generateCaptcha();
context.fillStyle = '#f5f5f5';
context.fillRect(0, 0, canvas.width, canvas.height);
context.font = 'bold 24px Arial';
context.fillStyle = '#333';
context.textAlign = 'center';
context.textBaseline = 'middle';
context.fillText(captcha, canvas.width / 2, canvas.height / 2);
for (let i = 0; i < 6; i++) {
context.strokeStyle = this.getRandomColor();
context.beginPath();
context.moveTo(Math.random() * canvas.width, Math.random() * canvas.height);
context.lineTo(Math.random() * canvas.width, Math.random() * canvas.height);
context.stroke();
}
return captcha;
},
getRandomColor() {
const letters = '0123456789ABCDEF';
let color = '#';
for (let i = 0; i < 6; i++) {
color += letters[Math.floor(Math.random() * 16)];
}
return color;
}
}
}
</script>
<style>
</style>