登录功能概述
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{ 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>>