显示结果:

具体代码可以根据vue element admin源码进行更改,下面是页面代码

<el-form ref="loginForm" :model="loginForm" class="login-form" auto-complete="on" label-position="left" ><div class="title-container"><h3 class="title">系统登录</h3><div class="login_header"><a @click="cur=true" :class="{active:cur==true}">密码登录</a><a @click="cur=false" :class="{active:cur==false}">短信登录</a></div></div><div class="login_content"><!-- 在cur==0时此板块显示 其他时候此板块不显示 --><div v-show="cur==true" class="Cbody_item"><el-form-item prop="mobile"><span class="svg-container"><svg-icon icon-class="user" /></span><el-input  ref="mobile" v-model="loginForm.mobile" placeholder="请输入手机号" name="mobile" type="text" tabindex="1" auto-complete="on"/></el-form-item><el-form-item prop="password"><span class="svg-container"><svg-icon icon-class="password" /></span><el-input :key="passwordType" ref="password" v-model="loginForm.password" :type="passwordType" placeholder="请输入密码" name="password" tabindex="2" auto-complete="on" @keyup.enter.native="handleLogin" /><span class="show-pwd" @click="showPwd"><svg-icon :icon-class="passwordType === 'password' ? 'eye' : 'eye-open'" /></span></el-form-item></div><!-- 在cur==1时此板块显示 其他时候此板块不显示 --><div v-show="cur==false" class="Cbody_item"><el-form-item prop="mobile"><span class="svg-container"><svg-icon icon-class="user" /></span><el-input ref="mobile" v-model="loginForm.mobile" placeholder="请输入手机号" name="mobile" type="text" tabindex="1" auto-complete="on"/></el-form-item><el-form-item prop="code"><span class="svg-container"><svg-icon icon-class="password" /></span><el-input ref="code" v-model="loginForm.code" type="text" placeholder="请输入验证码" name="code" abindex="2" maxlength="6" auto-complete="on" @keyup.enter.native="handleLogin" /><span class="show-pwd"><el-button :loading="sending" :disabled="sendDisabled" size="small" @click="onSendSms">{{ sendButtonText }}</el-button></span></el-form-item></div></div><el-button :loading="loading" type="primary" style="width:100%;margin-bottom:30px;" @click.native.prevent="handleLogin">登录</el-button></el-form>

js业务逻辑

