vue form 滑动验证码、手机短信验证

2023-11-15

话不多说直接上效果图

vue 注册首页

校验

滑动验证

 

页面源码

<template>
  <div id="loginWrap">
    <div id="loginArea">
      <!--<el-tooltip class="item" effect="dark" :content="$t('login.change')" placement="bottom-end">-->
      <!--<i class="exChange el-icon-fa-exchange" @click="exChange"></i>-->
      <!--</el-tooltip>-->
      <div class="loginPanel regPanel">
        <h1><img src="../../assets/css/theme1/images/logo.png"/>{{$t('login.title')}}</h1>
        <div class="login">
          <div class="province">
            <h2>注册</h2>
            <!--<lang-select class="set-language"></lang-select>-->
          </div>
          <div class="form-group">
            <el-form  class="loginFrom" :model="ruleForm" :rules="rules" ref="ruleForm" label-width="100px" >

              <!--登录名-->
              <el-form-item prop="userName" label-width="0px">
                <i class="fa el-icon-fa-user-o"></i>
                <el-input type="text" :placeholder="$t('login.username')" name="userName" v-model.trim="ruleForm.userName" autoComplete="on"  @keyup.enter.native="submitButton" clearable></el-input>
              </el-form-item>
              <!--手机号-->
              <el-form-item prop="tel" label-width="0px">
                <i class="fa el-icon-fa-mobile-phone"></i>
                <el-input type="tel"  :placeholder="$t('login.tel')" name="tel" v-model.trim="ruleForm.tel" autoComplete="on"  @keyup.enter.native="submitButton" clearable></el-input>
              </el-form-item>
              <!--验证码-->
              <el-row :gutter="10">
                <el-col :span="17">
                  <el-form-item prop="smscode" label-width="0px">
                    <i class="fa el-icon-fa-envelope-o"></i>
                    <el-input    type="smscode" ref="smscode" :placeholder="$t('login.smscode')" name="smscode" v-model.trim="ruleForm.smscode" autoComplete="on"  @keyup.enter.native="submitButton" clearable></el-input>
                  </el-form-item>
                </el-col>
                <el-col :span="7">
                  <!--发送验证码-->
                  <el-button class="loginBtn codeBtn" type="primary" :disabled='isDisabled' @click="sendCode">{{buttonText}}</el-button>
                </el-col>
              </el-row>
              <!--公司名称-->
              <el-form-item prop="companyname" label-width="0px">
                <i class="fa el-icon-fa-home"></i>
                <el-input type="text" ref="pass" :placeholder="$t('login.companyname')" name="companyname" v-model="ruleForm.companyname" autoComplete="on" clearable></el-input>
              </el-form-item>
              <!--联系人-->
              <el-form-item prop="contactperson" label-width="0px">
                <i class="fa el-icon-fa-address-book-o"></i>
                <el-input type="contactperson" ref="pass" :placeholder="$t('login.contactperson')" name="contactperson" v-model="ruleForm.contactperson" autoComplete="on" clearable></el-input>
              </el-form-item>
              <!--Emaill-->
              <el-form-item prop="email" label-width="0px">
                <i class="fa el-icon-fa-envelope"></i>
                <el-input type="email" ref="pass" :placeholder="$t('login.email')" name="email" v-model="ruleForm.email" autoComplete="on"  clearable></el-input>
              </el-form-item>
              <!--密码-->
              <el-form-item prop="password" label-width="0px">
                <i class="fa el-icon-fa-lock"></i>
                <el-input type="password" ref="pass" :placeholder="$t('login.password')" name="password" v-model.trim="ruleForm.password" autoComplete="on"  @keyup.enter.native="submitButton" clearable></el-input>
              </el-form-item>
              <!--确认密码-->
              <el-form-item prop="checkpassword" label-width="0px">
                <i class="fa el-icon-fa-lock"></i>
                <el-input type="password" ref="pass" :placeholder="$t('login.checkpassword')" name="checkpassword" v-model.trim="ruleForm.checkpassword" autoComplete="on"  @keyup.enter.native="submitButton" clearable></el-input>
              </el-form-item>
              <el-button class="loginBtn" type="primary" :loading="logining" v-popover:popover  @click="submitButton" >{{$t('login.submit')}}</el-button>

              <el-form-item label-width="0px" class="serverSel" v-if="serverVis">
                <i class="fa el-icon-fa-database"></i>
                <el-select v-model="server" popper-class="serverSelList" filterable placeholder="跳转至分服务器" @change="handlerServer">
                  <el-option  v-for="item in serverOptions"  :key="item.value"  :label="item.label"  :value="item.value">
                  </el-option>
                </el-select>
              </el-form-item>
            </el-form>
          </div>
          <!--验证码弹窗-->
          <el-popover  popper-class="slidingPictures"  ref="popover"  trigger="manual" v-model="visible"  >
            <div class="sliding-pictures">
              <div class="vimg">
                <canvas id="sliderBlock"></canvas>
                <canvas id="codeImg"></canvas>
              </div>
              <div class="slider">
                <div class="track" :class="{pintuTrue: puzzle }">
                  {{ tips }}
                </div>
                <div class="button el-icon-s-grid" @mousedown.prevent="drag"></div>
              </div>
              <div class="operation">
                <span title="关闭验证码"  @click="visible = false"   class="el-icon-circle-close" ></span>
                <span title="刷新验证码"  @click="canvasInit"  class="el-icon-refresh-left" ></span>
              </div>
            </div>
          </el-popover>
          <div class="tips">
            <span style="cursor: pointer;" @click="toLogin()">已有账号,返回登录</span>
          </div>
        </div>
      </div>
    </div>
  </div>
