验证码

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html>
<head>
    <meta charset="UTF-8">
    <title>登录主页</title>
    <link rel="icon" type="image/x-icon" href=""/>
    <link rel="stylesheet" href="../../assets/layui/css/layui.css">
    <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
    <link rel="stylesheet" href="../../assets/bootstrap-3.3.7/bootstrap3/css/bootstrap.min.css">

    <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
    <script src="../../assets/js/jquery-3.1.1.min.js"></script>
    <script src="../../assets/layui/layui.all.js"></script>
    <script src="../../assets/js-v/config.js"></script>

    <script src="../../assets/bootstrap-3.3.7/bootstrap3/js/bootstrap.min.js"></script>
    <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no">
    <style>
        .layui-input {
            width: 75%;
            margin-left: 10%;
            border: none;
            padding-left: -20%;
        }

        .inputDiv {
            position: absolute;
            margin-top: 3%;
            width: 90%;
            margin-left: 7%;
            border: 0;
            border-bottom: 1px solid rgba(230, 230, 230, 1);
        }

        /*.inputDiv1 {*/
        /*    position: absolute;*/
        /*    margin-top: 3%;*/
        /*    width: 80%;*/
        /*    padding-left: -10%;*/
        /*    border: 0;*/
        /*    border-bottom: 1px solid rgba(230, 230, 230, 1);*/
        /*}*/

        .input-p {
            position: absolute;
            margin-top: 2.4%;
            font-size: 14px;
            font-family: Microsoft YaHei;
            font-weight: 400;
            color: rgba(58, 58, 58, 1);
            line-height: 12px;
        }

        .input-a {

            width: 50%;
            position: absolute;
            margin-top: -7%;
            margin-left: 67%;
            font-size: 15px;
            font-family: Microsoft YaHei;
            font-weight: 400;
            color: rgb(201, 68, 53);
            line-height: 12px;
        }

        .layui-input::-webkit-input-placeholder {
            font-size: 15px;
            font-family: Microsoft YaHei;
            font-weight: 400;
            color: rgba(179, 179, 179, 1);
            line-height: 19px;
        }

        li {
            width: 50%;
        }

        .layui-tab-brief > .layui-tab-title .layui-this {
            color: rgba(58, 58, 58, 1);
        }

        .layui-tab-brief > .layui-tab-more li.layui-this:after, .layui-tab-brief > .layui-tab-title .layui-this:after {
            border: none;
            border-radius: 0;
            border-bottom: 2px solid rgba(58, 58, 58, 1);
        }

        .reg {
            position: absolute;
            margin-top: 14%;
            margin-left: 7%;
            font-size: 12px;
            font-family: Microsoft YaHei;
            font-weight: 400;
            color: rgba(179, 179, 179, 1);
            line-height: 17px;
        }

        .f-div {
            position: absolute;
            margin-top: 43%;
        }

        .f-div img {
            position: absolute;
            margin-top: 10%;
            margin-left: 30%;
        }

        .f-div span {
            margin-left: 14%;
            height: 16px;
            font-size: 14px;
            font-family: Microsoft YaHei;
            font-weight: 400;
            color: rgba(179, 179, 179, 1);
            line-height: 18px;
        }

        h3 {
            height: 18px;
            font-size: 20px;
            font-family: Microsoft YaHei;
            font-weight: bold;
            color: rgba(255, 255, 255, 1);
            line-height: 17px;
        }

        body {
            margin: 0;
            padding: 0;
        }

        .modal_content {
            padding: 30px;
            display: flex;
            justify-content: center;
            flex-direction: column;
        }

        .modal_content > div {
            margin-bottom: 20px;
        }

        .modal_content > h5:first-child {
            margin: 30px 0px;
        }

        #dialog label {
            color: #666;
        }

        #phone1 {
            display: block;
            width: 100%;
            height: 70px;
            background: none;
            padding-top: 30px;
            border: 0;
            outline: none;
            text-align: center;
            margin-top: -30px;
            font-size: 16px;
            border-bottom: 1px solid rgba(0, 0, 0, .2);
            border-radius: 0;
        }

        .code1 {
            display: flex;
            flex-direction: row;
            justify-content: space-between;
            width: 100%;
            height: 70px;
            background: none;
            padding-top: 30px;
            margin-top: -30px;
            font-size: 16px;
            border-bottom: 1px solid rgba(0, 0, 0, .2);
            border-radius: 0;
        }

        #code1 {
            width: calc(100% - 90px);
            height: 55px;
            background: none;
            padding-top: 20px;
            border: 0;
            outline: none;
            text-align: center;
            margin-top: -20px;
            font-size: 16px;
        }

        #btnSendCode1 {
            width: 90px;
            height: 30px;
            padding: 0 5px;
            margin-top: -13%;
            margin-left: 74%;
            font-size: 14px;
            text-align: center;
            background: transparent;
            border-radius: 30px;
            color: #a07941;
            border-color: #a07941;

        }

        ::-webkit-input-placeholder { /* WebKit browsers */
            font-size: 14px;
            color: rgba(0, 0, 0, .4);
        }

        :-moz-placeholder { /* Mozilla Firefox 4 to 18 */
            font-size: 14px;
            color: rgba(0, 0, 0, .4);
        }

        ::-moz-placeholder { /* Mozilla Firefox 19+ */
            font-size: 14px;
            color: rgba(0, 0, 0, .4);
        }

        :-ms-input-placeholder { /* Internet Explorer 10+ */
            font-size: 14px;
            color: rgba(0, 0, 0, .4);
        }

        .next {
            text-align: center;
            margin: 20px 0;
        }

        .next button {
            width: 100%;
            height: 45px;
            padding: 0;
            margin: 0;
            background: #007BFF;
            color: #fff;
            border: 0;
            outline: none;
            border-radius: 3px;
        }
    </style>
