zhitong.yu
2024-10-11 4f58a93c95ff123d51adcb8fa2e521333e8ab022
src/main/webapp/index.jsp
@@ -10,18 +10,123 @@
<head>
    <title>登录</title>
    <link href="CSS/style.css" rel="stylesheet">
    <style>
        .genggai:hover{
            color: red;
        }
        .form {
            width: 290px;
            height: 380px;
            display: flex;
            flex-direction: column;
            border-radius: 15px;
            background-color: white;
            box-shadow: 0 4px 30px rgba(0, 0, 0, 0.1);
            transition: .4s ease-in-out;
        }
        .form:hover {
            box-shadow: 1px 1px 1px rgba(0, 0, 0, 0.1);
            scale: 0.99;
        }
        .heading {
            position: relative;
            text-align: center;
            color: black;
            top: 3em;
            font-weight: bold;
        }
        .check {
            position: relative;
            align-self: center;
            top: 4em;
        }
        .input {
            position: relative;
            width: 2.5em;
            height: 2.5em;
            margin: 1em;
            border-radius: 5px;
            border: none;
            outline: none;
            background-color: rgb(235, 235, 235);
            box-shadow: inset 3px 3px 6px #d1d1d1,
            inset -3px -3px 6px #ffffff;
            top: 6.5em;
            left: 1.5em;
            padding-left: 15px;
            transition: .4s ease-in-out;
        }
        .input:hover {
            box-shadow: inset 0px 0px 0px #d1d1d1,
            inset 0px 0px 0px #ffffff;
            background-color: lightgrey;
        }
        .input:focus {
            box-shadow: inset 0px 0px 0px #d1d1d1,
            inset 0px 0px 0px #ffffff;
            background-color: lightgrey;
        }
        .btn1 {
            position: relative;
            top: 8.5em;
            left: 2.4em;
            width: 17em;
            height: 3em;
            border-radius: 5px;
            border: none;
            outline: none;
            transition: .4s ease-in-out;
            box-shadow: 1px 1px 3px #b5b5b5,
            -1px -1px 3px #ffffff;
        }
        .btn1:active {
            box-shadow: inset 3px 3px 6px #b5b5b5,
            inset -3px -3px 6px #ffffff;
        }
        .btn2 {
            position: relative;
            top: 9.5em;
            left: 2.4em;
            width: 17em;
            height: 3em;
            border-radius: 5px;
            border: none;
            outline: none;
            transition: .4s ease-in-out;
            box-shadow: 1px 1px 3px #b5b5b5,
            -1px -1px 3px #ffffff;
        }
        .btn2:active {
            box-shadow: inset 3px 3px 6px #b5b5b5,
            inset -3px -3px 6px #ffffff;
        }
    </style>
</head>
<body style="overflow:hidden;">
<p style="padding-left: 3%;padding-top: 2%;color: white;font-size: 14px;"><img src="images/YuYan.png" style="width: 20px;text-align: left;vertical-align: middle">
    <a href="javascript:;" style="position: relative;top: 2px" onclick="YuYan('Chinese')">Chinese</a>&nbsp;
    <a href="javascript:;" style="position: relative;top: 2px" onclick="YuYan('Русский')">Русский язык</a>&nbsp;
</p>
<div class="loginav">
    <div class="video" style="position: relative;"><video src="images/video.mp4" muted autoplay loop></div>
    <div class="video" style="position: relative;"><video src="images/video.mp4" muted autoplay loop/></div>
    <div class=""></div>
    <div class="loginbox boxall" style="height: 400px;width: 450px;">
    <div class="loginbox boxall" style="height: 420px;width: 450px;">
        <div class="logo">
            <h1>定位管理系统</h1>
            <h1 id="title">定位管理系统</h1>
            <!-- <img src="images/logo.png"> -->
        </div>
        <a href="javascript:;" class="yonghulog" onclick="yonghu()"><div class="logintit yh" style="display: inline-block">用户登录</div></a><a class="duanxinlog" href="javascript:;" onclick="duanxin()" ><div class="logintit dx" style="display: inline-block;margin-left: 30px">短信登录</div></a>
        <ul class="logininput" id="yong">
        <a href="javascript:;" class="yonghulog" onclick="yonghu()"><div class="logintit yh" style="display: inline-block">用户登录</div></a><a class="duanxinlog" href="javascript:;" style="margin-left: 5%" onclick="duanxin()"><div class="logintit dx" style="display: inline-block;margin-left: 30px">短信登录</div></a>
        <ul class="logininput" id="yong" style="margin-top: 10%">
            <li>
                <i><img src="images/user.png"></i>
                <input class="forminput" value="" id="yhm" required type="text" placeholder="用户名">
