phoneLogin.html 10.9 KB
<!doctype html>
<html>

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="maximum-scale=1.0,minimum-scale=1.0,user-scalable=0,width=device-width,initial-scale=1.0" />
    <meta name="format-detection" content="telephone=no,email=no,date=no,address=no">
    <title>登录</title>
    <link rel="stylesheet" type="text/css" href="../css/api.css" />
    <link rel="stylesheet" type="text/css" href="../css/aui.css" />
    <link rel="stylesheet" type="text/css" href="../css/style.css" />
</head>

<body class="forget-password-view phone-login-view">
    <div class="aui-content aui-margin-b-15">
        <header class="aui-bar aui-bar-nav" id="header">
            <a class="aui-btn aui-pull-left" tapmode onclick="closeWin()">
                <span class="aui-iconfont aui-icon-left"></span>
            </a>
            <div class="aui-title">手机号登录</div>
        </header>
        <div class="aui-padded-l-15 aui-padded-r-15">
            <div class="aui-margin-t-15 aui-margin-b-15">
                <span class="aui-pull-left">国家/地区</span>
                <span class="aui-pull-right tytx-color-b">中国</span>
                <div class="aui-clearfix"></div>
            </div>
            <ul class="aui-list aui-form-list">
                <li class="aui-list-item">
                    <div class="aui-list-item-inner">
                        <div class="aui-list-item-label-icon">
                            <img style="height:19px;" src="../image/shouji.png" />
                        </div>
                        <div class="aui-list-item-input">
                            <span class="aui-font-size-14">+86&nbsp;|&nbsp;</span>
                            <input id="phone" type="number" class="aui-font-size-14" style="padding-left: 35px;" placeholder="11位手机号">
                        </div>
                    </div>
                </li>
                <li class="aui-list-item forget-password-code">
                    <div class="aui-list-item-inner">
                        <div class="aui-list-item-label-icon">
                            <img style="height:16px;" src="../image/yanzhengma.png" />
                        </div>
                        <div class="aui-list-item-input">
                            <input id="code" type="number" class="aui-font-size-14" placeholder="输入验证码">
                        </div>
                    </div>
                </li>
                <li onclick="sendSmsCode(this);" class="get-code-btn">
                    获取验证码
                </li>
            </ul>
            <div class="aui-margin-t-15">
                <span class="aui-pull-left tytx-color-b" tapmode onclick="closeWin()">使用其他方式登录</span>
                <div class="aui-clearfix"></div>
            </div>
            <span class="submit-btn" onclick="login(this);">登录</span>
        </div>
    </div>
</body>

