基于vue的引入登录界面

news2024/11/15 13:35:44

 以下是一些常见的登录页面布局:

1. 中心布局 - 登录表单位于页面的中心位置,通常包括用户名输入框、密码输入框、登录按钮等元素。页面背景简洁,以突出登录表单。 - 这种布局常见于大多数网站和应用,简洁明了,用户注意力容易集中在登录操作上。

2. 左右布局 - 将页面分为左右两部分,一侧放置登录表单,另一侧可能会展示一些相关的信息,如网站或应用的介绍、特色功能、安全提示等。 - 这种布局可以在用户登录的同时提供一些额外的有用信息。

3. 顶部导航栏布局 - 页面顶部有导航栏,包含登录、注册等链接,登录表单则在页面主体部分。 - 适合网站或应用具有多个页面和功能,用户可以方便地在登录和其他页面之间切换。

4. 卡片式布局 - 登录表单以卡片的形式呈现,具有明显的边框和阴影,与页面背景形成区分。 - 这种布局可以使登录表单看起来更加突出和独立。

5. 响应式布局 - 能够根据不同设备的屏幕尺寸自动调整布局,以提供最佳的用户体验。在小屏幕设备上,可能会采用单列布局,而在大屏幕设备上则可以采用更复杂的布局方式。

6. 社交媒体快捷登录布局 - 除了常规的用户名和密码登录方式,还提供通过社交媒体账号(如微信、QQ、微博等)快速登录的选项。 - 方便用户选择自己熟悉和便捷的登录方式。

7. 分步登录布局 - 将登录过程分为多个步骤,例如第一步输入用户名,第二步输入密码等,逐步引导用户完成登录。 - 有助于减少用户一次性输入大量信息的压力。

8. 全屏幕布局 - 登录表单占据整个屏幕,提供沉浸式的登录体验,减少干扰。 不同的布局方式各有特点,选择哪种布局取决于网站或应用的设计风格、目标用户群体以及功能需求等因素。

 Login登录页面

<template>
  <div class="login-container">
    <div class="layer">
      <div class="some-space">
        <div class="form">
          <h2>大数据可视化平台</h2>
          <div class="item">
            <i class="iconfont icon-user"></i>
            <input autocomplete="off"
                   type="text"
                   class="input"
                   v-model="userName"
                   placeholder="请输入用户名" />
          </div>
          <div class="item">
            <i class="iconfont icon-password"></i>
            <input autocomplete="off"
                   type="password"
                   class="input"
                   v-model="userPwd"
                   maxlength="20"
                   @keyup.enter="login"
                   placeholder="请输入密码" />
          </div>
          <button class="loginBtn"
                  :disabled="isLoginAble"
                  @click.stop="login">
            立即登录
          </button>
          <div class="tip">
            默认用户名:admin ,默认密码:123456
          </div>
        </div>
      </div>
    </div>

    <vue-particles color="#6495ED"
                   :particleOpacity="0.7"
                   :particlesNumber="80"
                   shapeType="circle"
                   :particleSize="4"
                   linesColor="#6495ED"
                   :linesWidth="1"
                   :lineLinked="true"
                   :lineOpacity="0.6"
                   :linesDistance="150"
                   :moveSpeed="3"
                   :hoverEffect="true"
                   hoverMode="grab"
                   :clickEffect="true"
                   clickMode="push">
    </vue-particles>

    <bgAnimation />

    <modal title="提示"
           :content="modalContent"
           :visible.sync="visible"
           @confirm="confirm">
    </modal>

  </div>
</template>

<script>

export default {
  name: 'Login',
  components: {},
  data () {
    return {
      userName: 'admin',
      userPwd: '123456',
      visible: false,
      modalContent: '这是一段自定义模态框消息'
    }
  },
  computed: {
    isLoginAble () {
      return !(this.userName && this.userPwd);
    }
  },
  created () { },
  mounted () {

  },
  methods: {
    login () {
      if (this.userName == 'admin' && this.userPwd == '123456') {
        this.$router.push({
          path: '/traffic'
        })
      } else {
        this.$Toast({
          content: '请输入正确的用户名和密码',
          type: 'error',
          // hasClose: true
        })
      }
    },
    confirm () {
      this.visible = false;
      console.log('点击确定')
    }
  }
}
</script>

