login.html 5.47 KB
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>调派系统 -登录</title>

    <link href="/assets/uikit-3.0.0/css/uikit.min.css" rel="stylesheet" type="text/css"/>
    <style>
        html, body, .ct-container {
            height: 100%;
        }

        .ct-container {

        }

        .login_form_panel {
            width: 450px;
            height: 420px;
            position: absolute;
            top: 50%;
            left: 50%;
            margin-left: -225px;
            margin-top: -300px;
            text-align: center;
            color: #333;
            padding-bottom: 56px;
            transition: all .3s ease;
            overflow: hidden;
        }

        .login_form_panel .uk-card-title {
            font-family: 华文楷体, 华文细黑;
            font-size: 28px;
            font-weight: 600;
            color: #4a4a4a;
            margin-bottom: 15px;
        }

        .login-form {
            margin-top: 40px;
        }

        .login-form .uk-margin {
            margin-bottom: 30px;
        }

        .login-form .uk-margin .uk-inline {
            width: 90%;
        }

        input::-webkit-input-placeholder {
            font-size: 13px;
            color: #9c9898 !important;
        }

        .ct_desc_info {
            font-size: 13px;
            color: #f74d4d;
            transition: all .3s ease;
            position: absolute;
            bottom: -20px;
            left: 0;
            width: 100%;
        }

        .ct_desc_info.show {
            bottom: 10px;
        }

        .ct_desc_info.show.success{
            color: #2196F3;
        }
    </style>
</head>

<body>
<div class="ct-container">
    <div class="uk-card uk-card-default uk-card-body login_form_panel">
        <h3 class="uk-card-title">智能场站调派系统</h3>
        <small style="color: #909090;">高科西路停车场</small>
        <form class="login-form">

            <div class="uk-margin">
                <div class="uk-inline">
                    <span class="uk-form-icon" uk-icon="icon: user"></span>
                    <input class="uk-input" type="text" placeholder="输入用户名" name="userName" autofocus>
                </div>
            </div>

            <div class="uk-margin">
                <div class="uk-inline">
                    <span class="uk-form-icon" uk-icon="icon: lock"></span>
                    <input class="uk-input" type="password" name="password" placeholder="输入密码">
                </div>
            </div>

            <div class="uk-margin">
                <button type="submit" class="uk-button uk-button-primary uk-button-large uk-width-1-1 ">登录</button>
            </div>

            <span class="ct_desc_info"></span>
        </form>
    </div>
</div>
<script src="/assets/plugins/jquery.min.js"></script>
<script src="/assets/uikit-3.0.0/js/uikit.min.js"></script>
<script src="/assets/uikit-3.0.0/js/uikit-icons.min.js"></script>
<script src="/assets/plugins/jquery.serializejson.js"></script>
<script src="/assets/plugins/jsencrypt.min.js"></script>

<script>

    (function () {

        var $loginBtn = $('[type=submit]', '.login-form');
        $('form').on('submit', function () {
            return false;
        });

        var keys;
        $.get('/user/login/jCryptionKey?t=' + Math.random(), function (data) {
            keys = data.publickey;
        });

        //登录
        $loginBtn.on('click', function () {
            //前端数据校验
            if (checkIn()) {
                $(this).attr('disabled', 'disabled');

                var data = $('.login-form').serializeJSON();
                //RSA加密
                var encrypt = new JSEncrypt();
                encrypt.setPublicKey(keys);
                data.userName = encrypt.encrypt(data.userName);
                data.password = encrypt.encrypt(data.password);

                //登录
                login(data);
            }
        });

        var lock;

        function login(data) {
            lock = true;
            $('#loginBtn').attr('disabled', 'disabled');
            $.post('/user/login', data, function (rs) {
                if (error(rs)) {
                    lock = false;
                    showMsg('登录失败,' + rs.msg);
                    $loginBtn.removeAttr('disabled');

                }
                else {
                    showMsg('登录成功', true);
                    window.location.href = '/';
                }
            });
        }

        var checkIn = function () {
            var data = $('.login-form').serializeJSON();
            if (!data.userName) {
                shakeInput('userName');
                return false;
            }
            else if (!data.password) {
                shakeInput('password');
                return false;
            }
            return true;
        };

        var shakeInput = function (name) {
            $('[name=' + name + ']', '.login-form').addClass('uk-animation-shake');
        }

        $('input', '.login-form').on('webkitAnimationEnd', function () {
            $(this).removeClass('uk-animation-shake');
        });

        var showMsg = function (t, success) {
            if(success)
                $('.ct_desc_info').addClass('success');
            else
                $('.ct_desc_info').removeClass('success');
            $('.ct_desc_info').addClass('show').text(t);
        };

        function error(rs){
            return rs.status == 'ERROR' || rs.status == 500;
        }
    })();
</script>
</body>
</html>