</html>
<script type="text/javascript" src="../script/api.js"></script>
<script type="text/javascript" src="../script/common.js"></script>
<script type="text/javascript" src="../script/jquery-3.3.1.min.js"></script>
<script type="text/javascript">
  var header = $api.byId('header');
  fixStatusBar_API(header);
  apiready = function() {
    api.setStatusBarStyle({
        style: 'dark',
        color: 'rgba(0,0,0,0)'
    });
    api.parseTapmode();
        // api.openWin({ slidBackEnabled:false,
        //     name: 'index',
        //     url: './html/index.html',
        //     pageParam: {}
        // });
        // api.addEventListener({
        //     name:'keyback'
        // },function(ret,err){
        //     return false;
        // });
    }

    var cid="";
    var sended = false;
    function sendSmsCode(sender){
      if(sended){
        return false;
      }
      var userphone = $api.trim($api.val($api.byId("phone")));
      var phonereg=/^[1][3,4,5,7,8][0-9]{9}$/;
      if(userphone=="" || !phonereg.test(userphone)){
        api.toast({ msg: "请输入正确的手机号"});
        return false;
      }
      api.showProgress({
          style: 'default',
          animationType: 'fade',
          title: '请求验证码...',
          text: '',
          modal: true
      });
      var counter = 60; //60秒为一个周期
      $.ajax({
          url : HOST+'/iot_api/v1/app/send_sms_need_phone_exist',
          type : 'POST',
          dataType : 'json',
          headers:{
            'Content-Type': 'application/json;charset=utf-8',
            'imei': api.deviceId
          },
          data:JSON.stringify({
                  phone: userphone
              }),
          complete: function(){
            api.hideProgress();
          },
          success : function(ret) {
            if (ret) {
              if(ret.code == 0){
                api.toast({
                    msg: '验证码发送成功!',
                    duration: 2000,
                    location: 'bottom'
                });
                cid = ret.data.cid;
                sended = true;
                remainder = setInterval(function(){
                  if(counter==0){
                    sended = false;
                    $api.html(sender, "获取验证码");
                    if(remainder){
                      clearInterval(remainder);
                    }

                  }else{
                    $api.html(sender, counter+"秒");
                    counter--;
                  }

                }, 1000)
              }else{
                  api.toast({ msg: "发送失败,"+ajaxCodeCheck(ret.code, ret.msg, '请稍后再试')});
              }
            }
          },
          error : function() {
                  api.toast({ msg: "发送失败,请稍候再试"});
          }
      });

    }

    function login(sender) {
        sender.blur();
        var login_name = /*$api.trim(*/ $api.val($api.byId('phone'));
        var phonereg = /^[1][3,4,5,7,8][0-9]{9}$/;
        if (login_name == ''  || !phonereg.test(login_name)) {
            api.toast({
                msg: "请输入正确的手机号"
            });
            return false;
        }
        var login_code = $api.trim($api.val($api.byId('code')));
        if (login_code == '') {
            api.toast({
                msg: "请输入正确的验证码"
            });
            return false;
        }
        if(cid==''){
          api.toast({
              msg: "请重新获取验证码"
          });
          return false;
        }
        api.showProgress({
            style: 'default',
            animationType: 'fade',
            title: '正在登陆中...',
            text: '',
            modal: true
        });
        $.ajax({
                    url: HOST + '/iot_api/v1/app/sms_login',
                    type: 'POST',
                    dataType: 'json',
                    headers: {
                        'Content-Type': 'application/json;charset=utf-8',
                        'imei': api.deviceId
                    },
                    data: JSON.stringify({
                        phone: login_name,
                        cid: cid,
                        code:login_code
                    }),
                    complete: function() {
                        api.hideProgress();
                    },
                    success: function(ret) {
                        if (ret) {
                            if (ret.code == 0) {
                                api.toast({
                                    msg: '登陆成功',
                                    duration: 2000,
                                    location: 'bottom'
                                });
                                $api.setStorage('userToken', ret.data.token);
                                $.ajax({
                                  url: HOST + '/iot_api/v1/app/user',
                                  type: 'GET',
                                  dataType: 'json',
                                  headers: {
                                      'Content-Type': 'application/json;charset=utf-8',
                                      'token': ret.data.token
                                  },
                                  success: function(ret) {
                                      if (ret) {
                                          if (ret.code == 0 && ret.data.user) {
                                              var user = ret.data.user;
                                              $api.setStorage('userName', user.name);
                                              $api.setStorage('userPhone', user.user);
                                              $api.setStorage('userID', user.id);
                                              setTimeout(function(){
                                                api.openFrame({historyGestureEnabled :false,
                                                    reload: true,
                                                    name: 'root',
                                                    url: 'widget://html/index.html',
                                                    rect: {
                                                        x: 0,
                                                        y: 0,
                                                        w: 'auto',
                                                        h: 'auto'
                                                    }
                                                });
                                                api.sendEvent({
                                                    name: 'change_first'
                                                });
                                                api.sendEvent({
                                                    name: 'login_user'
                                                });
                                                api.closeFrame({
                                                    name: 'phoneLogin'
                                                });
                                                api.closeFrame({
                                                    name: 'login'
                                                });
                                              }, 2000)
                                          }
                                      }
                                  },
                                  error: function() {
                                  }
                              });



                            } else {
                                api.toast({
                                    msg: "登陆失败," + ajaxCodeCheck(ret.code, ret.msg, '请稍后再试')
                                });
                            }
                        }
                    },
                    error: function() {
                        api.toast({
                            msg: "登陆失败,请稍候再试"
                        });
                    }
                });
            }
</script>