<style lang="scss" scoped>
.login-container {
  .layer {
    position: absolute;
    height: 100%;
    width: 100%;
    position: absolute;
    height: 100%;
    width: 100%;
    background-image: url('../assets/bg-4.jpg');  // 增加这一行设置背景图片
    background-size: cover;  // 调整背景图片的尺寸以适应容器
    background-repeat: no-repeat;  // 防止背景图片
  }
  #particles-js {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1000;
  }
  .some-space {
    color: white;
    font-weight: 100;
    letter-spacing: 2px;
    position: absolute;
    top: 50%;
    left: 50%;
    z-index: 1001;
    -webkit-transform: translate3d(-50%, -50%, 0);
    transform: translate3d(-50%, -50%, 0);

    -ms-animation: cloud 2s 3s ease-in infinite alternate;
    -moz-animation: cloud 2s 3s ease-in infinite alternate;
    -webkit-animation: cloud 2s 3s ease-in infinite alternate;
    -o-animation: cloud 2s 3s ease-in infinite alternate;
    -webkit-animation: cloud 2s 3s ease-in infinite alternate;
    animation: cloud 2s 3s ease-in infinite alternate;

    .form {
      width: 460px;
      height: auto;
      background: rgba(36, 36, 85, 0.5);
      margin: 0 auto;
      padding: 35px 30px 25px;
      box-shadow: 0 0 25px rgba(255, 255, 255, 0.5);
      border-radius: 10px;
      .item {
        display: flex;
        align-items: center;
        margin-bottom: 25px;
        border-bottom: 1px solid #d3d7f7;
        i {
          color: #d3d7f7;
          margin-right: 10px;
        }
      }
      h2 {
        text-align: center;
        font-weight: normal;
        font-size: 26px;
        color: #d3d7f7;
        padding-bottom: 35px;
      }
      .input {
        font-size: 16px;
        line-height: 30px;
        width: 100%;
        color: #d3d7f7;
        outline: none;
        border: none;
        background-color: rgba(0, 0, 0, 0);
        padding: 10px 0;
      }
      .loginBtn {
        width: 100%;
        padding: 12px 0;
        border: 1px solid #d3d7f7;
        font-size: 16px;
        color: #d3d7f7;
        cursor: pointer;
        background: transparent;
        border-radius: 4px;
        margin-top: 10px;
        &:hover {
          color: #fff;
          background: #0090ff;
          border-color: #0090ff;
        }
      }
      .tip {
        font-size: 12px;
        padding-top: 20px;
      }
    }
  }
}

input::-webkit-input-placeholder {
  color: #d3d7f7;
}
input::-moz-placeholder {
  /* Mozilla Firefox 19+ */
  color: #d3d7f7;
}
input:-moz-placeholder {
  /* Mozilla Firefox 4 to 18 */
  color: #d3d7f7;
}
input:-ms-input-placeholder {
  /* Internet Explorer 10-11 */
  color: #d3d7f7;
}

@-ms-keyframes cloud {
  0% {
    -ms-transform: translate(-50%, -50%);
  }
  40% {
    opacity: 1;
  }
  60% {
    opacity: 1;
  }
  100% {
    -ms-transform: translate(-50%, -40%);
  }
}
@-moz-keyframes cloud {
  0% {
    -moz-transform: translate(-50%, -50%);
  }
  40% {
    opacity: 1;
  }
  60% {
    opacity: 1;
  }
  100% {
    -moz-transform: translate(-50%, -40%);
  }
}
@-o-keyframes cloud {
  0% {
    -o-transform: translate(-50%, -50%);
  }
  40% {
    opacity: 1;
  }
  60% {
    opacity: 1;
  }
  100% {
    -o-transform: translate(-50%, -40%);
  }
}
@-webkit-keyframes cloud {
  0% {
    -webkit-transform: translate(-50%, -50%);
  }
  40% {
    opacity: 1;
  }
  60% {
    opacity: 1;
  }
  100% {
    -webkit-transform: translate(-50%, -40%);
  }
}
@keyframes cloud {
  0% {
    transform: translate(-50%, -50%);
  }
  40% {
    opacity: 1;
  }
  60% {
    opacity: 1;
  }
  100% {
    transform: translate(-50%, -40%);
  }
}
</style>

 代码结构

