【案例】登录注册

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

<template>
  <div class="loginhome">
    <Header :butShow="butShow"></Header>
    <div class="formdiv">
      <div style="text-align:center;padding:10px;">
          <h3>你好登录账号{{ stauts == 3? '注册':'登录' }}</h3><el-divider>{{ stauts == 1 ?'账号登录':stauts == 2 ?'短信登录':stauts == 3 ?'立即注册':'--' }}</el-divider>
      </div>
      <el-form :model="Form">
        <!-- 账号密码登录 -->
        <template v-if="stauts == 1">
          <table class="table" cellspacing="3">
            <tr>
              <td colspan="5">
                <el-form-item prop="phone" :rules="[{ required: true, message: '输入手机号', trigger: 'blur' },{type:'phone', max: 12, message: '输入正确的11位手机号', trigger: 'blur'}]">
                  <el-input type="phone" placeholder="手机号" maxlength="11" v-model="Form.phone"></el-input>
                </el-form-item>
              </td>
            </tr>
            <tr>
              <td colspan="5">
                <el-form-item prop="password" :rules="[{ required: true, message: '输入密码', trigger: 'blur' },{min:8, max: 20, message: '输入8~20位', trigger: 'blur'}]">
                  <el-input :type="eyeshow ? 'text':'password'" maxlength="20" placeholder="密码" v-model="Form.password" show-password>
                    <!-- <el-button slot="suffix" type="text"><i  :class="eyeshow ? 'el-icon-key':'el-icon-unlock'" @click="iClick"></i></el-button> -->
                  </el-input>
                </el-form-item>
              </td>
            </tr>
            <tr>
              <td></td>
              <td colspan="3"></td>
              <td><el-button type="text" @click="stauts = 2">短信登录</el-button></td>
            </tr>
            <tr>
              <td colspan="5">
                <el-button style="width:100%;" type="primary" @click="CodeLoginClick()">登录</el-button>
              </td>
            </tr>
            <tr>
              <td class="table_td"></td>
              <td class="table_td"><el-button type="text" @click="stauts = 3; eyeshow = false;">立即注册</el-button></td>
              <td class="table_td"><el-button type="text" :disabled="true">忘记密码</el-button></td>
              <td class="table_td"><el-button type="text" :disabled="true">修改密码</el-button></td>
              <td class="table_td"></td>
            </tr>
          </table>
        </template>
        <!-- 短信验证码登录 -->
        <template v-else-if="stauts == 2">
          <table class="table" cellspacing="3">
            <tr>
              <td colspan="5">
                <el-form-item prop="telephone" :rules="[{ required: true, message: '输入手机号', trigger: 'blur' },{type:'number', max: 11, message: '输入正确的11位手机号', trigger: 'blur'}]">
                  <el-input type="text" placeholder="手机号" v-model="Form.telephone"></el-input>
                </el-form-item>
              </td>
            </tr>
            <tr>
              <td colspan="5">
                <el-form-item prop="code" :rules="[{ required: true, message: '输入验证码', trigger: 'blur' },{type:'number',  message: '请输入正确的', trigger: 'blur'}]">
                  <el-input :type="eyeshow ? 'text':'password'" placeholder="验证码" v-model="Form.code">
                    <el-button slot="suffix" type="text" @click="iClick">获取验证码</el-button>
                  </el-input>
                </el-form-item>
              </td>
            </tr>
            <tr>
              <td></td>
              <td colspan="3"></td>
              <td><el-button type="text" @click="stauts = 1">账号登录</el-button></td>
            </tr>
            <tr>
              <td colspan="5">
                <el-button style="width:100%;" type="primary">登录</el-button>
              </td>
            </tr>
            <tr>
              <td class="table_td"></td>
              <td class="table_td"></td>
              <td class="table_td"><el-button type="text" @click="stauts = 3; eyeshow = false;">立即注册</el-button></td>
              <td class="table_td"></td>
              <td class="table_td"></td>
            </tr>
          </table>
        </template>
        <!-- 立即注册 -->
        <template v-else-if="stauts == 3">
          <table class="table" cellspacing="3">
            <tr>
              <td colspan="5">
                <el-form-item prop="register_telephone" :rules="[{ required: true, message: '输入手机号', trigger: 'blur' },{type:'number', max: 11, message: '输入正确的11位手机号', trigger: 'blur'}]">
                  <el-input type="text" placeholder="手机号" v-model="Form.register_telephone"></el-input>
                </el-form-item>
              </td>
            </tr>
            <tr>
              <td colspan="5">
                <el-form-item prop="register_password" :rules="[{ required: true, message: '设置密码', trigger: 'blur' },{min:8, max: 11, message: '输入8~11位', trigger: 'blur'}]">
                  <el-input :type="eyeshow ? 'text':'password'" placeholder="设置您的密码" v-model="Form.register_password" show-password>
                    <!-- <el-button slot="suffix" type="text"><i  :class="eyeshow ? 'el-icon-key':'el-icon-unlock'" @click="iClick"></i></el-button> -->
                  </el-input>
                </el-form-item>
              </td>
            </tr>
            <tr>
              <td colspan="5">
                <el-form-item prop="register_again_password" :rules="[{ required: true, message: '输入密码', trigger: 'blur' },{min:8, max: 11, message: '请输入8~11位', trigger: 'blur'}]">
                  <el-input :type="eyeshow ? 'text':'password'" placeholder="再次输入您的密码" v-model="Form.register_again_password" show-password>
                    <!-- <el-button slot="suffix" type="text"><i  :class="eyeshow ? 'el-icon-key':'el-icon-unlock'" @click="iClick"></i></el-button> -->
                  </el-input>
                </el-form-item>
              </td>
            </tr>
            <tr>
              <td colspan="5">
                <el-form-item prop="register_code" :rules="[{ required: true, message: '输入验证码', trigger: 'blur' },{ type:'number',min:6, max: 6, message: '输入完整的验证码', trigger: 'change'}]">
                  <el-input type="text" placeholder="验证码" v-model="Form.register_code">
                    <el-button slot="suffix" type="text" @click="SendCodeClick">获取验证码</el-button>
                  </el-input>
                </el-form-item>
              </td>
            </tr>
            <tr>
              <td></td>
              <td colspan="3"></td>
              <td></td>
            </tr>
            <tr>
              <td colspan="5">
                <el-button style="width:100%;margin-top:3px;" type="primary">注册</el-button>
              </td>
            </tr>
            <tr>
              <td class="table_td"><el-button type="text" @click="stauts = 1; eyeshow = false;">账号登录</el-button></td>
              <td class="table_td"></td>
              <td class="table_td"></td>
              <td class="table_td"></td>
              <td class="table_td"><el-button type="text" @click="stauts = 2">短信登录</el-button></td>
            </tr>
          </table>
        </template>
      </el-form>
      <el-divider></el-divider>
    </div>
  </div>
