Vue + Node + Element UI 项目(五)_登录页开发

1. 参考文献

Vue + Element UI 实现权限管理系统 前端篇(四):优化登录流程
https://www.cnblogs.com/xifengxiaoma/p/9537205.html

2. 最终样式

3. Code

  • HTML
<template>
  <div class="login-layout" :style="{ height: clientHeight + 'px' }">
    <div class="login-pannel clearfix">
      <div class="pic">
        <img src="./img/login_pic.png" alt="">
      </div>
      <div class="info">
        <h2 class="sysname">{{ sysName }}</h2>
        <el-form :model="loginForm" :rules="loginRules" ref="loginForm" :label-position="labelPosition" label-width="80px"  class="login-from">
          <el-form-item label="用户名"  prop="email" >
            <el-input type="text" v-model="loginForm.email" placeholder="sample@email.com" ></el-input>
          </el-form-item>
          <el-form-item label="密码"  prop="pass">
            <el-input type="password" v-model="loginForm.pass"></el-input>
          </el-form-item>
          <el-form-item style="height: 48px; margin: 56px 0 0">
            <el-button type="primary" class="linear-btn" @click.native.prevent="login" :loading="logining">登 录</el-button>
          </el-form-item>
        </el-form>

      </div>
    </div>
    
    
  </div>

</template>
  • JS
<script>
import Mock from '@/mock/index.js';
import Cookies from "js-cookie";
import router from '@/router';

export default {
  name: 'Login',
  data () {
    return {
      clientHeight:'',
      sysName: '设计之家',
      labelPosition: 'top',
      logining: false,
      loginForm: {
        email: 'penghl@yeah.net',
        pass: '12345678'
      },
      loginRules: {
        email: [
          { required: true, message: '请输入邮箱地址', trigger: 'blur' },
        ],
        pass: [
          { required: true, message: '请输入密码', trigger: 'blur' },
        ]
      }

    }
  },
  mounted(){
    this.initHeight();
  },
  methods: {
    initHeight(){  //获取高度
        //获取浏览器可视区域高度
        this.clientHeight =  window.innerHeight;
        // console.log(this.clientHeight);

        window.onresize = () => {  //当窗口或框架发生改变时触发
          this.clientHeight =  window.innerHeight;
          // console.log("onresize进来了");
          // console.log(this.clientHeight);
        };
    },

    login() {
      let userInfo = {email:this.loginForm.email, pass:this.loginForm.pass}
      this.$api.login(JSON.stringify(userInfo)).then((res) => {
          Cookies.set('token', res.data.token) // 放置token到Cookie
          sessionStorage.setItem('user', userInfo.email) // 保存用户到本地会话
          this.$router.push('/')  // 登录成功,跳转到主页
        }).catch(function(res) {
          alert(res);
        });
    }

  }
}
</script>
  • SCSS

posted @ 2020-12-28 10:48  岚苑  阅读(280)  评论(0)    收藏  举报