</template>

 

点击确认调用方法

<el-button class="loginBtn" type="primary" :loading="logining" v-popover:popover  @click="submitButton" >{{$t('login.submit')}}</el-button>

确认按钮方法

// 确认按钮
submitButton () {
  this.$refs['ruleForm'].validate(valid => {
    if (valid) {
      this.visible = true
      this.puzzle = false
      this.tips = '拖动左边滑块完成上方拼图'
    }
  })
},

全部源码下载链接

https://download.csdn.net/download/she8656837/11988753

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue form 滑动验证码、手机短信验证 的相关文章

  • Git GitHub入门2:新建Git repository并提交修改

    选择一个文件夹 执行 git init 命令 we initialize an empty git repository in the current directory 要想使用ls 查看列表 需要换成Windows powershell
  • 利用WMI打造完美三无后门(scrcons.exe)

    Welcome 各位ScriptKid 欢迎来到脚本世界 今天忙了一天 比较累 不废话那么多了 切入正题 这个 三无 后门的核心就是WMI中的永久事件消费者ActiveScriptEventConsumer 以下简称ASEC WMI中有许多
  • 微电网日前优化调度 。算例有代码(3)

    个人电气博文传送门 学好电气全靠它 个人电气博文目录 持续更新中 在前文我对问题1 2进行了解答 本文对问题3 进行解答 由于本人非研究调度的 问题3求解阐述自己对比赛论文问题3的见解 问题3 最优日前调度方案二 若考虑蓄电池作用 且微网与
  • camera HSYNC:VSYNC

    HSYNC 行锁存 换行信号VSYNC 祯锁存 换页信号 320 240的屏 每一行需要输入320个脉冲来依次移位 锁存进一行的数据 然后来个HSYNC 脉冲换一行 这样依次输入240行之后换行同时来个VSYNC脉冲把行计数器清零 又重新从
  • MySql基础汇总-DDL DML DQL DCL,存储过程,事务,触发器,函数等

    use testdb 一 数据库操作语言 DDL 数据库定义语言 create drop alter DML 数据库管理语言 insert update delete DQL 数据库查询t usert student 语言 select D
  • upload-labs靶场全通关

    upload labs靶场全通关 pass 1 pass 2 pass 3 pass 4 pass 5 pass 6 pass 7 pass 8 pass 9 pass 10 pass 11 pass 12 pass 13 pass 14
  • linux如何入门

    微信设置水滴昵称 个性中带点萌 1 学习Linux之前先认识Unix l Unix是一个强大的多用户 多任务操作系统 l 于1969年在AT T的贝尔实验室开发 l UNIX的商标权由国际开放标准组织 The Open Group 所拥有