修改一个初始化响应期

修改自己对应的响应文件index.js

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

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

相关文章

Spring Boot Vue 毕设系统讲解 3

目录 项目配置类 项目中配置的相关代码 spring Boot 拦截器相关知识 一、基于URL实现的拦截器&#xff1a; 二、基于注解的拦截器 三、把拦截器添加到配置中&#xff0c;相当于SpringMVC时的配置文件干的事儿&#xff1a; 项目配置类 项目中配置的相关代码 首先定义项目认…

WebRTC API接口教程:实现高效会议的步骤?

WebRTC api接口教程如何使用&#xff1f;WebRTC api接口的功能&#xff1f; WebRTC无需中间服务器即可传输音视频流&#xff0c;为视频会议、在线教育等应用提供了强大的支持。AokSend将详细介绍如何利用WebRTC API接口实现高效会议的步骤。 WebRTC API接口教程&#xff1a;获…

澳大利亚TikTok直播为什么需要海外直播专线?

近年来&#xff0c;许多卖家为了解决澳大利亚TikTok直播中的卡顿和高延迟问题&#xff0c;纷纷选择使用海外直播专线。这种专线服务是一种高效、低延迟的数据传输解决方案&#xff0c;专为需要高质量网络连接的场合设计。 与公共互联网相比&#xff0c;海外直播专线提供更稳定、…

海外展会 | 7月8-11日,INNOPROM 2024 ,云仪邀您俄罗斯观展→

7月8日&#xff0c;2024俄罗斯工业博览会&#xff08;INNOPROM 2024&#xff09;在俄罗斯工业中心第三大城市“叶卡捷琳堡国际展览中心”隆重举办。作为俄罗斯最大的工业展览会之一&#xff0c;INNOPROM 2024不仅展示了俄罗斯本土的工业实力&#xff0c;更是一个集合了全球最新…

快团团开团大团长和帮卖团长如何合并“收件人信息相同的订单”核销打印?

快团团开团大团长和帮卖团长如何合并“收件人信息相同的订单”核销打印&#xff1f; 一、背景 经营方式为线下自提等无需快递的团长&#xff0c;在核销打印订单时&#xff0c;需要将“收件人信息相同的订单”合并核销打印 二、操作说明 第一步&#xff0c;团长电脑端登陆快…

mybatis 延迟加载

MyBatis的延迟加载&#xff08;Lazy Loading&#xff09;是一种优化技术&#xff0c;用于在需要时才加载关联对象或集合&#xff0c;从而提高性能和效率。以下是对MyBatis延迟加载的详细介绍&#xff1a; 延迟加载的基本概念 延迟加载是指在第一次访问对象的属性时才加载该对象…

G24代刷卡鉴权方案

PICK_G24 产品型号 PICK_G24 尺寸 124x90x12mm&#xff08;不含安装支架&#xff09; 屏幕尺寸 4.2 inch 显示技术 电子墨水屏显示 显示区域面积 (mm) 84.8(H) x 63.6(V) 分辨率 400*300 像素密度 120dpi 显示颜色 黑/白 外观颜色 白色&灰外圏 按键 …

关于 Mac 系统 .DS_store 文件的起源

原文&#xff1a;Arno - 2006.10.01 &#xff08;前排提醒&#xff1a;可以在 .gitignore 中添加 .DS_Store&#xff0c;否则 git 仓库会存储这个和项目无关的文件。&#xff09; 如果你是 Mac 用户&#xff0c;曾经将文件从 Mac 传输到 Windows&#xff0c;那么可能对 .DS_S…

跟极光同频共振?!VELO Angel Ride坐垫,在挪威一起踏上的绿色征途!

如果可以选择&#xff0c;你喜欢徒步旅行还是骑脚踏车呢?      在挪威那片被午夜阳光亲吻的土地上&#xff0c;每一次骑行都是一场与自然对话的盛宴。维乐Angel Ride坐垫&#xff0c;作为环保与骑行舒适度的完美结合&#xff0c;携手每一位探索者&#xff0c;在这片北欧仙…

如何把excel翻译成中文?简单又实用的excel翻译器分享

