vue 前端实现login页登陆 验证码

实现效果
在这里插入图片描述

// template
<el-form :model="loginForm" :rules="fieldRules" ref="loginForm" label-position="left" label-width="0px" class="login-container"><span class="tool-bar"></span><h2 class="title">用户登陆</h2><el-form-item prop="account"><el-input type="text" v-model.trim="loginForm.account" auto-complete="false" placeholder="账号"></el-input></el-form-item><el-form-item prop="password" class="item-m10"><el-input type="password" v-model.trim="loginForm.password" auto-complete="false" placeholder="密码"></el-input></el-form-item><el-form-item prop="code" align="left" style="margin-top: 20px"><el-input v-model="loginForm.code" style="width: 170px" placeholder="验证码,点击图片刷新"></el-input><el-tag class="login-tag-code" @click="getCode">{{ viewCode }}</el-tag></el-form-item><div class="checked-item"><el-checkbox v-model="checked">记住密码</el-checkbox></div><el-form-item style="width: 100%" class="btn-item"><el-button style="width: 100%" @click.native.prevent="loginSubmit" :loading="loading">登录</el-button></el-form-item>// js
// ---------分割线data () {return {viewCode: '',loginForm: {account: '',password: '',src: '',code: ''},fieldRules: {account: [{ required: true, message: '请输入账号', trigger: 'blur' }],password: [{ required: true, message: '请输入密码', trigger: 'blur' }]},checked: false,// 加载中的标志loading: false}},// ------ 分割线methods: {loginSubmit () {if (!this.loginForm.account || !this.loginForm.password) {this.$message.error('账号或密码不能为空!')return}if (!this.loginForm.code || this.loginForm.code !== this.viewCode) {this.$message.error('验证码不正确!')return}this.loading = truelet userInfo = {account: this.loginForm.account,password: this.loginForm.password}//登陆接口this.$api.login.login(userInfo).then((res) => {if (this.checked) {let rememberInfo = JSON.stringify({ ...userInfo })localStorage.setItem('rememberInfo', rememberInfo) // 记住密码时 保存login} else {localStorage.removeItem('rememberInfo')}this.$router.push('/') // 登录成功,跳转到主页 this.loading = false}).catch((err) => {this.$message({ message: err.message, type: 'error' })})},//获取验证码getCode () {this.viewCode = ''let codeString = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'let codeArray = codeString.split('')let num = codeArray.lengthlet newCodeArray = []for (let i = 0; i < 5; i++) {let index = Math.floor(Math.random() * num)newCodeArray.push(codeArray[index])}this.viewCode = newCodeArray.join('')},},mounted () {this.getCode()if (localStorage.getItem('rememberInfo')) {// 有上次登录信息 显示上次登录let rememberData = JSON.parse(localStorage.getItem('rememberInfo'))const { account, password } = rememberDatathis.loginForm.account = accountthis.loginForm.password = password}}

样式代码省略。。。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/194235.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

不平衡数据处理

机器学习中一个常见的问题是数据不平衡&#xff0c;其中一个类的数量明显超过其他类&#xff0c;这可能导致有偏见的模型和较差的泛化。实践中可以通过各种Python库来帮助有效地处理不平衡数据。 1、imbalanced-learn imbalanced-learn是scikit-learn的扩展&#xff0c;提供了…

【动态规划】LeetCode-面试题 17.16. 按摩师

&#x1f388;算法那些事专栏说明&#xff1a;这是一个记录刷题日常的专栏&#xff0c;每个文章标题前都会写明这道题使用的算法。专栏每日计划至少更新1道题目&#xff0c;在这立下Flag&#x1f6a9; &#x1f3e0;个人主页&#xff1a;Jammingpro &#x1f4d5;专栏链接&…

网络攻击有什么危害,该如何防御

随着互联网的发展&#xff0c;网络安全成为大家关注的焦点。为了确保网络安全&#xff0c;我们需要采取一系列的防护措施。以下是几种常见的网络安全防护措施。 网络安全攻击的主要方式 垃圾邮件和钓鱼攻击&#xff1a;攻击者通过向用户发送大量的垃圾邮件或伪装成合法公司或…

软件工程单选多选补充

2. 4. 5. 6. 7. 8. 9. 10. 12。 13.

〖大前端 - 基础入门三大核心之JS篇㊻〗- JS + CSS实现动画

说明&#xff1a;该文属于 大前端全栈架构白宝书专栏&#xff0c;目前阶段免费&#xff0c;如需要项目实战或者是体系化资源&#xff0c;文末名片加V&#xff01;作者&#xff1a;不渴望力量的哈士奇(哈哥)&#xff0c;十余年工作经验, 从事过全栈研发、产品经理等工作&#xf…

[Rust] 可迭代类型, 迭代器, 如何正确的创建自定义可迭代类型