随机推荐

  • js逆向-常见DES加密

    声明 本文仅供参考学习 切勿用于他途 违者后果自负 前言 目标网站 aHR0cHM6Ly9wYXNzcG9ydC5jaGFuZ2hvbmcuY29tL2xvZ2luLmRvP3ZpZXc9dmlwJnNlcnZpY2U9aHR0cDovL2
  • 向上转型和向下转型

    一 概念 向上转型是指将子类的实例赋值给父类类型的变量 向下转型是指将父类的实例赋值给子类类型的变量 二 向上转型 1 向上转型后父类的引用所指向的属性是父类的属性 2 如果子类重写了父类的方法 那么父类引用指向的或者调用的方法是子类的方法
  • 如何使用VuePress开发并部署静态博客网站(附进阶的自定义主题教程)

    VuePress使用教程 前言 作为一个程序员 拥有一个自己的博客网站算得上是家常便饭了 每当我们解决一个问题时 及时总结并记录下来是一个对学习很有帮助的习惯 方便以后遇到同类型的问题时 不用再去百度谷歌找半天 而将这些内容发布在自己的博客
  • php之curl带头部header的post请求

    public function op url http www baidu com test na oh header array Accept Language zh CN x appkey 114816004000028 x apsig
  • 内联函数及其注意事项

    default argument 是编译器记住了default argument 但是运行时还是要两个参数的 编译器看到了原型声明 可以有default argument值 所以编译器替你补上了 建议 不要使用default argumen
  • java上机题编程题

    1 编写程序 用数组实现乘法小九九的存储和输出 提示 采用多个一维数组 public class Multipation public static void main String args TODO Auto generated met
  • Linux一句话精彩问答--

    0001 修改主机名 陈绪 vi etc sysconfig network 修改HOSTNAME一行为 HOSTNAME 主机名 没有这行 那就添加这一行 吧 然后运行命令 hostname 主机名 一般还要修改 etc hosts文件中
  • 【javascript】作用域的理解(LHS,RHS查询)

    作用域是什么 一 理解作用域 任何javascript代码片段在执行前都要进行编译 先看一个例子吧 先思考一下这行代码是如何被编译的 var a 33 估计大部分人看到这行代码 会说首先声明一个变量a 然后给它赋值33 但实际上并没有这么简
  • Linux系统与管理 - (三)Linux常用命令解析

    自说 学习路径 目录和文件 查找目录和文件 查看文件 压缩及解压 自说 操作Linux系统必不可少的常用命令 坚持学习吧 每天一点点 总归是有收获的 学习路径 Linux系统与管理 一 安装Linux系统 Linux系统与管理 二 Linu
  • pyautogui 使用示例

    文章目录 coding utf 8 import pyautogui import time def test distance 1000 time sleep 5 pyautogui moveTo 400 300 while distan
  • js做简易信息聊天

    div div div img src img img1 jpg div
  • 常用Pytorch中张量(Tensor)的创建

    from IPython core interactiveshell import InteractiveShell InteractiveShell ast node interactivity all import torch a to
  • 华为手机连电脑当摄像头用_DxOMark评六大最佳手机摄像头:华为P40 Pro独揽四个第一...

    来源 快科技 DxOMark今天发布了一份特殊的榜单 按照照片 视频 广角 夜间摄影 变焦 散景 背景虚化 六大类 评选出了每个分类表现最好的手机 结果华为P40 Pro四次上榜 另外两个则被三星拿下 最佳照片 华为P40 Pro 拍照成绩
  • 【CLIP详读】

    个人网站 https tianfeng space 一 前言 OpenAI的CLIP项目自从推出以来 CLIP引起了广泛的关注 它的方法看似简单 但效果非常出色 许多结果令人惊叹 例如 预训练模型可以在任何视觉分类数据集上实现出色的效果 而
  • ubuntu apt-get dpkg应用中的一些问题及解决方法

    一 在用sudo apt get install 安装软件时 由于速度太慢 想换个软件源 直接关闭了终端 apt get但进程没有结束 结果终端提示 E 无法获得锁 var lib dpkg lock open 11 资源暂时不可用 E 无
  • 【Javadoc生成开发文档(Terminal或IDEA中)】

    Javadoc生成开发文档 一 Javadoc工具介绍 二 常用标记 三 使用方式 四 生成文档的两种方式 1 Terminal方式 2 IDE方式 一 Javadoc工具介绍 大家在查看官网文档的时候 会不会感慨人家的帮助文档写的真有逻辑
  • 轻松刷脸是美妙的线下消费体验过程

    刷脸支付的过程非常的简单 你不需要带钱包 信用卡或手机 支付时只需要自己面对刷脸支付pos机屏幕上的摄像头 刷脸支付系统会自动将消费者面部信息与个人账户相关联 整个交易过程十分便捷 在移动支付的快速发展中 消费者逐渐习惯使用移动支付 即使身
  • 交换机的Access口与Trunk口

    基本概念 Access类型的端口只能属于1个VLAN 一般用于连接计算机的端口 Trunk类型的端口可以允许多个VLAN通过 可以接收和发送多个VLAN的报文 一般用于交换机之间连接的端口 处理流程 Acess端口收报文 收到一个报文 判断
  • Python 分割技术提取图像和视频中对象

    计算机视觉是计算机查看和识别对象的媒介 计算机视觉的目标是使计算机能够分析图像和视频中的对象 解决不同的视觉问题 对象分割为方便分析图像和视频中的对象铺平了道路 对不同领域做出了巨大贡献 例如医学 自动驾驶汽车的视觉以及图像和视频的背景编辑
  • vue form 滑动验证码、手机短信验证

    话不多说直接上效果图 vue 注册首页 校验 滑动验证 页面源码