Vue简易登陆页面

2023-11-11

1. 效果展示

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

2. Vue代码

<template>
  <div>
    <div class="login-box">
      <h2>登录系统</h2>
      <form>
        <div class="user-box">
          <input type="text" name="" required="" v-model="username">
          <label>邮箱号</label>
        </div>
        <div class="user-box">
          <input type="password" name="" required="" v-model="password">
          <label>密码</label>
        </div>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <a @click="handleSubmit">
          <span></span>
          <span></span>
          <span></span>
          <span></span>
          登录
        </a>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <a @click="signUp_asd">注册 </a>
      </form>
    </div>
  </div>
</template>

<script>
import axios from "axios";
export default {
  name: "Login",
  data() {
    return {
      username: '',
      password: '',
      msg: ''
    }
  },
  methods: {
    signUp_asd(){
      this.$router.replace({path: '/signUp'});
    },
    open1() {
      this.$message({
        showClose: true,
        message: this.msg,
        type: 'warning'
      });
    },
    open2() {
      this.$message({
        showClose: true,
        message: this.msg,
        type: 'success'
      });
    },
    open3() {
      this.$message({
        showClose: true,
        message: this.msg,
        type: 'error'
      });
    },

    handleSubmit() {
      let _this = this
      if(this.username===""||this.password===""){
        this.msg = "请输入邮箱密码"
        this.open3()
      }else{
        axios.post('http://localhost:8412/user/userLogin',
            {
              email: this.username,
              password: this.password
            })
            .catch(function (error) {
              console.log(error.response.data.msg)
              _this.msg = "请检查邮箱是否合法"
              _this.open3()
            }).then(function (response) {
          console.log(response)
          if (response.data.code === 200) {
            _this.msg = response.data.msg
            _this.open2()
            //此处开始配置全局
            _this.$store.commit('setUserMsg', {
              id: response.data.data.id,
              email: response.data.data.email,
              username: response.data.data.username
            });
            _this.$store.commit('print');
            _this.$router.replace({path: '/ziti'});
          } else {
            _this.msg = response.data.msg
            _this.open3()
          }
        })
      }
    },
  },
}
;
</script>

