vue实现登录界面
作者:Hi-Sun 发布时间:2024-05-02 16:53:56
标签:vue,登录界面
使用Vue实现简单的用户登录界面,登录成功以后查询账号用户类型进行相应的页面路由跳转,效果如下图所示:
HTML部分:
<div class="loginbody">
? ? <div class="login">
? ? ? <div class="mylogin" align="center">
? ? ? ? <h4>登录</h4>
? ? ? ? <el-form
? ? ? ? ? :model="loginForm"
? ? ? ? ? :rules="loginRules"
? ? ? ? ? ref="loginForm"
? ? ? ? ? label-width="0px"
? ? ? ? >
? ? ? ? ? <el-form-item
? ? ? ? ? ? label=""
? ? ? ? ? ? prop="account"
? ? ? ? ? ? style="margin-top:10px;"
? ? ? ? ? >
? ? ? ? ? ? <el-row>
? ? ? ? ? ? ? <el-col :span='2'>
? ? ? ? ? ? ? ? <span class="el-icon-s-custom"></span>
? ? ? ? ? ? ? </el-col>
? ? ? ? ? ? ? <el-col :span='22'>
? ? ? ? ? ? ? ? <el-input
? ? ? ? ? ? ? ? ? class="inps"
? ? ? ? ? ? ? ? ? placeholder='账号'
? ? ? ? ? ? ? ? ? v-model="loginForm.account">
? ? ? ? ? ? ? ? </el-input>
? ? ? ? ? ? ? </el-col>
? ? ? ? ? ? </el-row>
? ? ? ? ? </el-form-item>
? ? ? ? ? <el-form-item
? ? ? ? ? ? label=""
? ? ? ? ? ? prop="passWord"
? ? ? ? ? >
? ? ? ? ? ? <el-row>
? ? ? ? ? ? ? <el-col :span='2'>
? ? ? ? ? ? ? ? <span class="el-icon-lock"></span>
? ? ? ? ? ? ? </el-col>
? ? ? ? ? ? ? <el-col :span='22'>
? ? ? ? ? ? ? ? <el-input
? ? ? ? ? ? ? ? ? class="inps"
? ? ? ? ? ? ? ? ? type="password"
? ? ? ? ? ? ? ? ? placeholder='密码'
? ? ? ? ? ? ? ? ? v-model="loginForm.passWord"
? ? ? ? ? ? ? ? ></el-input>
? ? ? ? ? ? ? </el-col>
? ? ? ? ? ? </el-row>
? ? ? ? ? </el-form-item>
? ? ? ? ? <el-form-item style="margin-top:55px;">
? ? ? ? ? ? <el-button
? ? ? ? ? ? ? type="primary"
? ? ? ? ? ? ? round
? ? ? ? ? ? ? class="submitBtn"
? ? ? ? ? ? ? @click="submitForm"
? ? ? ? ? ? >登录
? ? ? ? ? ? </el-button>
? ? ? ? ? </el-form-item>
? ? ? ? ? <div class="unlogin">
? ? ? ? ? ? <router-link :to="{ path: '/forgetpwd'}">
? ? ? ? ? ? ? 忘记密码?
? ? ? ? ? ? </router-link>
? ? ? ? ? ? |
? ? ? ? ? ? <router-link :to="{path: '/register'}">
? ? ? ? ? ? ? <a href="register.vue" target="_blank" align="right">注册新账号</a>
? ? ? ? ? ? </router-link>
? ? ? ? ? </div>
? ? ? ? </el-form>
? ? ? </div>
? ? </div>
? </div>
JS部分
?import {mapMutations} from "vuex";
?
? export default {
? ? name: "Login",
? ? data: function () {
? ? ? return {
? ? ? ? loginForm: {
? ? ? ? ? account: '',
? ? ? ? ? passWord: ''
? ? ? ? },
? ? ? ? loginRules: {
? ? ? ? ? account: [
? ? ? ? ? ? {required: true, message: "请输入账号", trigger: "blur"}
? ? ? ? ? ],
? ? ? ? ? passWord: [{required: true, message: "请输入密码", trigger: "blur"}]
? ? ? ? }
? ? ? }
? ? },
? ?
? ? methods: {
? ? ? ...mapMutations(['changeLogin']),
? ? ? submitForm() {
? ? ? ? let self = this;
? ? ? ? const userAccount = this.loginForm.account;
? ? ? ? const userPassword = this.loginForm.passWord;
? ? ? ? const userForm = new FormData();
? ? ? ? userForm.append('userAccount', userAccount);
? ? ? ? userForm.append('userPassword', userPassword);
? ? ? ? this.axios.post('URL1', userForm
? ? ? ? ).then((res) => {
? ? ? ? ? if (res.data == 0) {
? ? ? ? ? ? self.$message({
? ? ? ? ? ? ? type: 'error',
? ? ? ? ? ? ? message: '密码错误,登陆失败!'
? ? ? ? ? ? })
? ? ? ? ? }
? ? ? ? ? //token
? ? ? ? ? self.sessiontoken = res.headers['sessiontoken'];
? ? ? ? ? self.PageToken = Math.random().toString(36).substr(2);
? ? ? ? ? sessionStorage.setItem('PageToken', self.PageToken);
? ? ? ? ? self.changeLogin({sessiontoken: self.sessiontoken});
? ? ? ? ? //登录成功
? ? ? ? ? if (res.data == 1) {
? ? ? ? ? ? self.axios.get("URL2"
? ? ? ? ? ? ).then((res) => {
? ? ? ? ? ? ? if (res.data == null) {
? ? ? ? ? ? ? ? self.$message({
? ? ? ? ? ? ? ? ? type: 'error',
? ? ? ? ? ? ? ? ? message: '查询失败!'
? ? ? ? ? ? ? ? })
? ? ? ? ? ? ? } else {
? ? ? ? ? ? ? ? if (res.data.userType == 0) {
? ? ? ? ? ? ? ? ? self.$router.push({path: '/supermana', replace: true})
? ? ? ? ? ? ? ? } else if (res.data.userType == 1) {
? ? ? ? ? ? ? ? ? self.$router.push({path: '/manauser', replace: true})
? ? ? ? ? ? ? ? } else if (res.data.userType == 2) {
? ? ? ? ? ? ? ? ? self.$router.push({path: '/ordinauser', replace: true})
? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? }
? ? ? ? ? ? }).catch((error) => {
? ? ? ? ? ? ? console.log(error)
? ? ? ? ? ? })
? ? ? ? ? }
? ? ? ? })
? ? ? },
? ? }
? }
CSS部分
?.loginbody {
? ? overflow: scroll;
? ? overflow-y: hidden;
? ? overflow-x: hidden;
? }
?
? .login {
? ? width: 100vw;
? ? padding: 0;
? ? margin: 0;
? ? height: 100vh;
? ? font-size: 16px;
? ? background-position: left top;
? ? background-color: #242645;
? ? color: #fff;
? ? font-family: "Source Sans Pro";
? ? position: relative;
? ? background-image: url('/static/images/background.jpg');
? ? background-repeat: no-repeat;
? ? background-size: 100% 100%;
? }
?
? .mylogin {
? ? width: 240px;
? ? height: 280px;
? ? position: absolute;
? ? top: 0;
? ? left: 0;
? ? right: 0;
? ? bottom: 0;
? ? margin: auto;
? ? padding: 50px 40px 40px 40px;
? ? box-shadow: -15px 15px 15px rgba(6, 17, 47, 0.7);
? ? opacity: 1;
? ? background: linear-gradient(
? ? ? 230deg,
? ? ? rgba(53, 57, 74, 0) 0%,
? ? ? rgb(0, 0, 0) 100%
? ? );
? }
?
? .inps input {
? ? border: none;
? ? color: #fff;
? ? background-color: transparent;
? ? font-size: 12px;
? }
?
? .submitBtn {
? ? background-color: transparent;
? ? color: #39f;
? ? width: 200px;
? }
来源:https://blog.csdn.net/Helloyaling/article/details/106794815


猜你喜欢
- 目录1、设定答题卡模板2、读取答题卡图像并对图像进行灰度化处理3、高斯模糊图像去噪点4、使用大津法二值分割图像5、使用开运算去噪点6、使用c
- 1. ASCII 返回与指定的字符对应的十进制数; SQL> select ascii(A) A,ascii(a) a,ascii(0
- Python代码运行助手可以让你在线输入Python代码,然后通过本机运行的一个Python脚本来执行代码。原理如下:在网页输入代码:点击R
- 写在前面虽然 make 和 new 都是能够用于初始化数据结构,但是它们两者能够初始化的
- 1.TCP是一种面向连接的可靠地协议,在一方发送数据之前,必须在双方之间建立一个连接,建立的过程需要经过三次握手,通信完成后要拆除连接,需要
- 1. 在linux上安装psiblast最好新建一个python环境,因为我发现conda安 * last默认的是python==3.6.11
- type()方法返回传递变量的类型。如果传递变量是字典那么它将返回一个字典类型。语法以下是type()方法的语法:type(di
- 产品通常分两种,一种是遵循现有用户习惯,一种是颠覆用户习惯。至于什么是用户习惯,你现在用右手还是左手操作鼠标,这就是你的习惯。很多公司团队专
- 刷抖音的时候发现一个老师在用的课堂点名系统。用PyQt5实现了一下同款,导入学生姓名,测试了一下完美运行。操作效果展示:完整源代码块还是放在
- 开机运行:随系统启动的应用程序,当系统启动之后会自动加载的应用在注册表中添加启动项便可实现开机启动。代码如下:# -*- coding:ut
- 本文实例讲述了基于进程内通讯的python聊天室实现方法。分享给大家供大家参考。具体如下:#!/usr/bin/env python# Ad
- 看到好几位博主通过对模块的各个击破学习python,我也效法一下,本篇说一下python中加密涉及到的模块。hashlibhashlib模块
- 前言在写程序时,我们会经常碰到程序出现异常,这时候我们就不得不处理这些异常,以保证程序的健壮性。处理异常的版本有以下几种,你通常的做法是哪种
- 一、定义面向对象设计鼓励将行为分布到各个对象中,把对象划分成更小的粒度,有助于增强对象的可复用性。但由于这些细粒度对象之间的联系激增,又可能
- 几何变换图像的几何变换是指将一幅图像映射到另一幅图像内。有缩放、翻转、仿射变换、透视、重映射等操作。1 缩放使用cv2.resize()函数
- 本篇文章主要通过一个简单的例子来实现神经网络。训练数据是随机产生的模拟数据集,解决二分类问题。下面我们首先说一下,训练神经网络的一般过程:1
- 核心代码:ALTER TABLE 表名 AUTO_INCREMENT = 设定的值 MySQL ALTER语法中ALTER [IGNORE]
- 何为共线性:共线性问题指的是输入的自变量之间存在较高的线性相关度。共线性问题会导致回归模型的稳定性和准确性大大降低,另外,过多无关的维度计算
- element-ui官网中关于行合并的例子是根据行号进行合并的,这显然不符合我们日常开发需求,因为通常我们table中的数据都是动态生成的,
- @num=1; 把num类型转成nvarchar类型 cast(@num as nvarchar(10)) @str='123