前后端分离开发vue+Elementyui+abpcorewebapi商城管理系统(三)登录退出功能

登录功能概述

前后端分离开发vue+Elementyui+abpcorewebapi商城管理系统(三)登录退出功能

 

token原理分析

前后端分离开发vue+Elementyui+abpcorewebapi商城管理系统(三)登录退出功能

 

 

 登录页面布局

ElementUI官网文档地址:

https://element.eleme.cn/2.0/#/zh-CN/component/form

前后端分离开发vue+Elementyui+abpcorewebapi商城管理系统(三)登录退出功能

 

 代码编写之前先创建功能开发分支

git status  //查看当前工作区是否干净

git checkout -b login   //创建新的分支login

git branch   //查看当前分支是哪一个

git add .

git commit -m "信息"

git checkout master  //切换回master分支

git merge login     //将login分支汇入master中

git push   //将本地master推入到gitee上

git push -u origin login   //将本地login推入到gitee上

代码文件Login.Vue

 

<template>
  <div class="login_container">
      <div class="login_box">
        <!-- 头像 -->
        <div class="avatar_box">
          <img src="../assets/logo.png" alt="">
        </div>
        <!-- 表单 -->
        <el-form ref="LoginFormRef" :model="loginForm" label-width="0" :rules="LoginFormRules" class="login_form">
          <el-form-item prop="username">
            <el-input v-model="loginForm.username" prefix-icon="el-icon-user"></el-input>
          </el-form-item>
          <el-form-item prop="password">
            <el-input v-model="loginForm.password" prefix-icon="el-icon-lock" type="password"></el-input>
          </el-form-item>
          <el-form-item class="btns">
            <el-button type="primary" @click="login">登录</el-button>
            <el-button type="info" @click="resetLoginForm">重置</el-button>
          </el-form-item>
        </el-form>  
      </div>
  </div>
</template>

<script>
export default {
    data() {
      return {
        loginForm:{
          username:admin,
          password:123456
        },
        LoginFormRules:{
          username:[
            { required: true, message: 请输入用户名, trigger: blur },
          ],
          password:[
            { required: true, message: 请输入密码, trigger: blur },
          ]
        }
      }
    },
    methods: {
      resetLoginForm() {
        this.$refs.LoginFormRef.resetFields()
      },
      login() {
        this.$refs[LoginFormRef].validate(async (valid) => {
          if (valid) {
            const {data:res} = await this.$http.post(login,this.loginForm)
            if (res.meta.status==200){
              this.$message({
                message:登录成功,
                type:success
              })
              window.sessionStorage.setItem(token,res.data.token)
              this.$router.push(/home)
            }else{
              this.$message({
                message:res.meta.msg,
                type:error
              })
            }
          } else {
            return false
          }
        })
      }
    }
}
</script>

<style lang="less" scoped>
.login_container{
  background-color: #2b4b6b;
  height: 100%;
}

.login_box{
  width: 450px;
  height: 300px;
  background-color: #fff;
  border-radius: 3px;
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%,-50%)
}

.avatar_box{
  width: 130px;
  height: 130px;
  border: 1px solid #eee;
  border-radius: 50%;
  padding: 10px;
  box-shadow: 0 0 10px #ddd;
  position: absolute;
  left:50%;
  transform: translate(-50%,-50%);
  background-color: #fff;
  img{
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background-color: #eee;
  }
}

.login_form{
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: 20px;
  box-sizing: border-box;
}

.btns{
  display: flex;
  justify-content:flex-end;
}
</style>>

 

前后端分离开发vue+Elementyui+abpcorewebapi商城管理系统(三)登录退出功能

上一篇:洛谷 P1217 [USACO 1.5] 回文质数 Prime Palindrome


下一篇:C#如何定义与类或结构之间的转换的代码