先贴一下目前目录结构

接下来该Login.vue页面,需要用到scss,Sass是成熟、稳定、强大的CSS预处理器,而SCSS是Sass3版本当中引入的新语法特性,完全兼容CSS3的同时继承了Sass强大的动态功能。

安装scss:命令行下执行 yarn add sass-loader node-sass --dev

然后在build文件夹下的webpack.base.conf.js中添加如下代码

使用时在<style>标签中加上lang="scss"

还需要用到Cookie来获取token,安装js-cookie:在命令下下执行 yarn add js-cookie

修改Login.vue页面

<template>
  <el-form :model="loginForm" :rules="rules" ref="loginForm" label-position="left" label-width="0px"
           class="demo-ruleForm login-container">
    <h3 class="title">系统登录</h3>
    <el-form-item prop="account">
      <el-input type="text" v-model="loginForm.account" auto-complete="off" placeholder="账号" prop="account"
                clearable="true"></el-input>
    </el-form-item>
    <el-form-item prop="password">
      <el-input type="password" v-model="loginForm.password" auto-complete="off" placeholder="密码" prop="password"
                clearable="true"></el-input>
    </el-form-item>
    <el-form-item style="width:100%;">
      <el-button type="primary" style="width:47.5%;" @click.native.prevent="reset">重 置</el-button>
      <el-button type="primary" style="width:47.5%;" @click.native.prevent="login" :loading="logining">登 录</el-button>
    </el-form-item>
  </el-form>
</template>

<script>
    import Cookies from "js-cookie";

    export default {
        name: 'Login',
        data() {
            return {
                logining: false,
                loginForm: {
                    account: 'admin',
                    password: '123456'
                },
                rules: {
                    account: [
                        {required: true, message: '请输入账号', trigger: 'blur'},
                    ],
                    password: [
                        {required: true, message: '请输入密码', trigger: 'blur'},
                    ]
                },
                checked: true
            };
        },
        methods: {
            login() {
                let userInfo = {account: this.loginForm.account, password: this.loginForm.password}
                this.$api.login(JSON.stringify(userInfo)).then((res) => {
                    Cookies.set('token', res.data.token) // 放置token到Cookie
                    sessionStorage.setItem('user', userInfo.account) // 保存用户到本地会话
                    this.$router.push('/')  // 登录成功,跳转到主页
                }).catch(function (res) {
                    alert(res);
                });
            },
            reset() {
                this.$refs.loginForm.resetFields();
            }
        }
    }
</script>
<style scoped>
  .login-container {
    background: #fff url("../../static/Ponyo.jpg") no-repeat;
    -webkit-border-radius: 5px;
    border-radius: 5px;
    -moz-border-radius: 5px;
    background-clip: padding-box;
    margin: 180px auto;
    width: 300px;
    padding: 35px 35px 15px 35px;
    border: 1px solid #eaeaea;
    box-shadow: 0 0 25px #cac6c6;

  .title {
    margin: 0px auto 40px auto;
    text-align: center;
    color: #505458;
  }

  .remember {
    margin: 0px 0px 35px 0px;
  }

  }
</style>

img图片:随便加一张图片放入static目录下就行

访问http://localhost:8081/#/login

Logo

前往低代码交流专区

更多推荐