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
}
})