700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Vue登录页添加验证码

Vue登录页添加验证码

时间:2022-11-01 20:32:04

相关推荐

Vue登录页添加验证码

登录页添加验证码

新建ValidCode组件

内容如下,直接copy即可:

<template><divclass="ValidCode disabled-select":style="`width:${width}; height:${height}`"@click="refreshCode"><spanv-for="(item, index) in codeList":key="index":style="getStyle(item)">{{ item.code }}</span></div></template>​<script>export default {name: 'ValidCode',model: {prop: 'value',event: 'input'},props: {width: {type: String,default: '100px'},height: {type: String,default: '40px'},length: {type: Number,default: 4},refresh: {type: Number}},data () {return {codeList: []}},watch: {refresh () {this.createdCode()}},mounted () {this.createdCode()},methods: {refreshCode () {this.createdCode()},createdCode () {const len = this.lengthconst codeList = []const chars = 'ABCDEFGHJKMNPQRSTWXYZabcdefhijkmnprstwxyz0123456789'const charsLen = chars.length// 生成for (let i = 0; i < len; i++) {const rgb = [Math.round(Math.random() * 220), Math.round(Math.random() * 240), Math.round(Math.random() * 200)]codeList.push({code: chars.charAt(Math.floor(Math.random() * charsLen)),color: `rgb(${rgb})`,fontSize: `${10 + (+[Math.floor(Math.random() * 10)] + 6)}px`,padding: `${[Math.floor(Math.random() * 10)]}px`,transform: `rotate(${Math.floor(Math.random() * 90) - Math.floor(Math.random() * 90)}deg)`})}// 指向this.codeList = codeList// 将当前数据派发出去// console.log(codeList.map(item => item.code).join(''))this.$emit('input', codeList.map(item => item.code).join(''))},getStyle (data) {return `color: ${data.color}; font-size: ${data.fontSize}; padding: ${data.padding}; transform: ${data.transform}`}}}</script>​<style scoped>.ValidCode{display: flex;justify-content: center;align-items: center;cursor: pointer;}.ValidCode span{display: inline-block;}</style>​

在Login.vue里面新增表单

导入组件,新建变量 validCode

新增方法:createValidCode,用来接收组件传过来的验证码并赋值给data中的变量valideCode

在login方法里校验

if (!this.form.validCode) {this.$message.error("请填写验证码")return}if(this.form.validCode.toLowerCase() !== this.validCode.toLowerCase()) {this.$message.error("验证码错误")return}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。