zoukankan      html  css  js  c++  java
  • 前后端分离开发vue+Elementyui+abpcorewebapi商城管理系统(四)登录退出功能

    登录功能概述

    token原理分析

     登录页面布局

    ElementUI官网文档地址:

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

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

    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{
       450px;
      height: 300px;
      background-color: #fff;
      border-radius: 3px;
      position: absolute;
      left: 50%;
      top: 50%;
      transform: translate(-50%,-50%)
    }
    
    .avatar_box{
       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{
         100%;
        height: 100%;
        border-radius: 50%;
        background-color: #eee;
      }
    }
    
    .login_form{
      position: absolute;
      bottom: 0;
       100%;
      padding: 20px;
      box-sizing: border-box;
    }
    
    .btns{
      display: flex;
      justify-content:flex-end;
    }
    </style>>
  • 相关阅读:
    运用jQuery实现动态点赞
    $scope作用及模块化解决全局问题
    angular数据绑定---js全局学习
    HDU 2102 A计划 (深搜)
    ffmpeg 常用命令汇总
    基于Red5与ffmpeg实现rtmp处理NVR或摄像头的监控视频处理方案
    Linux 下编写.sh文件运行JAR下的Class
    如何帮助团队完成一个优秀的API文档,Swagger和Spring Rest Docs两个都是十分优秀的工具!...
    你关心的学历问题在这里
    北京一二线大厂以及程序员层级分布
  • 原文地址:https://www.cnblogs.com/xiewenyu/p/13098520.html
Copyright © 2011-2022 走看看