vue vant 登录增加图片验证码显示

news2024/9/27 23:28:43
 <!-- 登录表单 -->
    <van-form @submit="onLogin" 
    :show-error="false"
    :show-error-message="false"
    ref="login-form"
  @failed="onFailed"> 
      <van-field
        v-model="user.account"
        icon-prefix="toutiao"
        left-icon="shouji"
        placeholder="请输入账号"
        name="mobile"
        :rules="[{ required: true, message: '请输入账号', trigger: 'onBlur' }]"
      />
      <van-field 
        v-model="user.password"
        clearable
        type="password"
        icon-prefix="toutiao"
        left-icon="yanzhengma"
        placeholder="请输入密码"
        name="password"
        :rules="[{ required: true, message: '请输入密码', trigger: 'onBlur' }]"    
      ></van-field>

        <van-field 
            v-show="showCaptcha"     
            v-model="user.verifycode"
            clearable
            center
            icon-prefix="toutiao"
            placeholder="请输入验证码"
            name="verifycode"
            :rules="[{ required: true, message: '请输入验证码', trigger: 'onBlur' }]"
            >
  
          <div slot="button" >
            <img id="captchaImg"  @click="getVerifyCode"/>
          </div>
        </van-field>
import { login,getCaptcha } from '@/api/user';
import Cookies from 'js-cookie';
import request from '@/utils/request';
export default {
  name: 'LoginIndex',
  components: {},
  props: {},
  data () {
    return {
      user: {
        account: '', // 账号
        password: '', // 密码
        verifycode:''//验证码
      },
      showCaptcha: false,
    }
  },
  computed: {},
  watch: {},
  created () {
    this.askForCaptcha();
  },
  mounted () {},
  methods: {
    async onLogin () {
      // 开始转圈圈
    this.$toast.loading({
    duration: 0, // 持续时间,0表示持续展示不停止
    forbidClick: true, // 是否禁止背景点击
    message: '登录中...' // 提示消息
  })
  try {
    let params = {
            "account": this.user.account,
            "password": this.user.password,
            "captcha": this.user.verifycode,
            "serial": Cookies.get('serial')
          }

    const { data } = await login(params)
    if(data.code!=200){
       this.$toast.fail(data.msg)
    }
    else{
    
    this.$store.commit('setUser', data.data)

    this.$toast.success('登录成功')
    this.$router.back()
    }
  } catch (err) {

   
    if (err.response.status === 400) {
    //  console.log('登录失败', err)
      this.$toast.fail('登录失败,手机号或验证码错误')
    }
  }
},
//先从接口获取到serial参数,写入cookie中,获取图片验证码需要传该参数
    askForCaptcha() {
      getCaptcha().then(res => {
          if (res.data.data.require == '1') {
            this.showCaptcha = true;
            Cookies.set('serial', res.data.data.serial);
            this.getVerifyCode();
          }else {
            this.showCaptcha = false;
            Cookies.remove('serial');
          }
        })
    },
    getVerifyCode() {
      var serial = Cookies.get('serial');
      const baseURL = request.defaults.baseURL;
      document.getElementById('captchaImg').src = baseURL + '/admin/' + '?serial=' + serial;  
    },
  }
}
</script>

在这里插入图片描述

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

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

相关文章

如何借助spire.doc,在 Word 中插入 OLE 对象

Spire.Doc for .NET是一款专门对 Word 文档进行操作的 .NET 类库。在于帮助开发人员无需安装 Microsoft Word情况下&#xff0c;轻松快捷高效地创建、编辑、转换和打印 Microsoft Word 文档。拥有近10年专业开发经验Spire系列办公文档开发工具&#xff0c;专注于创建、编辑、转…

AI的发展将会产生一个新的阶层

随着AI的发展将会产生一个新的阶层&#xff0c;那就是无用阶层&#xff0c;而且我们很多人都处在这个阶层。自今年以来&#xff0c;AI技术的发展所带来的应用&#xff0c;给我们的除了震撼还是震撼。Open AI的GPT4模型不但能够写出媲美专家发表的论文&#xff0c;还能通过各类专…

淘宝商品列表数据接口(支持价格、销量排序)

淘宝商品列表数据接口是淘宝提供的一种可以获取淘宝商品信息的接口。通过该接口&#xff0c;可以获取到具有一定规则的商品信息&#xff0c;例如按照价格排序、按照销量排序等。接口返回的数据格式为JSON格式&#xff0c;可以方便地处理数据。 我们可以通过调用淘宝提供的API&…

Flink SQL JOIN

双流JOIN(Regular Join) ​ Regular Join 就是大家熟知的双流 Join&#xff0c;语法上就是普通的 JOIN 语法。图中案例是通过广告曝光流关联广告点击流将广告数据打宽&#xff0c;打宽后可以进一步计算广告费用。从图中可以看出&#xff0c;曝光流和点击流都会存入 join 节点的…

优雅处理HTTP请求:过滤器、拦截器、ControllerAdvice和自定义AOP

我们在开发Spring Boot应用程序时&#xff0c;经常会遇到需要对HTTP请求进行一些处理的情况&#xff0c;例如鉴权、数据校验、请求日志记录等等。在处理HTTP请求时&#xff0c;我们可以使用四种不同的技术来实现这些功能&#xff1a;过滤器、拦截器、ControllerAdvice和自定义A…

谷歌seo多久才能见效?谷歌seo见效的参考时间线和效果预估

影响谷歌SEO的效果因素 谷歌SEO的效果因多种因素而异&#xff0c;包括竞争程度、关键词选择、网站优化程度、内容质量和网站的历史等。一般来说&#xff0c;SEO是一个长期的过程&#xff0c;而不是一夜之间见效的事情。e6zzseo&#xff08;e6zzseo的博客_CSDN博客-seo领域博主…