自打步入职场之后&#xff0c;我才逐渐发现原来处理多语言的Excel文档现已经成为了职场人经常需要面对的挑战~传统的手动翻译不仅耗时费力&#xff0c;还容易出错&#xff0c;尤其是在面对大量数据和复杂的公式时&#xff0c;更是令人头疼。 幸运的是&#xff0c;后来被我发现…

生成图质量评价

1. RichHF-18K 论文地址 解决问题&#xff1a; 如何对生成图质量进行算法评价&#xff0c;以优化图片质量&#xff0c;提升模型生成能力 解决思路&#xff1a; 参考多模态模型&#xff0c;构建评价模型&#xff0c;从7个维度分三个分支对生成图进行测评&#xff1a; Tips&…

【鸿蒙学习笔记】交互事件

官方文档&#xff1a;交互事件 目录标题 分类交互事件-触屏交互事件-手势事件单一手势 分类 交互事件-触屏 在组件上按下(Down) , 滑动(Move) , 抬起(up)时触发的回调事件。包括点击事件、触摸事件和拖拽事件 交互事件-手势事件 在手机上点击打开应用 , 长按后拖动应用 , 这…

idea中的块映射中的子元素无效

在yml文件中&#xff0c;出现块映射中的子元素无效&#xff0c;如图&#xff1a; 在YAML文件中&#xff0c;通常需要在键和值之间添加空格&#xff0c;以确保文件的可读性和正确解析。一些YAML解析器可能要求在冒号后面必须有空格才能正确解析文件。如果不加空格&#xff0c;解…

eventFilter事件过滤器

通过使用eventFilter 事件过滤器&#xff0c;实现QLabel的 Enter、Leave 、MouseButtonPress、MouseButtonDblClick、MouseButtonRelease EventFilterExample.h #ifndef EVENTFILTEREXAMPLE_H #define EVENTFILTEREXAMPLE_H#include <QWidget>namespace Ui { class Event…

C++内存的一些知识点

一、内存分区 在C中&#xff0c;内存主要分为以下几个区域&#xff1a; 代码区&#xff1a;存放函数体的二进制代码。 全局/静态存储区&#xff1a;存放全局变量和静态变量&#xff0c;这些变量在程序的整个运行期间都存在。常量存储区&#xff1a;存放常量&#xff0c;这些值…

聚观早报 | 2025款比亚迪海豚上市;小米15系列防水细节

聚观早报每日整理最值得关注的行业重点事件&#xff0c;帮助大家及时了解最新行业动态&#xff0c;每日读报&#xff0c;就读聚观365资讯简报。 整理丨Cutie 7月9日消息 2025款比亚迪海豚上市 小米15系列防水细节 荣耀Magic V3将更轻薄 真我GT6通信细节 Apple Watch SE将…

修改服务器挂载目录

由于我们的项目通常需要挂载一个大容量的数据盘来存储文件数据&#xff0c;所以我们每台服务器都需要一个默认的挂载目录来存放这些数据&#xff0c;但是由于我们的误操作&#xff0c;导致挂载目录名字建错了&#xff0c;这时候后端就读不到挂载目录了&#xff0c;那我们我们的…

layui项目中的layui.define、layui.config以及layui.use的使用

第一步:创建一个layuiTest项目&#xff0c;结构如下 第二步&#xff1a;新建一个test.js,利用layui.define定义一个模块test,并向外暴露该模块&#xff0c;该模块里面有两个方法method1和method2. 第三步&#xff1a;新建一个test.html&#xff0c;在该页面引入layui.js&#x…

能见度监测系统—高精度的能见度测量

TH-NJD10能见度监测系统是一种用于实时监测和测量大气中能见度情况的系统&#xff0c;广泛应用于交通运输、气象观测、环境监测等领域。能见度监测系统通过安装在特定位置的监测器和传感器&#xff0c;实时采集大气中的光散射、光衰减等参数&#xff0c;经过计算处理后得出能见…

六西格玛培训:打破瓶颈,提升效率——张驰咨询

在当今这个竞争激烈的商业环境中&#xff0c;企业要想在市场中脱颖而出&#xff0c;就必须不断提高产品和服务的质量&#xff0c;同时优化流程以降低成本。六西格玛&#xff0c;作为一种旨在减少变异、提高过程能力的管理策略&#xff0c;正逐渐成为企业提升竞争力的关键工具。…