目录

前端VueElement-UI案例通用后台管理系统-登陆页面Login

【前端】Vue+Element UI案例:通用后台管理系统-登陆页面Login

参考视频:

案例链接
【前端】Vue+Element UI案例:通用后台管理系统-导航栏(视频p1-16)
【前端】Vue+Element UI案例:通用后台管理系统-Header+导航栏折叠(p17-19)
【前端】Vue+Element UI案例:通用后台管理系统-Home组件:卡片、表格(p20-22)
【前端】Vue+Element UI案例:通用后台管理系统-Echarts图表准备:axios封装、mock数据模拟实战(p23-25)
【前端】Vue+Element UI案例:通用后台管理系统-Echarts图表:折线图、柱状图、饼状图(p27-30)
【前端】Vue+Element UI案例:通用后台管理系统-面包屑、tag栏(p31-35)
【前端】Vue+Element UI案例:通用后台管理系统-用户管理:Form表单填写、Dialog对话框弹出(p36-38)
【前端】Vue+Element UI案例:通用后台管理系统-用户管理:Table表格增删查改、Pagination分页、搜索框(p39-42)
【前端】Vue+Element UI案例:通用后台管理系统-登陆页面Login(p44)
【前端】Vue+Element UI案例:通用后台管理系统-登陆页面功能:登录权限跳转、路由守卫、退出(p45-46)
【前端】Vue+Element UI案例:通用后台管理系统-登陆不同用户显示不同菜单、动态添加路由(p47-48)
【前端】Vue+Element UI案例:通用后台管理系统-项目总结

本篇很短,因为只有一个页面。没有功能。

https://i-blog.csdnimg.cn/blog_migrate/34e2de25a32ec26ce4d5acf7ea1b24d6.png

  • 登陆页面,路由为/login
  • 有表单验证

在router的index.js文件中的routes中添加对象:

{
    path:'/login',
    component:Login
}

显然是表单,我们对表单已经很熟悉了。

https://i-blog.csdnimg.cn/blog_migrate/418b5e77b06349c2d4581d587d81869c.png

<template>
    <el-form :model="login" status-icon :rules="rules" ref="login" label-width="100px">
        <!-- h3要放在里面:只能有一个根,且title也是表单的一部分 -->
        <h3 class="login_title">用户登录</h3>
        <!-- prop对应rules里的键 -->
        <el-form-item label="用户名" prop="username">
            <el-input type="password" v-model="login.username" autocomplete="off"></el-input>
        </el-form-item>

        <el-form-item label="密码" prop="password">
            <el-input type="password" v-model="login.password" autocomplete="off"></el-input>
        </el-form-item>

        <el-form-item>
            <el-button type="primary">提交</el-button>
        </el-form-item>
    </el-form>
</template>
// 校验规则
rules: {
    username:[{required:'true',message:'请输入用户名',trigger:'blur'}],
    password:[{required:'true',message:'请输入用户名',trigger:'blur'}]
}

效果:

https://i-blog.csdnimg.cn/blog_migrate/0983b77ff6517d04a41a3d1bdc184f4d.png

css:

.login_container {
    width: 350px;
    border: 1px solid #eaeaea;

    // 居中
    margin: 180px auto;

    padding: 35px 35px 15px 35px;

    // 让padding在width里面
    box-sizing: border-box;

    border-radius: 15px;
    background-color: #fff;
    box-shadow: 0 0 25px #cac6c6;

    .login_title {
        color: #505458;
        // 左右居中
        text-align: center;
        margin-bottom: 40px;
    }

    .el-input {
        width: 198px;
    }
}

在html中的样式:

表单域标签的宽度。

<el-form 
class="login_container" 
:model="login" 
status-icon :rules="rules" 
ref="login" 
label-width="70px">

让提交button在中间:

<el-form-item>
    <el-button type="primary" 
    style="margin-left:30px;margin-top:10px">
    提交
    </el-button>
</el-form-item>
<template>
    <el-form class="login_container" :model="login" status-icon :rules="rules" ref="login" label-width="70px">
        <!-- h3要放在里面:只能有一个根,且title也是表单的一部分 -->
        <h3 class="login_title">用户登录</h3>
        <!-- prop对应rules里的键 -->
        <el-form-item label="用户名" prop="username">
            <el-input v-model="login.username" autocomplete="off"></el-input>
        </el-form-item>

        <el-form-item label="密码" prop="password">
            <el-input type="password" v-model="login.password" autocomplete="off"></el-input>
        </el-form-item>

        <el-form-item>
            <el-button type="primary" style="margin-left:30px;margin-top:10px">提交</el-button>
        </el-form-item>
    </el-form>
</template>

<script>
export default {
    data() {
        return {
            // 登陆数据
            login: {
                username: '',
                password: ''
            },
            // 校验规则
            rules: {
                username: [{ required: 'true', message: '请输入用户名', trigger: 'blur' }],
                password: [{ required: 'true', message: '请输入用户名', trigger: 'blur' }]
            }
        }
    },
}
</script>

<style lang="less" scoped>
.login_container {
    width: 350px;
    border: 1px solid #eaeaea;

    // 居中
    margin: 180px auto;

    padding: 35px 35px 15px 35px;

    // 让padding在width里面
    box-sizing: border-box;

    border-radius: 15px;
    background-color: #fff;
    box-shadow: 0 0 25px #cac6c6;

    .login_title {
        color: #505458;
        // 左右居中
        text-align: center;
        margin-bottom: 40px;
    }

    .el-input {
        width: 198px;
    }
}
</style>

https://i-blog.csdnimg.cn/blog_migrate/b5065f2cbb59a400574684f096f08577.png

表单验证失败:

https://i-blog.csdnimg.cn/blog_migrate/2956c89979c86e50d31005836d2a23f2.png

表单验证成功:

https://i-blog.csdnimg.cn/blog_migrate/e3417250b1f4319b0c12137155512e8b.png