</head>
<body>
<div class="rwo">
    <!--    顶部房子图片-->
    <div class="topImg">
        <a> <img style="margin-top: -30%; margin-left: 5%" src="../../assets/img/login/x.png" width="4%" alt=""/></a>
        <img style="margin-left: 25%;margin-top: 25%" src="../../assets/img/login/house.png" width="25%" alt=""/>
    </div>

    <!--    账号  手机登录tab切换-->
    <div class="tab">
        <div class="layui-tab layui-tab-brief" lay-filter="docDemoTabBrief">
            <ul class="layui-tab-title">
                <li class="layui-this">账号密码登录</li>
                <li>手机快捷登录</li>
            </ul>

            <div class="layui-tab-content" style="height: 100px;">
                <div class="layui-tab-item layui-show">
                    <div class="inputDiv">
                        <p class="input-p">账号</p>
                        <input id="un" type="text" name="userName" lay-verify="title" autocomplete="off"
                               placeholder="请输入亿家账号/手机号" class="layui-input">
                    </div>
                    <br/>
                    <br/>
                    <br/>
                    <br/>
                    <div class="inputDiv">
                        <p class="input-p">密码</p>
                        <input id="pwd" type="password" name="password" lay-verify="pass" autocomplete="off"
                               placeholder="请输入登录密码"
                               class="layui-input">
                    </div>
                    <a href="#" class="reg" style="margin-top: 17%"; id="regi">用户注册</a>
                </div>
                <div class="layui-tab-item">
                    <div class="inputDiv">
                        <p class="input-p">账号</p>
                        <input type="text" id="phone" name="phone" lay-verify="title" autocomplete="off"
                               placeholder="请输入您的手机号" class="layui-input">
                    </div>
                    <br/>
                    <br/>
                    <br/>
                    <br/>
                    <div class="inputDiv1">
                        <input type="password" name="password" lay-verify="title" autocomplete="off"
                               placeholder="请输入验证码"
                               class="layui-input">
                    </div>
                    <input id="btnSendCode1" type="button" class="btn btn-default" value="获取验证码"
                           onClick="sendMessage1()"/>
                </div>
            </div>
        </div>
    </div>
    <!--  tab 结束  -->


    <!--确认登录按钮 -->
    <div class="f-div" style="width: 80%" id="go">
        <img src="../../assets/img/login/juxing.png" alt="" style="margin-left: 7%;;margin-top: -27%;float:left"/>
        <h3 alt="" style="position:absolute;margin-left:50%;margin-top: -23%;float: left">登 录</h3>
    </div>

    <!--    底部微信支付宝登录-->
    <div class="f-div" style="width: 100%">
        <span>——————更多登录方式——————</span>
        <br/>
        <img src="../../assets/img/login/weixin.png" alt=""/>
        <img src="../../assets/img/login/zhifubao.png" alt="" style="margin-left: 55%"/>
    </div>