嵌入式音视频疑惑汇总

小小的脑袋里,大大的疑问,该文是博主在工作中遇见问题后,面向chatGPT学习的记录笔记 1.bypass hdr 是什么? “Bypass HDR” 是指绕过高动态范围(HDR)功能的一种设置。HDR 是指一种显示技术,它可以提供更高的色彩深度和亮度范围,从而产生更加真实、明亮和有层次感的图像…

Ludo:海外飞行棋游戏玩法,文末附源码

Ludo起源于印度的古老游戏Pachisi&#xff0c;玩法类似国内的飞行棋&#xff0c;是一种适合2至4人玩的战略类棋盘游戏。 其游戏规则也很简单&#xff1a;对局中&#xff0c;每人有2颗或4颗棋子&#xff0c;通过投骰子的方式决定前进的步数&#xff0c;在前进过程中赶上对手即可…

手把手带你分析 (net.devh.boot.grpc 包下面的)服务端 Grpc 自动装配、服务注册的源码(Java版)

前言 昨天写过一篇关于如何使用 Grpc 的博客&#xff0c;出于好奇想知道 GrpcService、GrpcClient、GrpcGlobalServerInterceptor、GrpcGlobalClientInterceptor这些注解是如何生效的&#xff0c;以及服务注册的流程是怎样的&#xff0c;就简单过了一遍源码&#xff0c;帮助大家…

新人必看!手把手教你如何使用浏览器表格插件(下)

摘要&#xff1a;本文由葡萄城技术团队于博客园原创并首发。转载请注明出处&#xff1a;葡萄城官网&#xff0c;葡萄城为开发者提供专业的开发工具、解决方案和服务&#xff0c;赋能开发者。 前言 | 问题背景 作为一名优秀的打工人&#xff0c;Excel是大家上班中必不可少的办…

理解Linux TunTap设备

入门 TUN/TAP是操作系统内核中的虚拟网络设备&#xff0c;可以完成用户空间与内核空间的数据的交互。网络协议栈中的数据通过该设备可以进入到用户空间中&#xff0c;而用户空间中的程序通过该设备空间进入到内核空间的网络协议栈。 TUN模拟的是三层设备&#xff0c;操作三层…

chatgpt赋能python:Python主程序:提升编程效率与合作性的最佳选择

Python 主程序&#xff1a;提升编程效率与合作性的最佳选择 前言 Python 作为一门简单、易于学习并具备强大功能的编程语言&#xff0c;已经成为了最受欢迎的编程语言之一。Python 主程序不仅能够编写复杂的算法和进行数据处理&#xff0c;而且还可以实现广泛的应用&#xff…

基于SpringBoot+Uniapp的球队周边微信小程序

✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项目背景介绍&#xff1a; 随着微信小程序的兴起…

【jeecg-boot】jeecg-boot的一些功能扩展:

文章目录 一、Template里面将数组对象里面的值遍历>对象的key二、利用ES6的解构赋值互换数组数据&#xff1a;三、a-select实现可输入可下拉:四、a-table实现动态表头&#xff1a;五、jeecg-boot列自定义&#xff1a;六、jeecg-boot合计行&#xff1a; 一、Template里面将数…

Android 逆向工程,反编译心得

前言 apk的反编译是我们在Android开发中绕不开的一个坎&#xff0c;对于反编译这门技术&#xff0c;我们应该抱着学习的态度&#xff0c;学的越多&#xff0c;也越能防备别人反编译我们&#xff0c;这就是所谓的知己知彼吧&#xff0c;哈哈 需要准备的工具 Apktool&#xff…

centos下Harbor的安装(超详细+避坑)

前提 这篇文章讲的是在我的本地虚拟机上安装Harbor的一些过程和中途所遇到的一些问题和排除问题的情况说明&#xff1b;安装好的harbor的访问信息如下&#xff1a;http://192.168.45.146:8033/harbor&#xff08;admin/Harbor12345&#xff09;环境 本次所使用的环境和软件的各…

国外APP外包开发及上线流程

现在很多APP都做成全球通用版&#xff0c;尤其是一些小游戏类的APP&#xff0c;玩法全球基本都类似&#xff0c;在多个国家上线多个销售渠道。今天和大家分享一下Google Play上线流程及注意事项&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件…

ChatGPT:AI时代的创造力激活

《你好&#xff0c;ChatGPT》是一本深入探索人工智能&#xff08;AI&#xff09;领域的畅销书籍&#xff0c;它以ChatGPT为切入点&#xff0c;系统地介绍了AI和AIGC的基础概念、技术原理、应用领域和未来展望。这本书通俗易懂&#xff0c;由浅入深&#xff0c;层层递进&#xf…

WMS仓储管理系统解决方案能帮助电子企业解决哪些问题

WMS仓储管理系统解决方案是一种针对仓库管理的软件系统&#xff0c;它能够有效地解决电子企业在仓储管理方面的问题。在电子行业&#xff0c;由于产品的生命周期较短&#xff0c;且需求变化快速&#xff0c;WMS仓库管理系统的应用对于电子企业的管理有着重要的意义。本文将探讨…

DATAV通过配置nginx代理实现https访问

DATAV通过配置nginx代理实现https访问 首先要确保你的 datav 和 datav_proxy 的界面能用http正常访问 在nginx中添加datav配置 server {listen 8181 ssl;server_name localhost;ssl_certificate server.crt;ssl_certificate_key server.key;ssl_session_cache …