</template>
<script>
import Header from '@/components/header.vue'
export default {
  components: {
    Header
  },
  data() {
    return {
      stauts: 1,  // 模式
      
      butShow: 1,
      eyeshow: false,
      againPassword_message: '',
      Form: {
        phone: '', password: '',  // 账号登录
        telephone: '',  code: '',  // 短信登录
        register_password: '', register_again_password: '', register_telephone:'', register_code:'',  // 立即注册
      },
      
    }
  },
  methods: {
    iClick() {
      console.log(this.eyeshow);
      this.eyeshow = !this.eyeshow
    },
    // 获取验证码
    SendCodeClick() {
      console.log('获取验证码');
    },
    //  账号登录
    CodeLoginClick() {
      if (this.Form.phone =='17602931841' &&  this.Form.password == '17602931841') {
        this.$notify.success('登录成功')
        setTimeout(() => {
          this.$router.push('/fristhome')
        },1000)
      } else {
        this.$notify.warning('账号或密码错误!!')
      }
    }
  }
}
</script>
<style scoped>
.loginhome { width: 100%;height: calc(100vh); background-color: rgb(243, 248, 250); }
.formdiv { width: 500px; height: 550px; background-color: rgb(253, 253, 253); position: relative; top: 5%; left: calc((100vw - 500px) / 2); }
#i { position: relative; top: 0; right: 0; }
.table { width:80%;margin:0 10%;text-align:center; }
.table_td { width: 25%; }
.input_btu { position: relative; top: 0; right: 0; }
#suffix { position: absolute; top: 0; right: 0; color: red; }
.show-pwd {
    position: absolute;
    right: 10px;
    top: 7px;
    font-size: 16px;
    color: red;
    cursor: pointer;
    user-select: none;
  }
