///
///
/*
* 功能:登录
* 参数:userName--用户名
* pass--密码
* 作者:李建峰
* 时间:2016-3-18
*/
function FastLogin(userName, pass) {
/*
* 获取用户名
*/
this.getUserName = function () {
return userName;
}
/*
* 获取用户名
*/
this.getPass = function () {
return pass;
}
var _message = [];
/*
* 获取提示信息
*/
this.getMessage = function () {
return _message;
}
/*
* 登录
* 参数:callbacks--回调函数集合
* {
* vakidateFaild:function(message){}
* beginSignIn:function(){},
* signInSuccess:function(argument){},
* signInFaild:function(message){}
* }
* argument--回调成功参数
*/
this.signIn = function (callbacks, argument) {
var success = validate();
if (!success) {
callbacks.validateFaild(_message);
return false;
}
callbacks.beginSignIn();
$.ajax({
url: "/UserProfile/MemberLogin.ashx",
data: { userName: userName, password: pass },
type: "Post",
dataType: "json",
success: function (data) {
if (data.status == true) {
callbacks.signInSuccess(argument);
}
else {
callbacks.signInFaild(data.msg);
}
},
error: function () {
callbacks.signInFaild("登录异常");
}
});
return true;
}
/*
* 验证
*/
validate = function () {
var success = true;
if (!userName) {
_message.push("用户名不能为空");
success = false;
}
if (!pass) {
_message.push("密码不能为空");
success = false;
}
return success;
}
}
/*
* 功能:登录视图
* 参数:$element--登录视图父元素
* 作者:李建峰
* 时间:2016-3-18
*/
function LoginView($element) {
var _callBack
/*
* 登录
*参数:callBack--回调函数
* argument--回调函数的参数
*/
this.signIn = function (callBack, argument) {
var userName = $element.find(":text[data-field='username']").val();
var pass = $element.find(":password[data-field='pass']").val();
var login = new FastLogin(userName, pass);
_callBack = callBack;
login.signIn({ validateFaild: validateFaild, beginSignIn: beginSignIn, signInSuccess: signInSuccess, signInFaild: signInFaild }, argument);
}
/*
* 自动填充用户名和密码
*/
this.autoFill = function (userName, pass) {
$element.find(":text[data-field='username']").val(userName);
$element.find(":password[data-field='pass']").val(pass);
}
/*
* 初始化
*/
this.init = function () {
$element.dialog({
modal: true,
width: "620px",
dialogClass: "noneframe",
open: function () {
$element.attr("class", "popbuy");
}
});
}
/*
* 关闭
*/
this.close = function () {
var $ul = $element.find("ul[data-field='message']");
$ul.find("li").remove();
$element.dialog("close");
}
/*
* 设置登录成功后的回调函数
* 参数:argument--回调函数的参数
*/
signInSuccess = function (argument) {
var $ul = $element.find("ul[data-field='message']");
$ul.find("li").remove();
$element.dialog("close");
argument["isSigIn"] = true;
//强制刷新登录标记
$("[data-sigin]").attr("data-sigin", true);
if (_callBack) {
if (typeof (_callBack) == "function") {
_callBack(argument);
}
else {
if (Object.prototype.toString.call(_callBack) == "[object Array]") {
var len = _callBack.length;
for (var i = 0; i < len; i++) {
_callBack[i](argument);
}
}
}
}
}
/*
* 验证失败
* 参数:message--提示信息,数组
*/
validateFaild = function (message) {
var $ul = $element.find("ul[data-field='message']");
$ul.find("li").remove();
var len = message.length;
for (var i = 0; i < len; i++) {
$ul.append("
" + message[i] + "");
}
}
/*
* 开始登录
*/
beginSignIn = function () {
var $ul = $element.find("ul[data-field='message']");
$ul.find("li").remove();
$ul.append("开始登录,请等待...");
$element.find(":button[data-field='submit']").prop("disabled", true);
}
/*
* 登录失败
*/
signInFaild = function (msg) {
var $ul = $element.find("ul[data-field='message']");
$ul.find("li").remove();
$ul.append("" + msg + "");
$element.find(":button[data-field='submit']").prop("disabled", false);
}
}
/*
* 生成登录视图对象
* 参数:$element---登录视图父元素
* callBack--登录成功后的回调函数
* argument--登录成功后的调函数的参数
*/
function buildLoginView($element, callBack, argument) {
var loginView = new LoginView($element);
var $sender = $element.find(":button[data-field='submit']");
$sender.unbind("click");
//绑定登录事件
$sender.click(function () {
loginView.signIn(callBack, argument);
});
//绑定登录关闭事件
var $close = $element.find("b[data-field='close']");
$close.unbind("click");
$close.click(function () {
loginView.close();
});
var $register = $element.find("a[data-field='fast-register']");
$register.unbind("click");
$register.click(function () {
var fastRegisterView = new buildRegisterView($("#dv_register"), null, null);
fastRegisterView.init([loginView.signIn, loginView.autoFill], { callBack: callBack, arguments: argument });
});
return loginView;
}