<script>
import { sendSms } from "@/api/user";
import Cookie from "js-cookie";
import moment from "moment";export default {name: "Login",data() {return {loginForm: {mobile: "",// 手机号code: "",// 验证码password: '' //密码},cur:true,//true代表密码, false代表短信sending: false,sendDisabled: false,loading: false,timer: 0,passwordType: 'password',redirect: undefined};},computed: {sendButtonText() {if (this.timer === 0) {return "发送验证码";} else {return `${this.timer}秒后重发`;}}},watch: {$route: {handler: function(route) {this.redirect = route.query && route.query.redirect;},immediate: true},timer(num) {if (num > 0) {setTimeout(() => {this.timer = --num;}, 1000);}}},created() {const lastSendTime = Cookie.get("last-send-time");if (lastSendTime) {const timer = 60 - moment().diff(moment(lastSendTime), "seconds");this.timer = timer > 0 ? timer : 0;}},methods: {onSendSms() {this.loginWay = false;this.$refs.loginForm.validateField("mobile", err => {if (!err) {this.sending = true;const { mobile } = this.loginForm;sendSms({ mobile }).then(() => {this.$message.success("短信发送成功,请注意查收");Cookie.set("last-send-time", new Date());this.timer = 60;}).catch(e => {this.$message.error("网络异常");console.log(e);}).finally(() => (this.sending = false));}});},showPwd() {this.loginWay = true;if (this.passwordType === 'password') {this.passwordType = ''} else {this.passwordType = 'password'}this.$nextTick(() => {this.$refs.password.focus()})},handleLogin() {this.$refs.loginForm.validate(valid => {if (valid) {this.loading = true;this.$store.dispatch("这里是登录地址", this.loginForm).then(() => {this.$router.push({ path: '这里是登录成功跳转的页面' })this.loading = false;}).catch(() => {this.loading = false;});} else {console.log("error submit!!");return false;}});}}
};
</script>

别忘了修改页面样式,否则页面显示会有问题

<style>
a{color: #fff;margin: 50px;
}
.login_header{margin-bottom: 30px;text-align: center;
}
.login_header span{margin-right: 20px;cursor: pointer;
}
.Cbody_item{border: 0px solid #999;overflow: hidden;
}
.active{color:#fff;padding-bottom: 10px;border-bottom: 3px solid #fff;
}
</style>

以上内容就是整体的登录页面修改

vue element admin登录方式切换(密码登录或短信登录)相关推荐

  1. 最新京东短信登录,免费送JDCK获取短信登录

    ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓ 上车地址:http://jdck.51kaniqy.com/ 一键部署脚本命令 安装傻妞: 一.傻妞一键安装 二.配置傻妞 三.对接青龙面板 四 ...

  2. 青龙2.11.3版本对接傻妞+go-cqhttp+短信登录(Maiark)(兔子)+本地服务器直连GitHub

    ​ 目录 ​青龙面板常用指令 装面板前的准备 安装青龙面板 傻妞机器人安装教程: 芝士配置和命令 对接nodebot机器人 2.安装pm2 4.安装go -cqhttp 服务器下载go-cqhttp ...

  3. 技术基础篇(二)之用户短信登录

    需求分析 1.登录效果图 2.登录需求 登录方式:手机号码+手机验证码 3.从登录model中获取手机号和验证码,首先判断手机号或验证码是否为空,其次判断验证码与输入验证码是否一致, 4.如果没有注册 ...

  4. MySQL5.7.12新密码登录方式及密码策略

    MySQL5.7.12新密码登录方式及密码策略 在Centos6.6上安装MySQL5.7.12时,遇到了一个问题 安装后在/root目录下没有发现有.mysql_secret这个文件,所以没有没法按 ...

  5. 腾讯云Windows/Linux服务器登录方式及密码获取方法

    腾讯云服务器操作系统不同登录方式也不同,Windows服务器只能是密码登录,Linux服务器可选密码登录也可以选择SSH密匙登录,腾讯云百科来详细说下腾讯云服务器登录方式及密码查看获取方法: 腾讯云服 ...

  6. vue实现短信登录和密码登录

    效果图如下 短信验证和密码验证切换是根据loginWay来判断的,若是true代表短信登陆, false代表密码,手机号,用户名等用正则来验证 <template><div clas ...

  7. Vue Element Admin 使用mock模块模拟数据

    Mock 数据是前端开发过程中必不可少的一环,是分离前后端开发的关键链路.通过预先跟服务器端约定好的接口,模拟请求数据甚至逻辑,能够让前端开发更加独立自主,不会被服务端的开发所阻塞. vue-elem ...

  8. (5)安装获取CK的方式短信登录【2022年1月12日更新】

    这节内容大致上是分两种方式安装一个是手动安装,一个是一键脚本安装,教程末尾再教大家怎么样做一个页面去拉韭菜来挂机. 因为使用的机器人程序是qqbot对接诺兰大佬的NVJDC相对来说还是非常简单的,连青 ...

  9. vue+element+admin(初始化项目)

    2022.10.17我接触到了vue+element+admin的使用,首先要安装node.jshttps://nodejs.org/zh-cn/download/.和githttps://git-s ...

最新文章

  1. python收集网页中的翻页
  2. vue解决启动报错cjs loader.js Error: Cannot find module ‘../config‘问题
  3. python上传excel文件_flask上传excel文件,无须存储,直接读取内容
  4. Testng 测试框架源码阅读(一)
  5. python初始化函数_当你学会了Python爬虫,网上的图片素材就免费了
  6. 对象 对象 java 1615134277
  7. LVS Nginx 负载均衡区别
  8. Java 入门课程视频实战-0基础 上线了,猜拳游戏,ATM实战,欢迎围观
  9. Ownership and Permissions
  10. STM32:Code、RO、RW、Zi含义
  11. python是什么意思啊-星号*在Python中是什么意思?
  12. python中pygame怎么安_Python中pygame安装方法图文详解
  13. 使用微 PE(U盘)安装 Windows 10 操作系统
  14. 企业内网DNS搭建,SmartDNS,网站访问加速,解决dns污染等问题
  15. win10商店游戏存档修改
  16. 计算机中操作系统的主要功能是什么,计算机中的操作系统的主要功能是什么
  17. 基于Web的电子商务解决方案(1)(转)
  18. 永劫无间组装电脑配置推荐2021 玩永劫无间需要什么配置
  19. 「合作共赢」泛微eteams云OA联手容联七陌 深耕SaaS协同软件市场
  20. 芋道源码 精尽学习指南

热门文章

  1. 怎样检查单元格里的空格
  2. js中判断一个变量是否为NaN
  3. 计算机中sumif函数的使用方法,WPS中sumif函数用法与模糊条件使用方法
  4. php 去除字符串两边的逗号,PHP问题:php如何去除两边逗号
  5. 【博客更名】 “老邵的开源世界” 正式启用
  6. UI自动化中获取登录验证码
  7. mysql 对分类汇总进行排序_如何对excel分类汇总的数据进行排序
  8. 深入浅出掌握接口自动化
  9. 设置cpu亲和性_如何快速设置一个任务的CPU亲和力?
  10. 一个简单的权限管理系统