</style>
<style>
.table .el-form-item__error {
    color: #F56C6C;
    font-size: 12px;
    line-height: -1;
    padding-top: 4px;
    position: absolute;
    top: 100%;
    left: 0;
}
.table .el-form-item {
    margin-bottom: 0px;
}
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

轻松正确使用代理IP

Hey&#xff0c;亲爱的程序员小伙伴们&#xff01;在进行爬虫时&#xff0c;你是否曾使用过别人的代理IP&#xff1f;是否因此慌乱&#xff0c;担心涉及违法问题&#xff1f;不要惊慌&#xff01;今天我将和你一起揭开法律迷雾&#xff0c;为你的爬虫之路保驾护航。快跟上我的节…

无涯教程-机器学习 - 数据加载

假设如果要启动ML项目&#xff0c;那么您需要做的第一件事也是最重要的事情是什么?这是无涯教程启动任何ML项目都需要加载的数据。关于数据&#xff0c;对于ML项目&#xff0c;最常见的数据格式是CSV(逗号分隔值)。 基本上&#xff0c;CSV是一种简单的文件格式&#xff0c;用…

【Python】requests实现cookie 登陆

Python 系列 文章目录 Python 系列前言一、requests是什么&#xff1f;二、使用步骤1.引入库 总结 前言 session 登录获取接口数据的&#xff0c;操作不需要header 等数据&#xff0c;print(my_session.headers)&#xff0c;如果有需要可以自己重新去设置&#xff0c;包括cook…

无涯教程-PHP - Filtered反序列化

PHP 7引入了Filtered unserialize()函数&#xff0c;以在对不受信任的数据上的对象进行反序列化时提供更好的安全性。 <?phpclass MyClass1 { public $obj1prop; }class MyClass2 {public $obj2prop;}$obj1new MyClass1();$obj1->obj1prop1;$obj2new MyClass2();$obj…

【java并发编程的艺术读书笔记】AQS队列同步器简介、实现自定义锁

AQS介绍 AQS&#xff08;AbstractQueuedSynchronizer&#xff09;是 Java 并发包&#xff08;java.util.concurrent&#xff09;中一个重要的基础类&#xff0c;用于实现同步器&#xff08;Synchronizer&#xff09;的框架。AQS 提供了一种基于 FIFO 等待队列的机制&#xff0…

CentOs下面安装jenkins记录

目录 一、安装jenkins 二、进入jenkins 三、安装和Gitee&#xff0c;Maven等插件 一、安装jenkins 1 wget -O /etc/yum.repos.d/jenkins.repo \ https://pkg.jenkins.io/redhat-stable/jenkins.repo 2 rpm --import https://pkg.jenkins.io/redhat-stable/…

Qt 自定义菜单、右键菜单

在接触Qt这段时间以来&#xff0c;经常遇到菜单项的问题&#xff08;右键菜单、托盘菜单、按钮菜单等&#xff09;&#xff0c;QMenu用于菜单栏,上下文菜单,弹出菜单等&#xff0c;利用QMenuQAction就可以达到效果&#xff01; 右键菜单实现&#xff1a;通过重写contextMenuEv…

抖音web主页视频爬虫

文章内容仅供参考学习&#xff0c;如有侵权请联系作者进行删除 原理分析&#xff1a; 1、通过列表接口获取用户主页视频数据。 2、通过web端的视频详情页获取视频详情数据。 1&#xff09;需要代码构造cookie参数。 2&#xff09;访问到详情页可拿到视频数据。 抖音主页视频爬…

C++字符串详解

C 大大增强了对字符串的支持&#xff0c;除了可以使用C风格的字符串&#xff0c;还可以使用内置的 string 类。string 类处理起字符串来会方便很多&#xff0c;完全可以代替C语言中的字符数组或字符串指针。 string 是 C 中常用的一个类&#xff0c;它非常重要&#xff0c;我们…

Spring Boot进阶(60):5种判断线程池任务是否全部完成的方案 | 实用技巧分享!

1. 前言&#x1f525; 多线程编程在现代软件开发中非常常见且重要&#xff0c;而线程池是多线程编程的常用技术。在使用线程池时&#xff0c;通常需要判断线程池中的任务是否全部完成&#xff0c;以便决定程序继续执行的下一步操作。本文将介绍5种判断线程池任务是否全部完成的…