</div>
</body>
<script>


    var phoneReg = /(^1[3|4|5|7|8]\d{9}$)|(^09\d{8}$)/;//手机号正则
    var count = 60; //间隔函数,1秒执行
    var InterValObj1; //timer变量,控制时间
    var curCount1;//当前剩余秒数
    /*第一*/
    function sendMessage1() {
        curCount1 = count;
        var phone = $.trim($('#phone').val());
        if (!phone) {
            layer.msg("请输入手机号", {icon: 6});
            return;
        }
        if (!phoneReg.test(phone)) {
            layer.msg("请输入有效的手机号码", {icon: 6});
            return false;
        }
        //设置button效果,开始计时
        $("#btnSendCode1").attr("disabled", "true");
        $("#btnSendCode1").val(+curCount1 + "秒再获取");
        InterValObj1 = window.setInterval(SetRemainTime1, 1000); //启动计时器,1秒执行一次
        //向后台发送处理数据
        $.ajax({
            url: httpurl + "/api/smsGet",
            type: "post",
            dataType: "json",
            data: {phone: phone},
            success: function (result) {
                if (result == 504) {
                    layer.msg("验证码错误,请重新获取", {icon: 4});
                }
                if (result == 301) {
                    layer.msg("用户不存在请注册", {icon: 6})
                    window.location.href = "/views/login/app-register.html";
                }
                if (result == 200) {
                    layer.msg("登录成功!", {icon: 6})
                    window.location.href = "/views/login/personindex.html";
                }
            }
        })

    }
    function SetRemainTime1() {
        if (curCount1 == 0) {
            window.clearInterval(InterValObj1);//停止计时器
            $("#btnSendCode1").removeAttr("disabled");//启用按钮
            $("#btnSendCode1").val("重新发送");
        } else {
            curCount1--;
            $("#btnSendCode1").val(+curCount1 + "秒再获取");
        }
    }

    //点用户注册
    $('#regi').on('click',function () {
                   window.location.href="/views/login/app-register.html"
    })

    /*提交*/
    function binding() {
        alert(1)
    }

    $('#go').on('click', function () {
        var username = $.trim($("#un").val());
        var password = $.trim($("#pwd").val());
        if(!username){
            layer.msg("!请输入账户名", {icon: 6});
            return;
        }
        if(!password){
            layer.msg("!请输入密码", {icon: 6});
            return;
        }
        $.ajax({
            url: httpurl + "/api/login",
            type: "post",
            dataType: "json",
            data: {userName: username, passWord: password},
            success: function (result) {
                if (result.code == 200) {
                    layer.msg("登录成功!", {icon: 6});
                    var token =  result.data;
                    localStorage.setItem("token",JSON.stringify(result.data));
                    window.location.href="/views/login/person/personindex.html";
                } else {
                    layer.msg("用户名或密码错误", {icon: 7})
                }
                //console.log("登录返回结果:" + result.code);
            }
        })
    });

    layui.use(['carousel', 'form'], function () {
        var carousel = layui.carousel
            , form = layui.form;

        //图片轮播
        carousel.render({
            elem: '#shuffing'
            , width: '100%'
            , height: '156px'
            , interval: 1800
        });

        //事件
        carousel.on('change(shuffing)', function (res) {
            console.log(res)
        });


        var $ = layui.$, active = {
            set: function (othis) {
                var THIS = 'layui-bg-normal'
                    , key = othis.data('key')
                    , options = {};

                othis.css('background-color', '#5FB878').siblings().removeAttr('style');
                options[key] = othis.data('value');
                ins3.reload(options);
            }
        };
        var userName = $("#id").val();


        //监听开关
        form.on('switch(autoplay)', function () {
            ins3.reload({
                autoplay: this.checked
            });
        });

        $('.demoSet').on('keyup', function () {
            var value = this.value
                , options = {};
            if (!/^\d+$/.test(value)) return;

            options[this.name] = value;
            ins3.reload(options);
        });

        //其它示例
        $('.demoTest .layui-btn').on('click', function () {
            var othis = $(this), type = othis.data('type');
            active[type] ? active[type].call(this, othis) : '';
        });
    });
</script>
</html>

【四轴飞行器】非线性三自由度四轴飞行器模拟器研究(Matlab代码实现)内容概要:本文围绕非线性三自由度四轴飞行器模拟器的研究展开,重点介绍了基于Matlab的建模与仿真方法。通过对四轴飞行器的动力学特性进行分析,构建了非线性状态空间模型,并实现了姿态与位置的动态模拟。研究涵盖了飞行器运动方程的建立、控制系统设计及数值仿真验证等环节,突出非线性系统的精确建模与仿真优势,有助于深入理解飞行器在复杂工况下的行为特征。此外,文中还提到了多种配套技术如PID控制、状态估计与路径规划等,展示了Matlab在航空航天仿真中的综合应用能力。; 适合人群:具备一定自动控制理论基础和Matlab编程能力的高校学生、科研人员及从事无人机系统开发的工程技术人员,尤其适合研究生及以上层次的研究者。; 使用场景及目标:①用于四轴飞行器控制系统的设计与验证,支持算法快速原型开发;②作为教学工具帮助理解非线性动力学系统建模与仿真过程;③支撑科研项目中对飞行器姿态控制、轨迹跟踪等问题的深入研究; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,重点关注动力学建模与控制模块的实现细节,同时可延伸学习文档中提及的PID控制、状态估计等相关技术内容,以全面提升系统仿真与分析能力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值