define([ 'html!templates/user/userLogin', 'css!styles/user/userLogin' ], function(tpcLyout) { /** * 模块状态,用于存储模块的状态 例如:收起,关闭 * @type {Object} */ var status = { initialized: false, showUserLogin: false, forgetStatu: false }; /** * 模块数据 用于数据存储和外部调用 * @type {Object} * 数据存放 */ var modValue = { loginUrl: onemapUrlConfig.login_serverUrl }; function init() { if (!status.initialized) { $("body").append(tpcLyout) bindEvents(); status.initialized = true; } else { $("#userLogin").removeClass("hide"); } } function bindEvents() { /** * 交互 */ $("#userLogin .close").bind('click', function() { $("#userLogin").addClass("hide"); }) //注册 $("#userLogin .openReg").bind('click', function() { $("#userLogin .login").hide(); $("#userLogin .regist").show(); }) //登录 $("#userLogin .openLogin").bind('click', function() { $("#userLogin .login").show(); $("#userLogin .regist").hide(); }) //复选框 $("#userLogin .autoLogin,#userLogin .check").bind('click', function() { if ($(this).hasClass('active')) { $(this).removeClass('active'); } else { $(this).addClass('active'); } }) //登录方式 $("#userLogin .head .passWay").bind('click', function() { $("#userLogin .head span").removeClass('active'); $(this).addClass('active'); $("#userLogin .passShow").addClass('show'); $("#userLogin .msgShow").removeClass('show'); $("#userLogin .login .user").attr("placeholder", "请输入邮箱"); }) $("#userLogin .head .msgWay").bind('click', function() { $("#userLogin .head span").removeClass('active'); $(this).addClass('active'); $("#userLogin .msgShow").addClass('show'); $("#userLogin .passShow").removeClass('show'); $("#userLogin .login .user").attr("placeholder", "请输入手机号").text(""); }) /** * 交互结束 */ /** * 请求开始 */ //忘记密码 $("#userLogin .forgetPass").bind('click',function(){ $("#userLogin .regist").show(); $("#userLogin .login").hide(); $("#userLogin .regist li.queding").show(); $("#userLogin .regist .zhuce,#userLogin .regist .xieyi,#userLogin .regist .other").hide(); $("#userLogin .regist .para").eq(0).hide(); status.forgetStatu = true; }) $("#userLogin .regist button.queding").bind('click',function(){ var shouji = $("#userLogin .regist .regNum").val(); var mima = $("#userLogin .regist .regPass").val(); var yanzhengma = $("#userLogin .regist .yzm").val(); if(shouji.length>0&&mima.length>0&&yanzhengma.length>0){ $.ajax({ url: onemapUrlConfig.login_serverUrl + '/v1.0/user/mobile/reset_password', method: 'POST', dataType: 'json', data: { mobile: shouji, password: mima, code: yanzhengma } }).done(function (data) { console.log(data); if (data.status == 0) { ONEMAP.C.publisher.publish({ type: 'success', message: '重置密码成功' }, 'noteBar::add'); $("#userLogin .regist").hide(); $("#userLogin .login").show(); $("#userLogin .regist li").show(); $("#userLogin .regist li.queding").hide(); status.forgetStatu = false; } else { ONEMAP.C.publisher.publish({ type: 'warning', message: data.message }, 'noteBar::add'); } }) } else{ // ONEMAP.C.publisher.publish({ // type: 'warning', // message: '请填写正确信息' // }, 'noteBar::add'); } }) //注册获取验证码 $("#userLogin .regist .getYzm").bind('click', function() { var num = $("#userLogin .regist .regNum").val(); //验证手机号 var reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/; if (!reg.test(num)) { ONEMAP.C.publisher.publish({ type: 'warning', message: '请输入正确的手机号' }, 'noteBar::add'); } else { var pUrl = onemapUrlConfig.login_serverUrl + '/v1.0/user/mobile/register/code'; if(status.forgetStatu){ pUrl = onemapUrlConfig.login_serverUrl + '/v1.0/user/mobile/reset_password/code'; } $.ajax({ url: pUrl, method: 'POST', dataType: 'json', data: { mobile: num } }).done(function(data) { console.log(data); if (data.status == 0) { ONEMAP.C.publisher.publish({ type: 'success', message: '获取成功' }, 'noteBar::add'); } else { ONEMAP.C.publisher.publish({ type: 'warning', message: data.message }, 'noteBar::add'); } }) } }) //注册 $("#userLogin .regist .regBtn").bind('click', function() { var check = $("#userLogin .regist .check").hasClass('active'); if (!check) { $("#userLogin .regist .xieyi .redAlert").addClass('show'); } else { $("#userLogin .regist .xieyi .redAlert").removeClass('show'); } var redAlert = $("#userLogin .regist .para .redAlert"); for (let i = 0; i < redAlert.length; i++) { if (redAlert.eq(i).next().val().length < 1) { redAlert.eq(i).addClass('show'); } else { redAlert.eq(i).removeClass('show'); } if (redAlert.eq(i).next().hasClass('regNum') && redAlert.eq(i).next().val().length < 11) { redAlert.eq(i).text('请输入正确的手机号').addClass('show'); } else if (redAlert.eq(i).next().hasClass('regNum') && redAlert.eq(i).next().val().length >= 11) { var reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/; if (!reg.test(redAlert.eq(i).next().val())) { ONEMAP.C.publisher.publish({ type: 'warning', message: '请输入正确的手机号' }, 'noteBar::add'); } else { redAlert.eq(i).text('请输入手机号').removeClass('show'); } } if (redAlert.eq(i).next().hasClass('regPass') && redAlert.eq(i).next().val().length < 6) { redAlert.eq(i).text('密码不得少于6位').addClass('show'); } else if (redAlert.eq(i).next().hasClass('regPass') && redAlert.eq(i).next().val().length >= 6) { redAlert.eq(i).text('请输入密码').removeClass('show'); } } if (!redAlert.hasClass('show') && check) { $.ajax({ url: onemapUrlConfig.login_serverUrl + '/v1.0/user/mobile/register', method: 'POST', dataType: 'json', data: { username: $("#userLogin .regist .regName").val(), mobile: $("#userLogin .regist .regNum").val(), password: $("#userLogin .regist .regPass").val(), code: $("#userLogin .regist .yzm").val() } }).done(function(data) { console.log(data); if (data.status == 0) { ONEMAP.C.publisher.publish({ type: 'success', message: '获取成功' }, 'noteBar::add'); } else { ONEMAP.C.publisher.publish({ type: 'warning', message: data.message }, 'noteBar::add'); } }) } }) // 协议 $("#userLogin .regist li.xieyi a").bind('click', function() { $("#xieyi").addClass('active') }) $("#xieyi .close").bind('click', function() { $("#xieyi").removeClass('active') }) //登录获取验证码 $("#userLogin .login .getYzm").bind('click', function() { var phoneNum = $("#userLogin .login .user").val(); //验证手机号 var reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/; if (!reg.test(phoneNum)) { ONEMAP.C.publisher.publish({ type: 'warning', message: '请输入正确的手机号' }, 'noteBar::add'); } else { $.ajax({ url: onemapUrlConfig.login_serverUrl + '/v1.0/user/mobile/login/code', method: 'POST', dataType: 'json', data: { mobile: phoneNum } }).done(function(data) { console.log(data); if (data.status == 0) { ONEMAP.C.publisher.publish({ type: 'success', message: '获取成功' }, 'noteBar::add'); } else { ONEMAP.C.publisher.publish({ type: 'warning', message: data.message }, 'noteBar::add'); } }) } }) //登录 $("#userLogin .login .loginBtn").bind('click', function() { // 通过验证码 if ($("#userLogin .msgShow").hasClass('show')) { var phoneNum = $("#userLogin .login .user").val(); var yzm = $("#userLogin .login .yzm").val(); //验证手机号 var reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/; if (!reg.test(phoneNum)) { ONEMAP.C.publisher.publish({ type: 'warning', message: '请输入正确的手机号' }, 'noteBar::add'); } else if (yzm.length < 1) { ONEMAP.C.publisher.publish({ type: 'warning', message: '请输入验证码' }, 'noteBar::add'); } else { $.ajax({ url: onemapUrlConfig.oauthServiceUrl + '/v1.0/user/mobile/login', method: 'POST', dataType: 'json', headers: { "Cookie": ONEMAP.C.session, }, data: { mobile: phoneNum, code: yzm } }).done(function(data) { console.log(data); if (data.status == 0) { ONEMAP.C.publisher.publish({ type: 'success', message: '登录成功' }, 'noteBar::add'); _.merge(ONEMAP.D.user, data.data); // ONEMAP.D.isLoad = true; ONEMAP.D.user.name = data.data.mobile; // ONEMAP.D.user.roles = data.data.roles; if (ONEMAP.D.user.name.indexOf("map_super_user") > -1) { $('#userContent .userInfo .moreLink .linkList li.set').show(); } $("#userLogin").addClass('hide'); $('#userContent .userInfo .moreLink,.lgtop').show(); $('#userContent .popup-lt,#userContent .popup-lb,#userContent .popup-rt,#userContent .popup-rb').show(); $('#userContent .username').html(ONEMAP.D.user.name); //填入用户名 $("#userContent .mt10").show(); //展示上次登录时间 $("#userContent .quit").show(); //展示退出登录 $("#userContent .userInfo .login").hide(); //隐藏提示登录信息 $("#userContent .userInfo .moreLink .linkList li.myBh").addClass('uFavo').addClass('active'); } else { ONEMAP.C.publisher.publish({ type: 'warning', message: data.message }, 'noteBar::add'); } }) } } else if ($("#userLogin .passShow").hasClass('show')) { var userEmail = $("#userLogin .login .user").val(); var psd = $("#userLogin .login .lock").val(); // shell示例 // curl -v -XPOST 'http://202.107.245.52:3010/account/login' -H "Content-Type: application/json" -d '{"username": "admin", "password": "admin888"}' // curl -v 'http://202.107.245.52:3010/v1.0/user/me' -H 'Cookie: session=08eb5ff4-49a8-4efa-b725-228ceb24cda2' $.ajax({ type: "POST", dataType: 'json', url: onemapUrlConfig.oauthServiceUrl + '/account/login', //3010 contentType: 'application/json', headers: { "Cookie": ONEMAP.C.session, }, data: JSON.stringify({ "username": userEmail, "password": psd }) }).done(function(data) { console.log(data) window.location.reload(); }).error(function(data) { ONEMAP.C.publisher.publish({ type: 'warning', message: '该用户尚未注册' }, 'noteBar::add'); }) } }) //微信登录 $("#userLogin .login img.weixin").bind('click', function() { window.location.replace(onemapUrlConfig.oauthServiceUrl + '/oauth_client/weixin/login?next=' + onemapUrlConfig.siteUrl); }) $("#userLogin .login img.qq").bind('click', function() { window.location.replace(onemapUrlConfig.oauthServiceUrl + '/oauth_client/qq/login?next=' + onemapUrlConfig.siteUrl); }) $("#userLogin .login img.weibo").bind('click', function() { window.location.replace(onemapUrlConfig.oauthServiceUrl + '/oauth_client/weibo/login?next=' + onemapUrlConfig.siteUrl); }) } return ONEMAP.M.userLogin = { init: init } })