在 Rust 中, for 语句的执行依赖于类型对于 IntoIterator 的实现, 如果某类型实现了这个 trait, 那么它就可以直接使用 for 进行循环. 直接实现 在 Rust 中, 如果一个类型实现了 Iterator, 那么它会被同时实现 IntoIterator, 具体逻辑是返回自身, 因为自身就是迭代器. 但是如…

MDETR 论文翻译及理解

题目Abstract1. Introduction2. Method2.1. Background2.2. MDETR2.2.1 Architecture2.2.2 Training 3. Experiments3.1. Pre-training Modulated Detection 预训练调制检测3.2. Downstream Tasks3.2.1 Few-shot transfer for long-tailed detection 4. Related work5. Conclus…

web前端之JavaScrip中的闭包

MENU 闭包--笔试-11defineReactive函数&#xff0c;利用闭包封装Object.defineProperty()闭包--节流函数--笔试-10闭包的定义JavaScript闭包的9大经典使用场景 闭包–笔试-11 function fun() { var n 9; // js 中强行给一个未声明的变量赋值&#xff0c;// 程序不会报错// 并…

程序员养生指南

1. 引言 程序员的工作环境通常是长时间坐在电脑前&#xff0c;面临着工作压力和紧张的项目期限。这种工作方式可能导致身体和心理健康问题。为了应对这些挑战&#xff0c;养生对程序员来说至关重要。 2. 坐姿与体态 正确的坐姿和体态对于减轻颈椎、腰椎和手腕的压力至关重要…

微机原理——定时器8253(8254)学习1

目录 定时类型 8253内部结构框图 8253命令字 六种工作方式及输出波形 计数初值的计算与装入 8253的初始化 定时类型 可编程定时器8253&#xff1a;&#xff08;内部采用的是16位 减法计数器&#xff09; 8253内部结构框图 8253命令字 8253有三个命令字&#xff1a;方式命…

HGNN+笔记

1.Title HGNN: General Hypergraph Neural Networks&#xff08;Yue Gao; Yifan Feng; Shuyi Ji; Rongrong Ji&#xff09;【IEEE Transactions on Pattern Analysis and Machine Intelligence 2023】 2.Conclusion This paper extend the original conference version HGNN,…

Linux打包压缩与搜索命令

tar 命令 tar [选项] [文件]选项: -c 产生.tar打包文件 -v 显示详细信息 -f 指定压缩后的文件名 -z 打包同时压缩 Gzip -x 解包.tar文件 示例1 压缩多个文件 tar -zcvf XXX.tar.gz n1.txt n2.txt示例2 压缩目录 tar -zcvf test.java.tar.gz test1示例3 解压&#…

大数据-hive

简介 hive是基于Hadoop的一个数据仓库工具&#xff0c;用来进行数据提取、转化、加载&#xff0c;这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表&#xff0c;并提供SQL查询功能&#xff0c;能将SQL…

C语言练习题

C语言练习题 文章目录 C语言练习题题目一题目二题目三题目四题目五题目六题目八 题目一 #include <stdio.h> //VS2022,默认对齐数为8字节 union Un {short s[7];int n; };int main() {printf("%zd", sizeof(union Un));return 0; }代码运行结果:> 16 sizeo…

新手村之SQL——增删改查条件查询

1.查询不同行——DISTINCT SELECT DISTINCT column_name FROM table_nameDISTINCT 关键字需位于列名之前。 2.在指定列中插入数据——INSERT INSERT INTO courses (name, student_count, created_at, teacher_id) VALUES (Flash Sale, 100, 2018-01-01, 5);3.更新数据——UPD…

用Python来解一元二次方程

1 问题 如何利用python 来解一元二次方程组。 2 方法 解一元二次方程是高中数学中的重要内容&#xff0c;也是数学中的基础知识之一。在Python语言中&#xff0c;我们可以使用数学库中的函数来解一元二次方程。一元二次方程的一般形式为&#xff1a;axbxc0&#xff0c;其中a、b…

基于Springboot + vue的汽车资讯网站

qq&#xff08;2829419543&#xff09;获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;springboot 前端&#xff1a;采用vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xf…

基于springboot实现的垃圾分类管理系统

一、系统架构 前端&#xff1a;html | layer | jquery | css 后端&#xff1a;springboot | mybatis 环境&#xff1a;jdk1.8 | mysql | maven 二、 代码及数据库 三、功能介绍 01. 登录页 02. 系统设置-用户管理 03. 系统设置-页面管理 04. 系统设置-角色管…

【Openstack Train安装】一、虚拟机创建

Openstack是一个云平台管理的项目&#xff0c;它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。Openstack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者&#xff0c;这些机构与个人将 Openstack作为…

[Java] 模拟Jdk 以及 CGLib 代理原理

文章目录 JDKarthas 反编译jdk代理对象arthas 反编译的结果是&#xff1a; CGlibmethodProxy 不经过反射调用方法的原理MethodProxy原理模拟 结合目标对象使用模拟结合 代理对象使用 JDK Jdk代理的最简单模拟&#xff0c; 由前文可知 JDK动态代理需要实现接口&#xff0c;所以…