<style>
body {
  background-image: url(https://img-blog.csdnimg.cn/a7d3536782d34024914b76d3eafbe637.jpg);
  background-repeat: no-repeat;
  background-size: 100%;
  background-position: 0px -50px;
}

.login-box {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 400px;
  padding: 40px;
  transform: translate(-50%, -50%);
  background: rgba(0, 0, 0, .5);
  box-sizing: border-box;
  box-shadow: 0 15px 25px rgba(0, 0, 0, .6);
  border-radius: 10px;
}

.login-box h2 {
  margin: 0 0 30px;
  padding: 0;
  color: #fff;
  text-align: center;
}

.login-box .user-box {
  position: relative;
}

.login-box .user-box input {
  width: 100%;
  padding: 10px 0;
  font-size: 16px;
  color: #fff;
  margin-bottom: 30px;
  border: none;
  border-bottom: 1px solid #fff;
  outline: none;
  background: transparent;
}

.login-box .user-box label {
  position: absolute;
  top: 0;
  left: 0;
  padding: 10px 0;
  font-size: 16px;
  color: #fff;
  pointer-events: none;
  transition: .5s;
}

.login-box .user-box input:focus ~ label,
.login-box .user-box input:valid ~ label {
  top: -20px;
  left: 0;
  color: #03e9f4;
  font-size: 12px;
}

.login-box form a {
  position: relative;
  display: inline-block;
  padding: 10px 20px;
  color: #03e9f4;
  font-size: 16px;
  text-decoration: none;
  text-transform: uppercase;
  overflow: hidden;
  transition: .5s;
  margin-top: 40px;
  letter-spacing: 4px
}

.login-box a:hover {
  background: #03e9f4;
  color: #fff;
  border-radius: 5px;
  box-shadow: 0 0 5px #03e9f4,
  0 0 25px #03e9f4,
  0 0 50px #03e9f4,
  0 0 100px #03e9f4;
}

.login-box a span {
  position: absolute;
  display: block;
}

.login-box a span:nth-child(1) {
  top: 0;
  left: -100%;
  width: 100%;
  height: 2px;
  background: linear-gradient(90deg, transparent, #03e9f4);
  animation: btn-anim1 1s linear infinite;
}

@keyframes btn-anim1 {
  0% {
    left: -100%;
  }
  50%, 100% {
    left: 100%;
  }
}

.login-box a span:nth-child(2) {
  top: -100%;
  right: 0;
  width: 2px;
  height: 100%;
  background: linear-gradient(180deg, transparent, #03e9f4);
  animation: btn-anim2 1s linear infinite;
  animation-delay: .25s
}

@keyframes btn-anim2 {
  0% {
    top: -100%;
  }
  50%, 100% {
    top: 100%;
  }
}

.login-box a span:nth-child(3) {
  bottom: 0;
  right: -100%;
  width: 100%;
  height: 2px;
  background: linear-gradient(270deg, transparent, #03e9f4);
  animation: btn-anim3 1s linear infinite;
  animation-delay: .5s
}

@keyframes btn-anim3 {
  0% {
    right: -100%;
  }
  50%, 100% {
    right: 100%;
  }
}

.login-box a span:nth-child(4) {
  bottom: -100%;
  left: 0;
  width: 2px;
  height: 100%;
  background: linear-gradient(360deg, transparent, #03e9f4);
  animation: btn-anim4 1s linear infinite;
  animation-delay: .75s
}

@keyframes btn-anim4 {
  0% {
    bottom: -100%;
  }
  50%, 100% {
    bottom: 100%;
  }
}
</style>

3. 存点图片

图片1

https://img-blog.csdnimg.cn/3b98a2b657bf4ed8a066229f2b58ef0a.jpg

在这里插入图片描述

图片2

https://img-blog.csdnimg.cn/d3193e11a340429d9c5ee40396c6a146.jpg

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

https://img-blog.csdnimg.cn/9cbef4a6f3ba493b969a73ee3f70e5d0.jpg

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

https://img-blog.csdnimg.cn/d428fbf16e254b5e9f8c211f6fc987ba.jpg

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

https://img-blog.csdnimg.cn/6b9e11e1be154e558dd235507e158545.jpg

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

https://img-blog.csdnimg.cn/76110abf7fb84ee28c50bfbfa7fa8e11.jpg

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

https://img-blog.csdnimg.cn/a7d3536782d34024914b76d3eafbe637.jpg

在这里插入图片描述

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

Vue简易登陆页面 的相关文章

随机推荐

  • sql删除所有binglog日志

    删除所有binglog日志 SQL PURGE BINARY LOGS BEFORE DATE SUB NOW INTERVAL 0 DAY 注意 命令执行后还会保留最新的一个binlog 应该是处于打开状态删除不掉
  • TestNG 测试套件(二)

    1 配置类 package com course testng suite import org testng annotations AfterMethod import org testng annotations AfterSuite
  • HTML 基础

    HTML 标题 HTML 标题 Heading 是通过 h1 h6 标签来定义的 实例 h1 这是一个标题 h1 h2 这是一个标题 h2 h3 这是一个标题 h3 尝试一下 HTML 段落 HTML 段落是通过标签 p 来定义的 实例 p
  • 分析师:芯片短缺至少还将持续一年

    众所周知 半导体行业对需求突然增加的反应很慢 一些分析家认为 现在芯片需求超过供应约30 要赶上需求将需要三到四个季度 从本质上讲 这意味着芯片短缺将一直持续到2022年 芯片需求正在蓬勃发展 如今 几乎所有电子设备中都装有芯片 因此对半导
  • 面试官:谈谈你对大数据平台架构的理解?

    笼统的来说 大数据的架构一共有五层 首先是数据源层 即最原始的数据层 数据在这一层里 还只是杂草地里的野菜 如果要问这片地的具体信息 目前来讲有三个地方 一个地方是企业内部自有数据 例如淘宝 京东等电商平台的用户信息 订单信息 商品信息等
  • 数字化转型成熟度模型介绍

    中关村信息技术和实体经济融合发展联盟提出了一种数字化转型成熟度模型系列标准 目前已经被众多央企采用 作为数字化转型战略框架和评价的依据 用友作为全球领先的数智化服务商 也参与了这一系列标准的制定 今天我们就来介绍一下这套成熟度模型 并讨论对
  • k8s基础概念:port ,targetport,nodeport

    在Kubernetes中 有三种类型的端口与Service相关 port targetPort和NodePort 它们分别用于不同的用途 port port字段定义了Service暴露给集群内部和外部的端口号 当你创建一个Service时
  • web前端职业规划(转)

    关于一个WEB前端的职业规划 其实是有各种的答案 没有哪种答案是完全正确的 全凭自己的选择 只要是自己选定了 坚持去认真走 就好 在这里 我只是简要说一下自己对于这块儿内容的理解 有一个观点想要分享给大家的是 任何规划和目标的实现都依赖于知
  • 矩阵连乘问题C++实现

    矩阵连乘问题C 1 认真审阅题目 明确题目的已知条件和求解的目标 2 问题建模 3 算法设计 4 编码实现 1 认真审阅题目 明确题目的已知条件和求解的目标 给定n个矩阵 A1 A2 A3 An 其中Ai与Ai 1 i 1 2 3 4 n
  • 从0到1带你构建——低代码开发入门案例

    个人简介 个人主页 前端杂货铺 学习方向 主攻前端方向 也会涉及到服务端 Node js 个人状态 在校大学生一枚 已拿多个前端 offer 秋招 未来打算 为中国的工业软件事业效力 n 年 推荐学习 前端面试宝典 Vue2 Vue3 Vu
  • 目标检测:锚点介绍及应用

    目标检测 锚点介绍及应用 介绍 应用 生成锚点图 步骤 锚点匹配 步骤 介绍 锚点相当于在待预测的特征数据上预设出可能的物体边界框 即预设出特征数据可能代表的物体区域 每个区域通常由两个属性构成 尺度 scale或size 和比例 rati
  • laravel实战项目搭建及代码管理

    本文目录 前言 一 安装laravel和装插件 1 1 安装laravel 1 2 安装开发插件 二 运行项目及配置 2 1 配置虚拟主机与绑定hosts文件 2 2 配置数据库连接 2 3 本地化配置 2 4 删除默认文件或目录 三 gi
  • 算法训练Day11

    目录 LeetCode232 用栈实现队列 1 思路 2 代码实现 3 复杂度分析 4 思考 LeetCode225 用队列实现栈 1 思路 2 代码实现 3 复杂度分析 4 思考 LeetCode20 有效的括号 方法一 使用栈和字典 1
  • Ubuntu18配置ssh免密登录

    安装配置 sudo apt get install openssh server cd ssh 若没有该目录 请先执行一次 ssh localhost ssh keygen t rsa 会有提示 都按回车就可以 cat id rsa pub
  • JSON注入与CSRF漏洞原理与复现

    JSON注入与CSRF漏洞原理与复现 1 JSON JavaScript Object Notation JavaScript对象表示法 2 它是一种数据格式 而不是一种编程语言 3 JSON的语法 有三种类型的值 简单值 对象 数组 关于
  • 【深度学习】 Python 和 NumPy 系列教程(十六):Matplotlib详解:2、3d绘图类型(2)3D散点图(3D Scatter Plot)

    目录 一 前言 二 实验环境 三 Matplotlib详解 1 2d绘图类型 2 3d绘图类型 0 设置中文字体 1 线框图 Wireframe Plot 2 3D散点图 3D Scatter Plot 一 前言 Python是一种高级编程
  • Qt for Android——关于版本的选择(ABI和CPU版本)

    1 前景介绍 之前在开发Qt for Android程序的时候 不知道如何选择套件的版本 乱选一通 经常是程序开发完 到了运行选择设备的时候告诉我设备不匹配 不支持这个ABI 下面就来讲讲这些版本 2 Qt中套件对应的版本 在我们安装Qt的
  • JTest

    接到parasoft公司一位先生打来的电话 说下个月第二周到上海来 希望顺便给我们组培训一下JTest和C Test的使用 我是用java的 自然对JTest更感兴趣一些 上网一搜 原来JTest这么出名 自己的确孤陋寡闻了 看了一下价格
  • 如何下载微信支付证书(API证书)

    一 登录微信商户平台 1 商户平台登陆网址 微信支付 中国领先的第三方支付平台 微信支付提供安全快捷的支付方式http pay weixin qq com 2 登录方式 扫码登录登录 二 进入微信商户平台下载证书 1 点击账户中心 账户设置
  • Vue简易登陆页面

    目录 1 效果展示 2 Vue代码 3 存点图片 1 效果展示 2 Vue代码