@@ -31,11 +136,11 @@
                <input class="forminput" type="password" id="pass"  required value="" placeholder="密码">
            </li>
            <li>
                <a href="javascript:;" onclick="login()" class="btn btnblock btn-lg btn-block btn-primary">登录</a>
                <a href="javascript:;" onclick="login()" id="LoginDengLu" class="btn btnblock btn-lg btn-block btn-primary">登录</a>
            </li>
            <li style="color: white;text-align: center">推荐您使用谷歌chorme浏览器</li>
            <%--            <li style="color: white;text-align: center;position: relative;left: 5%" id="title2">推荐您使用谷歌chorme浏览器<a class="genggai" href="./NotPassWord.jsp" style="color: #ccc;font-size: 13px;position: relative;left: 10%">更改密码</a></li>--%>
        </ul>
        <ul class="logininput" style="position: relative;top: -293px;display: none" id="duan">
        <ul class="logininput" style="position: relative;top: -67.5%;display: none" id="duan">
            <li>
                <i><img src="images/user.png"></i>
                <input class="forminput" value="" id="yhm1"  type="text" placeholder="请输入手机号">
@@ -45,22 +150,23 @@
                <input class="forminput" type="password" id="pass1"  value="" placeholder="请输入验证码">
            </li>
            <li>
                <a href="javascript:;" onclick="login()" style="text-align: center;" class="btn btnblock btn-lg btn-block btn-primary">登录</a>
                <a href="javascript:;" onclick="login()" id="LoginDengLu1" style="text-align: center;" class="btn btnblock btn-lg btn-block btn-primary">登录</a>
            </li>
            <li>
                <a href="javascript:;" id="yzm" style="width: 100px;height: 40px;font-size: 12px;line-height: 40px;float: right;position: relative;top: -154px;margin-right: 5px" class="btn btnblock btn-lg btn-block btn-primary" onclick="hqyzm()">获取验证码</a>
            </li>
            <li style="color: white;text-align: center;position: relative;top: -30px;left: 52px">推荐您使用谷歌chorme浏览器</li>
        </ul>
        <div class="boxfoot"></div>
    </div>
</div>
<div style="width: 100%;position: fixed;top: 32%;left: 40%">
</div>
<canvas id='canvas'
        style="position:fixed; width:100%; height:100%; left: 0; top: 0; opacity: .3; pointer-events: none;"></canvas>
<script src="JS/translate.js"></script>
<script>
    var canvas = document.querySelector('canvas');
    var ctx = canvas.getContext('2d');
    var w = window.innerWidth;//获取屏幕宽高
