$(function () {
//选择登录方式
var defaultUserLoginType = $("#defaultUserLoginType");
if (defaultUserLoginType.val() == "Phone") {
showPhoneRegistered();
}
else if (defaultUserLoginType.val() == "Weixin") {
showWeixinRegistered();
}
else {
showPwdRegistered();
}
$("#login-select").on("click",
"li",
function () {
var registered = $(this)[0].id;
switch (registered) {
case "phone_registered":
showPhoneRegistered();
break;
case "pwd_registered":
showPwdRegistered();
break;
case "phonepwd_registered":
showPhonepwdRegistered();
break;
case "weixin_registered":
showWeixinRegistered();
break;
case "idcard_registered":
showIdCardRegistered();
break;
case "workweixin-registered":
showWorkWeixinRegistered();
break;
}
});
function removeError() {
for (var i = 0; i < $(".field-validation-error").length; i++) {
$(".field-validation-error").eq(i).children().remove();
}
}
function showValidcodedl() {
if ($(".enabledvalidcode input[name=ValidateCode]").attr("disabled") != "disabled") {
$(".enabledvalidcode").css("display", "block");
} else {
$(".enabledvalidcode").css("display", "none");
}
}
function showPhoneRegistered() {
$('.container .form-horizontal').attr('action', $("input[name=userloginurl]").data().phonelogin);
$(".hiddenfield").hide().attr("disabled", "disabled");
$(".phone-field").show().removeAttr("disabled");
$(".phone-field input[name=PhoneMessageValidateCode]").removeAttr("disabled");
$(".loginBtn").show();
$(".weixinlogin").hide();
$(".workweixinlogin").hide();
$(".errormessage").text("");
$("input[name=LoginWayType]").val("PhoneLogin");
$("#login-btn button[type=submit]").show();
$(".login-select li").hide();
$(".login-select li.password-registered").show();
$(".login-select li.weixin-registered").show();
$(".login-select li.workweixin-registered").show();
removeError();
showValidcodedl();
}
function showPwdRegistered() {
$('.container .form-horizontal').attr('action', $("input[name=userloginurl]").data().login);
$(".hiddenfield").hide().attr("disabled", "disabled");
$(".password-field").show().removeAttr("disabled");
$(".phone-field input[name=PhoneMessageValidateCode]").attr("disabled", "disabled");
$(".loginBtn").show();
$(".weixinlogin").hide();
$(".workweixinlogin").hide();
$(".errormessage").text("");
$("input[name=LoginWayType]").val("PasswordLogin");
$("#login-btn button[type=submit]").show();
$(".login-select li").hide();
$(".login-select li.phone-registered").show();
$(".login-select li.weixin-registered").show();
$(".login-select li.workweixin-registered").show();
removeError();
showValidcodedl();
}
function showPhonepwdRegistered() {
$('.container .form-horizontal').attr('action', $("input[name=userloginurl]").data().login);
$(".hiddenfield").hide().attr("disabled", "disabled");
$(".phonepassword-field").show().removeAttr("disabled");
$(".phone-field input[name=PhoneMessageValidateCode]").attr("disabled", "disabled");
$(".loginBtn").show();
$(".weixinlogin").hide();
$(".workweixinlogin").hide();
$(".errormessage").text("");
$("input[name=LoginWayType]").val("PhonePasswordLogin");
$("#login-btn button[type=submit]").show();
removeError();
showValidcodedl();
}
function showIdCardRegistered() {
$('.container .form-horizontal').attr('action', $("input[name=userloginurl]").data().login);
$(".hiddenfield").hide().attr("disabled", "disabled");
$(".idcardpassword-field").show().removeAttr("disabled");
$(".phone-field input[name=PhoneMessageValidateCode]").attr("disabled", "disabled");
$(".loginBtn").show();
$(".weixinlogin").hide();
$(".workweixinlogin").hide();
$(".errormessage").text("");
$("input[name=LoginWayType]").val("IdCardLogin");
$("#login-btn button[type=submit]").show();
removeError();
showValidcodedl();
}
function showWeixinRegistered() {
$.ajax({
url: '/Ajax/AjaxPartial',
type: 'post',
data: { partialViewName: "微信二维码", parameters: "{siteId:" + $("#logincurrentsiteId").val() + "}" },
success: function (response) {
$(".weixinlogin").html(response.html);
// 如果是服务号,根据授权登录url生成二维码
if ($("#weixinapptype").val() === '1') {
$("#login_container").html('
');
new QRCode($("#login_container .wrp_code").get(0),
{
text: $('#weixinloginurl').val(),
width: 280,
height: 280
});
}
// 如果是网站应用,使用js微信登录内嵌二维码
else {
var obj = new WxLogin({
self_redirect: false,
id: "login_container",
appid: $("#weixinappid").val(),
scope: "snsapi_login",
redirect_uri: $("#weixinredirecturi").val(),
state: $("#weixinstate").val(),
style: "black",
href: ""
});
}
},
error: function (response) { alert("请求微信二维码失败!"); }
});
$(".hiddenfield").hide();
$(".workweixinlogin").hide();
$(".weixinlogin").show();
$(".loginBtn").hide();
$(".errormessage").text("");
$("#login-btn button[type=submit]").hide();
$(".login-select li").hide();
$(".login-select li.phone-registered").show();
$(".login-select li.password-registered").show();
$(".login-select li.workweixin-registered").show();
$(".login-select li.weixin-registered").hide();
}
function showWorkWeixinRegistered() {
$.ajax({
url: '/Ajax/AjaxPartial',
type: 'post',
data: { partialViewName: "企业微信二维码", parameters: "{siteId:" + $("#logincurrentsiteId").val() + "}" },
success: function (response) {
$(".workweixinlogin").html(response.html);
var appid = $("#workweixinappid").val(),
agentid = $("#workweixinagentid").val(),
encodeUrl = urlEncode($("#workweixinredirecturi").val()),
state = $("#workweixinstate").val();
window.WwLogin({
id: 'workweixin_container',
appid: appid,
agentid: agentid,
redirect_uri: encodeUrl,
state: state,
href: ""
});
},
error: function (response) { alert("请求企业微信二维码失败!"); }
});
$(".hiddenfield").hide();
$(".weixinlogin").hide();
$(".workweixinlogin").show();
$(".loginBtn").hide();
$(".errormessage").text("");
$("#login-btn button[type=submit]").hide();
$(".login-select li").hide();
$(".login-select li.phone-registered").show();
$(".login-select li.password-registered").show();
$(".login-select li.weixin-registered").show();
$(".login-select li.workweixin-registered").hide();
}
function urlEncode(str) {
str = (str + '').toString();
return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28')
.replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');
}
var mainsetInterval;
function refreshloginstate() {
if ($('.userlogininfo').length > 0) {
var siteurl = $("#currentsiteinfo").data("siteajaxrequestprefix");
$.ajax({
url: siteurl + 'Ajax/AjaxPartial',
type: 'post',
data: {
partialViewName: "用户登录页-用户信息",
parameters: "{}",
},
success: function (response) {
$(".userlogininfo").html(response.html);
showValidateCode(false, false);
if ($('.notlogged').length > 0) {
clearInterval(mainsetInterval);
$('.userOtherInfo').hide();
}
else {
mainsetInterval = setInterval(function () {
ShowSigninArticleNum();
HasUnreadMessage();
},
60000);
$('.userOtherInfo').show();
}
}
});
}
}
function validcodeSucessed(e) {
var validcode = $(e).parent().prev().find(".enabledvalidcode");
if (validcode) {
var val = validcode.css('display');
if (val == 'block') {
var tVal = $(e).parent().prev().find("#js-ticket-login").first().val();
if (!tVal) {
return false;
}
}
}
return true;
};
var userlogin = $(".userlogincomment");
if (userlogin.length > 0) {
refreshloginstate();
}
$("#UserName,#Password").on('click',
function (event) {
if ($(".errormessage").text().indexOf("密码不正确") != -1) {
$(".errormessage").text("");
}
});
//关闭登录窗口
$(".closecomment").on("click",
function () {
$("[data-userlogin=userLoginDialog]").css("display", "none");
$("[data-userlogindialog=userLoginDialog]").css("display", "none");
});
//登录
$("[data-userlogindialog=userLoginDialog] .login").click(function () {
var userInfo = {};
var getSessionUrl = $(".getSession").val();
// 获取编码后的用户名密码和验证码。
$.ajaxPreventCSRF({
type: 'post',
url: getSessionUrl,
async: false,
success: function (data) {
userInfo.username = data.username;
userInfo.password = data.password;
//userInfo.validatecode = data.validatecode;
userInfo.phonemessagevalidatecode = data.phonemessagevalidatecode;
userInfo.phonenumber = data.phonenumber;
userInfo.ticket = data.captchaticket;
userInfo.ticketid = data.captchaticketid;
userInfo.identitynumber = data.identitynumber;
$.refreshCsrf();
}
});
//var code = $(".userloginmodal input[name='ValidateCode']");
//if ($(".enabledvalidcode").css("display") == "none") {
// code.attr("disabled", "disabled");
//} else {
// code.removeAttr("disabled");
//}
$(".errormessage").text("");
if (!$("#validateForm").valid()) {
if (!validcodeSucessed(this)) {
// $(".errormessage").text("请点击验证!");
}
}
else {
if (!validcodeSucessed(this)) {
// $(".errormessage").text("请点击验证!");
}
}
$(".loginBtn").text("登录中…").attr("disabled", "disabled").addClass("disabled");
var validateCode = $(this).parent().prev().find("input[name=ValidateCode]").first().val();
var userName = $(this).parent().prev().find("input[name=UserName]").first().val();
var password = $(this).parent().prev().find("input[name=Password]").first().val();
var cookieValidity = $(this).parent().nextAll('.loginCookie').find('select[name="cookie-validity"]').first().val();
var phonemessagevalidatecode =
$(this).parent().prev().find("input[name=PhoneMessageValidateCode]").first().val();
var phonenumber = $(this).parent().prev().find("input[name=PhoneNumber]").first().val();
var identitynumber = $(this).parent().prev().find("input[name=IdentityNumber]").first().val();
var loginWayType = $(this).parent().prev().find("input[name=LoginWayType]").first().val();
var loginUrl = $("#loginUrl").val();
if (loginWayType == "PhoneLogin") {
loginUrl = $("#loginPhoneUrl").val();
}
var ticket = $(this).parent().prev().find("#js-ticket-login").first().val();
var ticketId = $(this).parent().prev().find("#js-ticketId-login").first().val();
if ($(".enabledvalidcode").css("display") == "block") {
if (!ticket || !ticketId) {
$('#captchaticketvalid-login')[0].className = "field-validation-error";
$(".loginBtn").text("登录").removeAttr("disabled").removeClass("disabled");
if (userName && password) {
SimCaptcha.SetSuccessCallBack('js-btn-verify-login', function () {
$('.loginBtn').click();
});
$('#js-btn-verify-login').attr('captcha-after', 'js-btn-verify-login')
$('#js-btn-verify-login').click();
}
return false;
}
else {
$('#captchaticketvalid-login')[0].className = "field-validation-valid";
}
}
if (!GetRsaEncrypt()) {
alert("提交信息不完整,请刷新页面后重新提交。");
return false;
}
userName = rsaEncrypt(userName);
password = rsaEncrypt(password);
phonemessagevalidatecode = rsaEncrypt(phonemessagevalidatecode);
identitynumber = rsaEncrypt(identitynumber);
validateCode = rsaEncrypt(validateCode);
phonenumber = rsaEncrypt(phonenumber);
var data = {};
data[userInfo.username] = userName;
data[userInfo.password] = password;
data[userInfo.validatecode] = validateCode;
data[userInfo.phonenumber] = phonenumber;
data[userInfo.identitynumber] = identitynumber;
data[userInfo.phonemessagevalidatecode] = phonemessagevalidatecode;
data["LoginWayType"] = loginWayType;
data["CookieValidity"] = cookieValidity;
data[userInfo.ticket] = rsaEncrypt(ticket);
data[userInfo.ticketid] = rsaEncrypt(ticketId);
var siteUrl = $("input[name=siteUrl]").val();
$.ajaxPreventCSRF({
type: 'post',
url: loginUrl,
data: data,
async: false,
success: function (value) {
$(".loginBtn").text("登录").removeAttr("disabled").removeClass("disabled");
if (value.status === 0) {
$("[data-userlogin=userLoginDialog]").css("display", "none");
$("[data-userlogindialog=userLoginDialog]").css("display", "none");
Cookies.remove("Power::Article::SigninArticleTime");//清除前一个用户的签收数
Cookies.remove("Power:: Article:: SigninArticle");//清除前一个用户的签收数
refreshloginstate();
if (!value.isstrongpassword) {
if (siteUrl && siteUrl.length > 1 && siteUrl[siteUrl.length - 1] != '/') {
siteUrl += '/';
}
window.location.href = siteUrl + "user";
return false;
}
}
if (loginWayType == "PhoneLogin") {
$("#PhoneMessageValidateCode-error").remove();
window.clearInterval(window.timerObj); // 停止计时器
$("#PhoneMessageValidateCode_btn").removeAttr('disabled').val('获取验证码'); // 启用按钮
}
if (value.status != 0) {
if (value.status == -10) {
SimCaptcha.SetSuccessCallBack('js-btn-verify-login', function () {
$('.loginBtn').click();
});
$('#js-btn-verify-login').attr('captcha-after', 'js-btn-verify-login')
$('#js-btn-verify-login').click();
} else {
$(".errormessage").text(value.message);
}
} else {
var refreshPage = $("input[name=RefreshPage]");
if (refreshPage.length > 0) {
location.reload();
}
}
$.refreshCsrf();
showValidateCode(value.valcodevisible, true);
}
});
});
//退出
$(".userlogininfo").on('click', '.exitlogin', function () {
var url = $(".logurls").val();
$.postPreventCSRF(url,
{},
function (data) {
refreshloginstate();
$.refreshCsrf();
});
});
function showValidateCode(valcodevisible, isRefresh) {
if (!valcodevisible) {
$(".enabledvalidcode").css("display", "none");
$(".enabledvalidcode input[name='ValidateCode']").attr("disabled", "disabled");
} else {
$(".enabledvalidcode").css("display", "block");
$(".enabledvalidcode input[name='ValidateCode']").removeAttr("disabled");
if (isRefresh) {
refreshValidateCode();
}
}
}
var mathRandom = "";
//刷新验证码
function refreshValidateCode() {
panelCaptchaCallback();
}
function ShowSigninArticleNum() {
if (document.hidden || window.hidden) {
return;
}
var signUrl = $('#signinArticleNumUrl').length;
if (signUrl > 0) {
var url = $('#signinArticleNumUrl').val();
$.get(url,
function (data) {
if (parseInt(data) > 0) {
var enableSignin = $("#enableSignin").val();
if (enableSignin == "True") {
var value = '您有' + data + '篇文章待签收';
$(".signinSum").attr("title", value);
$(".signinSum").addClass("hasMsg");
}
} else {
if (parseInt(data) == -1) {
refreshloginstate();
}
$(".signinSum").attr("title", "我的签收信息");
$(".signinSum").removeClass("hasMsg");
}
});
}
}
panelCaptchaCallback();
});
function HasUnreadMessage() {
if (document.hidden || window.hidden) {
return;
}
var unReadMessageUrl = $('#getUnReadMessageUrl').length;
if (unReadMessageUrl > 0) {
var url = $("#getUnReadMessageUrl").val();
$.get(url, function (data) {
if (data.HasUnreadMessage) {
var value = '您有未读消息';
$(".myMsg").attr("title", value);
$(".myMsg").addClass("hasMsg");
} else {
$(".myMsg").attr("title", "我的短消息");
$(".myMsg").removeClass("hasMsg");
}
})
}
}
// 密码输完回车直接触发提交事件。
$('#Password')
.bind('input propertychange keyup',
function (event) {
if (event.keyCode == 13) {
$(".loginBtn").click();
return;
}
});
// 验证码弹出框。
function panelCaptchaCallback() {
if (document.getElementById("js-btn-verify-login") == null) { return; }
$("#js-btn-verify-login").val("点击验证");
$("#js-ticket-login").val(null);
$("#js-ticketId-login").val(null);
if ($("#js-btn-verify-login")[0]) {
$("#js-btn-verify-login")[0].className = "btn btn-default";
}
// 点击验证
window.loginSimCaptcha = new SimCaptcha({
element: document.getElementById("js-btn-verify-login"),
appId: "00000000",
callback: function (res) {
// 点触验证码
if (res.code === 0) {
$("#js-btn-verify-login").val("验证通过");
$("#js-btn-verify-login")[0].className = "btn btn-success";
$("#js-btn-verify-login").prop("onclick", null);
$("#js-ticket-login").val(res.ticket);
$("#js-ticketId-login").val(res.ticketId);
if ($('#captchaticketvalid-login')[0]) {
$('#captchaticketvalid-login')[0].className = "field-validation-valid";
var childNodes = $('#captchaticketvalid-login')[0].childNodes;
for (var index = 0; index < childNodes.length; index++) {
childNodes[index].remove();
}
}
$(".errormessage").text("")
}
},
baseUrl: "/"
});
}