【送书活动】AI时代,程序员需要焦虑吗?

前言 「作者主页」&#xff1a;雪碧有白泡泡 「个人网站」&#xff1a;雪碧的个人网站 「推荐专栏」&#xff1a; ★java一站式服务 ★ ★ React从入门到精通★ ★前端炫酷代码分享 ★ ★ 从0到英雄&#xff0c;vue成神之路★ ★ uniapp-从构建到提升★ ★ 从0到英雄&#xff…

常见API架构介绍

常见API架构介绍 两个服务间进行接口调用&#xff0c;通过调用API的形式进行交互&#xff0c;这是常见CS架构实现的模式&#xff0c;客户端通过调用API即可使用服务端提供的服务。相较于SPI这种模式&#xff0c;就是服务端只规定服务接口&#xff0c;但具体实现交由第三方或者自…

mysql和mybatisPlus实现:datetime类型的字段范围查询

前提说明 数据库在存储数据时,我们为了精确一下时间,便会把改时间类型的字段设置为datetime类型; 在过滤数据库数据时,我们又需要对该字段进行一个范围的过滤 由此,便出现了这篇博客 datetime数据类型 在MySQL中,datetime数据类型用于保存日期和时间的值。它的格式为Y…

MyBatis分页查询与特殊字符处理

目录 目录 一、引言 1.1 简介Mybatis 1.2分页查询的重要性 1.3MyBatis特殊字符处理的挑战 挑战1&#xff1a;SQL注入漏洞 挑战2&#xff1a;查询结果异常 挑战3&#xff1a;数据完整性问题 挑战4&#xff1a;跨平台兼容性 挑战5&#xff1a;用户体验 如何应对挑战 二…

Python爬虫分布式架构 - Redis/RabbitMQ工作流程介绍

在大规模数据采集和处理任务中&#xff0c;使用分布式架构可以提高效率和可扩展性。本文将介绍Python爬虫分布式架构中常用的消息队列工具Redis和RabbitMQ的工作流程&#xff0c;帮助你理解分布式爬虫的原理和应用。 为什么需要分布式架构&#xff1f; 在数据采集任务中&#…

D.OASIS City 和 Warrix 在The Sandbox 庆祝 Rise of the 10th Legend十周年

D.OASIS 首次展示了变革性娱乐 D.OASIS City&#xff0c;正如它与 WARRIX 一起承诺的那样。WARRIX 是获得泰国国家队球衣生产授权的标志性运动服装品牌。 这款激动人心的游戏冒险游戏于今天推出&#xff0c;让用户能够投入 D.OASIS City x WARRIX&#xff1a;Rise of the 10th…

【前端从0开始】JavaSript——Date对象

创建Date对象 var dateObjnew Date(); 方法 将日期转为字符串 toLocaleString() toLocaleDateString() toLocaleTimeString()获取年、月、日、小时、分、秒 ○1&#xff09;getYear() //两位的年(2000年前)或三位的年[1900] 获取两位数的年&#xff0c;从1900年开始计算&…

数学系硕士研究生的科研过程——PDE约束下含参优化控制问题的深度学习算法

笔者今天上午收到了之前北大课题组老板的通知&#xff0c;得知研究生期间和学长合作的论文终于被siam接收&#xff0c;终于为自己研究生涯画上了一个句号。这里打算分享一下个人的科研过程以及这篇论文的工作&#xff0c;即将读研或者打算读研的同学或许可以从中获得益处。论文…

Golang Gorm 高级查询之where + find

插入测试数据 package mainimport ("fmt""gorm.io/driver/mysql""gorm.io/gorm" )type Student struct {ID int64Name string gorm:"size:6"Age intEmail *string }func (*Student) TableName() string {return "student&q…

浅析SAS协议:链路层

文章目录 概述原语通用原语连接管理原语连接通信原语 地址帧IDENTIFY地址帧OPEN地址帧 链路复位Link ResetHard ResetSATA的Link Reset 连接管理建立连接连接仲裁 流量控制SSP流控Credit Advance SMP流控 相关参考 概述 SAS链路层用于定义原语、地址帧以及连接相关的内容&…