@@ -134,104 +240,191 @@
<script>
    var yzms = "";
    var LoginNum = 0;
    function login(){
        var yanzheng1 = $("#yhm").val();
        var yanzheng2 = $("#yhm1").val();
        var loginYanZheng = "username="+yanzheng1+"&phone="+yanzheng2
        $.ajax({
            url: "/hxzkuwb/findUserAndPhone",
            type: "POST",
            data: loginYanZheng,
            async: false,
            success: function(data) {
                LoginNum = data.yanzheng;
                localStorage.setItem("loginNum",data.yanzheng)
            }
        });
        var opacityValue = $("#yong").css("opacity");
       if(opacityValue == 1){
           var yhm = $("#yhm").val();
           var pass = $("#pass").val();
           if(yhm == "" || yhm == null ){
               layer.msg('请先输入用户名和密码后在登录')
           }else{
               if(pass == "" || pass == null){
                   layer.msg('请先输入密码后在登录')
               }else{
                   if (localStorage.getItem("loginNum") >= 3){
                       layer.msg('由于您输入密码错误大于3次为了安全您需要用短信验证登录...')
                   }else{
                       //判断用户名和密码是否正确
                       var data = "username="+yhm+"&password="+pass
                       $.post("/hxzkuwb/login",data,function (data){
                           if(data == null || data == ""){
                               layer.msg('当前输入的用户名密码不正确,请重新输入')
                               LoginNum = LoginNum+1;
                               localStorage.setItem("loginNum",LoginNum)
                           }else{
                               layer.msg('登录成功!正在跳转大屏首页....')
                               localStorage.setItem("loginNum",0)
                               sessionStorage.setItem("username",data.username)
                               localStorage.setItem("username",data.username)
                               $.ajax({
                                   url: '/hxzkuwb/addLoginLog',
                                   type: 'GET',
                                   async: false,
                                   data: {
                                       name:yhm,
                                       loginfs:"账号密码登录"
                                   },
                                   success: function(data) {
                                       console.log(data);
                                   },
                                   error: function(xhr, status, error) {
                                       console.error(status + ': ' + error);
                                   }
                               });
                               setTimeout(function (){
                                   window.location='/hxzkuwb/Home/Home.jsp'
                               },500)
                           }
                       })
                   }
               }
           }
       }else{
           var yhm = $("#yhm1").val();
           var pass = $("#pass1").val();
           if(yhm == "" || yhm == null ){
               layer.msg('请先输入手机号和验证码后在登录')
           }else{
               if(yhm.length == 11){
                   if(pass == "" || pass == null){
                       layer.msg('请先输入验证码后在登录')
                   }else{
        if(opacityValue == 1){
            var yhm = $("#yhm").val();
            var pass = $("#pass").val();
            if(yhm == "" || yhm == null ){
                layer.msg(language1)
                if (sessionStorage.getItem("YuYan") == "English"){
                    translate.execute()
                }
            }else{
                if(pass == "" || pass == null){
                    layer.msg(language2)
                    if (sessionStorage.getItem("YuYan") == "English"){
                        translate.execute()
                    }
                }else{
                    if (LoginNum == 5){
                        layer.msg('language3')
                        if (sessionStorage.getItem("YuYan") == "English"){
                            translate.execute()
                        }
                    }else{
                        if (localStorage.getItem("loginNum") >= 3){
                            layer.msg(language4)
                            if (sessionStorage.getItem("YuYan") == "English"){
                                translate.execute()
                            }
                        }else{
                            //判断用户名和密码是否正确
                            var data = "username="+yhm+"&password="+pass
                            $.post("/hxzkuwb/login",data,function (data){
                                if(data == null || data == ""){
                                    layer.msg(language5)
                                    if (sessionStorage.getItem("YuYan") == "English"){
                                        translate.execute()
                                    }
                                    LoginNum = parseInt(LoginNum)+parseInt(1);
                                    localStorage.setItem("loginNum",LoginNum)
                                    var des = "username="+yhm+"&yanzheng="+LoginNum
                                    $.get("/hxzkuwb/upUserJiaYanZheng",des,function (data){
                                    })
                                }else{
                                    sessionStorage.setItem("AppliCationPhone",data.phone)
                                    var times = getDaysDiff(getCurrentDateTime(),data.time)
                                    if (times+1 >=180){
                                        layer.msg(language6)
                                        if (sessionStorage.getItem("YuYan") == "English"){
                                            translate.execute()
                                        }
                                    }else{
                                        layer.msg(language7)
                                        if (sessionStorage.getItem("YuYan") == "English"){
                                            translate.execute()
                                        }
                                        localStorage.setItem("loginNum",0)
                                        sessionStorage.setItem("username",data.username)
                                        localStorage.setItem("username",data.username)
                                        $.ajax({
                                            url: '/hxzkuwb/addLoginLog',
                                            type: 'GET',
                                            async: false,
                                            data: {
                                                name:yhm,
                                                loginfs:language8
                                            },
                                            success: function(data) {
                                            },
                                            error: function(xhr, status, error) {
                                                console.error(status + ': ' + error);
                                            }
                                        });
                                        setTimeout(function (){
                                            var userAgent = navigator.userAgent;
                                            if(userAgent.match(/Mobile/i)){
                                                window.location='/hxzkuwb/Home/AppHome.jsp'
                                            } else {
                                                window.location='/hxzkuwb/Home/Mars3dMap.jsp'
                                            }
                                        },500)
                                    }
                                }
                            })
                        }
                    }
                }
            }
        }else{
            var yhm = $("#yhm1").val();
            var pass = $("#pass1").val();
            if(yhm == "" || yhm == null ){
                layer.msg(language9)
                if (sessionStorage.getItem("YuYan") == "English"){
                    translate.execute()
                }
            }else{
                if(yhm.length == 11){
                    if(pass == "" || pass == null){
                        layer.msg(language10)
                        if (sessionStorage.getItem("YuYan") == "English"){
                            translate.execute()
                        }
                    }else{
                        //判断验证码和手机号是否正确;
                       var exits = $("#pass1").val();
                       if(yzms == exits) {
                        var data = "phone="+yhm
                           $.post("/hxzkuwb/login",data,function (data){
                               if (data.phone == yhm){
                                   localStorage.setItem("loginNum",0)
                                   layer.msg('登录成功!正在跳转大屏首页....')
                                   sessionStorage.setItem("username",data.username)
                                   localStorage.setItem("username",data.username)
                                   $.ajax({
                                       url: '/hxzkuwb/addLoginLog',
                                       type: 'GET',
                                       async: false,
                                       data: {
                                           name:data.username,
                                           loginfs:"验证码登录"
                                       },
                                       success: function(data) {
                                           console.log(data);
                                       },
                                       error: function(xhr, status, error) {
                                           console.error(status + ': ' + error);
                                       }
                                   });
                                   setTimeout(function (){
                                       window.location='/hxzkuwb/Home/Home.jsp'
                                   },500)
                               }
                           })
                       }else{
                           layer.msg("验证码不正确!请重新输入")
                       }
                   }
               }else{
                   layer.msg('请输入正确的11位手机号')
               }
           }
       }
                        if (LoginNum == 5){
                            layer.msg(language3)
                            if (sessionStorage.getItem("YuYan") == "English"){
                                translate.execute()
                            }
                        }else{
                            var exits = $("#pass1").val();
                            if(yzms == exits) {
                                var data = "phone="+yhm
                                $.post("/hxzkuwb/login",data,function (data){
                                    if (data.phone == yhm){
                                        sessionStorage.setItem("ApplicationPhone",data.phone)
                                        localStorage.setItem("loginNum",0)
                                        layer.msg(language7)
                                        if (sessionStorage.getItem("YuYan") == "English"){
                                            translate.execute()
                                        }
                                        translate.execute()
                                        sessionStorage.setItem("username",data.username)
                                        localStorage.setItem("username",data.username)
                                        $.ajax({
                                            url: '/hxzkuwb/addLoginLog',
                                            type: 'GET',
                                            async: false,
                                            data: {
                                                name:data.username,
                                                loginfs:language11
                                            },
                                            success: function(data) {
                                            },
                                            error: function(xhr, status, error) {
                                                console.error(status + ': ' + error);
                                            }
                                        });
                                        setTimeout(function (){
                                            window.location='/hxzkuwb/Home/Home/Mars3dMap.jsp'
                                        },500)
                                    }
                                })
                            }else{
                                if (localStorage.getItem("loginNum") == 5){
                                    layer.msg(language12)
                                    if (sessionStorage.getItem("YuYan") == "English"){
                                        translate.execute()
                                    }
                                }else{
                                    LoginNum = parseInt(localStorage.getItem("loginNum")) +1;
                                    localStorage.setItem("loginNum",LoginNum)
                                    layer.msg(language13)
                                    if (sessionStorage.getItem("YuYan") == "English"){
                                        translate.execute()
                                    }
                                }
                            }
                        }
                    }
                }else{
                    layer.msg(language14)
                }
            }
        }
    }
    $(".yh").css("text-decoration","underline")
    function duanxin(){
@@ -249,32 +442,34 @@
    function hqyzm(){
        var phone = $("#yhm1").val();
        if(phone == "" || phone == null){
            layer.msg('请先输入手机号后在获取验证码')
            if (localStorage.getItem("languages") == "Русский"){
                layer.msg(language15)
            }
            layer.msg(language15)
        }else{
            var data ="phone="+phone
$.get("/hxzkuwb/findPhoneUser",data,function (data){
    console.log(data)
    if (data == "" || data.length == 0){
        layer.msg('当前手机号不存在,请重新输入后在获取')
    }else{
        //发送验证码
        var yzm = generateRandomCode();
        var yzmpd = "";
        var data = "phone="+phone+"&randomNumber="+yzm;
        $.ajax({
            url: "/hxzkuwb/sms",
            data: data,
            async: false,
            success: function (data) {
                // 处理返回的数据
                yzms = data;
            $.get("/hxzkuwb/findPhoneUser",data,function (data){
                if (data == "" || data.length == 0){
                    layer.msg(language16)
                }else{
                    //发送验证码
                    var yzm = generateRandomCode();
                    var yzmpd = "";
                    var data = "phone="+phone+"&randomNumber="+yzm;
                    $.ajax({
                        url: "/hxzkuwb/sms",
                        data: data,
                        async: false,
                        success: function (data) {
                            // 处理返回的数据
                            yzms = data;
            }
        });
        startCountdown(60)
    }
                        }
                    });
                    startCountdown(60)
                }
})
            })
        }
    }
@@ -282,20 +477,18 @@
        var btn = document.getElementById('yzm');
        btn.disabled = true;
        var count = seconds;
        btn.textContent = count + ' 秒后重新获取';
        btn.textContent = count + language17;
        var timer = setInterval(function() {
            count--;
            if (count <= 0) {
                clearInterval(timer);
                btn.textContent = '获取验证码';
                btn.textContent = language18;
                btn.disabled = false;
            } else {
                btn.textContent = count + ' 秒后重新获取';
                btn.textContent = count + language17;
            }
        }, 1000);
    }
    function generateRandomCode() {
        var code = "";
        var possible = "0123456789"; // 可选的字符集合
@@ -307,5 +500,83 @@
        return code;
    }
    function getDaysDiff(date1, date2) {
        const oneDay = 24 * 60 * 60 * 1000; // 一天的毫秒数
        const firstDate = new Date(date1);
        const secondDate = new Date(date2);
        const diffDays = Math.round(Math.abs((firstDate - secondDate) / oneDay));
        return diffDays;
    }
    function getCurrentDateTime() {
        var now = new Date();
        var year = now.getFullYear();
        var month = String(now.getMonth() + 1).padStart(2, '0');
        var day = String(now.getDate()).padStart(2, '0');
        var hours = String(now.getHours()).padStart(2, '0');
        var minutes = String(now.getMinutes()).padStart(2, '0');
        var currentDateTime = year+"-"+month+"-"+day+" "+hours+":"+minutes;
        return currentDateTime;
    }
    function YuYan(text){
        if (text == "Русский"){
            //使用俄语
            var data = "languages=2"
            $.post("/hxzkuwb/UpSetting",data,function (data){
                layer.msg('Переключиться на русский')
                setTimeout(function (){
                    location.reload();
                },1000)
            })
        }
        if (text =="Chinese"){
            //使用中文
            var data = "languages=0"
            $.post("/hxzkuwb/UpSetting",data,function (data){
                layer.msg('切换中文语言')
                setTimeout(function (){
                    location.reload();
                },1000)
            })
        }
    }
    var languages = 0;
    window.addEventListener('load', function() {
        $.post("/hxzkuwb/FindSetting",function (data){
            languages = data[0].languages
                //提示信息
                language1 ="请先输入用户名和密码后在登陆"
                language2 ="请先输入密码后在登录"
                language3 ="当前账号已锁定,请联系公司或管理员后在进行登录!"
                language4 ="由于您输入密码错误大于3次为了安全您需要用短信验证登录..."
                language5 ="当前输入的用户名密码不正确,请重新输入"
                language6 ="密码已达到强制更换日期,请前去更换密码"
                language7 ="登录成功!正在跳转大屏首页....!"
                language8 ="账号密码登录!"
                language9 ="请先输入手机号和验证码后在登录"
                language10 ="请先输入验证码后在登录"
                language11 ="验证码登录"
                language12 ="您当前登录不正确次数已达到五次!该账号已锁定,请联系公司或管理员后在进行操作。"
                language13 ="验证码不正确!请重新输入"
                language14 ="请输入正确的11位手机号"
                language15 ="请先输入手机号后在获取验证码"
                language16 ="当前手机号不存在,请重新输入后在获取"
                language17 ="秒后重新获取!"
                language18 ="获取验证码!"
                language19 ="账号密码登录!"
                $("title").text("登录")
        })
    });
</script>
</html>