Namespace.register("U.MD.U.P"); //个人资料设置
U.MD.U.P.inpEl = {}
//#region 用户登录个人资料
//打开个人资料
U.MD.U.P.userDataSet = function () {
U.MD.U.P.L_init()
}
/**
* 个人设置初始化函数
*/
U.MD.U.P.L_init = function () {
if (!U.MD.U.L.isLogin()) { //判断是否有登录
var _form = $('#U_MD_U_P_Set'), _personal = $("#U_MD_U_P_Uc_B")[0]; //个人资料元素
if (!_form.length) { //窗体是否存在
new U.UF.UI.form("
个人设置
", _personal, { "id": "U_MD_U_P_Set", "style": { "width": "664px", "height": "549px" } }, { isenlarge: false, isstretching: false }).form; //打开个人资料函数实例化
U.MD.U.P.L_eventBind(); //绑定事件
_personal.style.display = 'block'; //显示打印内容
} else {
$('#U_MD_U_P_tab_lable_info')[0].checked = 'checked'; //让第一个选项选中
_form[0].style.display = 'block'; //显示出来
}
}
}
/**
* 事件绑定,打印页面
*/
U.MD.U.P.L_eventBind = function () {
U.MD.U.P.EL = { //元素集合
"headImage": $('#U_MD_U_P_simpleInfo_img')[0], //用户头像 左侧
"name": $('.U_MD_U_P_simpleInfo_name')[0], //用户昵称 左侧
"nickName": $('#U_MD_U_P_tab_userNickName')[0], //用户昵称 基本信息
"selfIntroduction": $('#U_MD_U_P_tab_selfIntroduction')[0], // 个人介绍 基本信息
"email": $('#U_MD_U_P_tab_email')[0], //邮箱 基本信息
"phoneNumber": $('#U_MD_U_P_tab_phoneNumber')[0], //手机号码 基本信息
"address": $('#U_MD_U_P_tab_address')[0], //地址 基本信息
"trueName": $('#U_MD_U_P_tab_trueName')[0], //真实姓名 个人隐私
"birthday": $('#U_MD_U_P_tab_birthday')[0], //出生日期 个人隐私
"loginName": $('#U_MD_U_P_tab_loginName')[0], //用户名 账号安全
"oldPW": $('#U_MD_U_P_tab_oldPW')[0], //旧密码 账号安全-修改密码
"newPW": $('#U_MD_U_P_tab_newPW')[0], //新密码 账号安全-修改密码
"confirmPW": $('#U_MD_U_P_tab_confirmPW')[0], //确认密码 账号安全-修改密码
"phone": $('#U_MD_U_P_tab_phone')[0], //手机号码 账号安全-手机找回
"accountNPW": $('#U_MD_U_P_tab_lable_accountNext_n')[0], //新密码 账号安全-手机找回
"accountCPW": $('#U_MD_U_P_tab_lable_accountNext_c')[0] //确认密码 账号安全-手机找回
};
var _bindEl = ["nickName", "email", "phoneNumber", "newPW", "confirmPW,newPW", "phone", "accountNPW", "accountCPW,accountNPW"], //元素数组
_bindString = ["NickName", "Email", "TelephoneNumber", "PassWord", "contrastPW", "TelephoneNumber", "PassWord", "contrastPW"], //绑定验证类型
_lastPage = $('.U_MD_U_P_tab_inp')[0], //上一个停留的位置
_isDataChanged = false, //用户是否修改过数据
_changeDataNum = "", //序号
_isNextStep = false; //是否可点击下一步
U.UF.DL.asynLoadJs({ type: "text/javascript", src: "/js/Controls/Basic/City.js" }, function () { new U.MD.UI.city(); }); //加载城市控件js
U.UF.DL.asynLoadCss({ "href": "/css/Controls/Basic/City.css", type: "text/css", rel: "stylesheet" }); //加载城市控件css
$('#U_MD_U_P_tab_address').bind({
click: function () {
U.MD.UI.city(this);
$("#U_MD_UI_city_cityBox")[0].style.display = "block";
$("#U_MD_UI_city_cityBox")[0].style.zIndex = "999";
}
});
$('#U_MD_U_P_tab_birthday').bind({ //绑定生日的日历控件
click: function () {
U.MD.UI.calendar(this, $('#U_MD_U_P_tab_calendar')[0], false);
}
})
$('#U_MD_U_P_save').bind({ //绑定保存点击事件
click: function () {
switch (_lastPage.value) { //判断停留在那一页上
case "0": case "1":
U.MD.U.P.L_updateUserBasicInfo(_lastPage.value); break;
case "2":
if ($('.U_MD_U_P_tab_accountRadio:checked')[0].value == 0) {
U.MD.U.P.L_setPassword(_bindEl, _bindString);
} else if ($('.U_MD_U_P_tab_accountRadio:checked')[0].value == 1) {
U.MD.U.P.L_updatePassword();
}
break;
}
$('.U_MD_U_P_simpleInfo_address')[0].innerText = $("#U_MD_U_P_tab_address")[0].value;
}
})
$('.U_MD_U_P_tab_inp').bind({ //绑定事件
change: function () {
U.MD.U.P.L_reset(_changeDataNum, _isDataChanged);
_lastPage = this;
_isDataChanged = false;
}
})
$('.U_MD_U_P_tab_lable_content input').bind({ //判断某一页用户是否修改了数据
change: function () {
if (!_isDataChanged) {
_changeDataNum = _lastPage.value;
_isDataChanged = true;
}
}
})
$('.U_MD_U_P_tab_accountRadio').bind({ //账号安全的‘下一步’与“保存设置”按钮的显示隐藏
change: function () {
if (this.value == 0) {
$('#U_MD_U_P_save')[0].style.display = "inline-block";
$('#U_MD_U_P_next')[0].style.display = "none";
} else {
$('#U_MD_U_P_save')[0].style.display = "none";
$('#U_MD_U_P_next')[0].style.display = "inline-block";
}
}
})
$('#U_MD_U_P_authCodeBtn').bind({
click: function () { //发送验证码
_isNextStep = U.MD.U.P.L_sendAuthCode(_isNextStep);
}
})
$('#U_MD_U_P_next').bind({
click: function () { //下一步
U.MD.U.P.L_phoneConfirm();
}
})
$('#U_MD_U_P_authCodeInp').bind({
change: function () { //验证码文本框的不为空清除错误
if (this.value.trim().length > 0) {
$(this).removeClass('U_MD_U_P_tab_user_emptyInp')
}
}
})
$('#U_MD_U_P_cancel').bind({
click: function () { //关闭
$('#U_MD_U_P_Set')[0].style.display = 'none';
}
})
$('#U_MD_U_P_tab_oldPW').bind({
change: function () {
var _bool = U.MD.U.P.L_checkEmpty(this);
!_bool && $(this).removeClass('U_MD_U_P_tab_user_emptyInp');
}
})
U.MD.U.P.L_dataPrint(); //数据打印
U.MD.U.P.L_bindCheckFormat(_bindEl, _bindString); //绑定文本框的格式
}
/**
* 绑定事件
* @param elarr {Array} 元素数组
* @param eventarr {Array} 绑定验证类型
*/
U.MD.U.P.L_bindCheckFormat = function (elarr, eventarr) {
var _len = elarr.length;
for (var i = 0; i < _len; i++) {
var _el = U.MD.U.P.EL[elarr[i].split(',')[0]];
_el.i = i;
$(_el).bind({
change: function () {
U.MD.U.P.L_inpFormatCheck(this, elarr, eventarr);
}
})
}
}
/**
* 数据重置
* @param that {string} 标记
* @param elarr {Array} 是否更改数据
* @param eventarr {Array} 是否更改数据
*/
U.MD.U.P.L_inpFormatCheck = function (that, elarr, eventarr) {
var _bool = false;
if (U.UF.S[eventarr[that.i]]) {
_bool = U.UF.S[eventarr[that.i]].test(that.value.trim());
} else if (eventarr[that.i] == 'contrastPW') {
_bool = (U.MD.U.P.EL[elarr[that.i].split(',')[0]].value === U.MD.U.P.EL[elarr[that.i].split(',')[1]].value);
}
if (!_bool) {
if (!that.value.trim().length) {
$(that).removeClass('U_MD_U_P_tab_user_errorInp');
$(that).addClass('U_MD_U_P_tab_user_emptyInp');
$(that).next().removeClass('U_MD_U_P_tab_errorAlear');
} else {
$(that).removeClass('U_MD_U_P_tab_user_emptyInp');
$(that).addClass('U_MD_U_P_tab_user_errorInp');
$(that).next().addClass('U_MD_U_P_tab_errorAlear');
}
} else {
$(that).removeClass('U_MD_U_P_tab_user_errorInp');
$(that).removeClass('U_MD_U_P_tab_user_emptyInp');
$(that).next().removeClass('U_MD_U_P_tab_errorAlear');
}
}
/**
* 数据重置
* @param mark {string} 标记
* @param flag {boolean} 是否更改数据
*/
U.MD.U.P.L_reset = function (mark, flag) {
if (!flag)
return;
var _info = US.userInfo, _elObj = U.MD.U.P.EL;
switch (mark) {
case "0":
U.MD.U.P.L_dataPrint.simpleInfo(_info, _elObj);
break;
case "1":
U.MD.U.P.L_dataPrint.privacy(_info, _elObj);
break;
case "2":
U.MD.U.P.L_dataPrint.account(_info, _elObj);
break;
}
}
/**
* 打印数据
*/
U.MD.U.P.L_dataPrint = function () {
var _info = US.userInfo, _elObj = U.MD.U.P.EL;
U.MD.U.P.L_dataPrint.privacy(_info, _elObj);
U.MD.U.P.L_dataPrint.simpleInfo(_info, _elObj);
U.MD.U.P.L_dataPrint.account(_info, _elObj);
U.MD.U.P.L_dataPrint.left(_info, _elObj);
}
/**
* 初始化左侧栏数据
* @param info {Array} 元素数组
* @param elobj {Array} 绑定验证类型
*/
U.MD.U.P.L_dataPrint.left = function (info, elobj) {
elobj["headImage"].src = U.MD.C.getHeadImage(info.UserImageHead);
/*$('.U_MD_U_P_simpleInfo_address')[0].innerText = info.LoginAddress.slice(2, 6);*/
$('.U_MD_U_P_simpleInfo_address')[0].innerText = elobj["address"].value;
elobj["name"].innerText = info.UserNickName || "";
elobj["name"].title = info.UserNickName || "";
}
/**
* 初始化个人隐私数据
* @param info {Array} 元素数组
* @param elobj {Array} 绑定验证类型
*/
U.MD.U.P.L_dataPrint.privacy = function (info, elobj) {
elobj["trueName"].value = info.TrueName;
elobj["birthday"].value = U.UF.D.getYearMonthDay(info.Birthday);
}
/**
* 初始化基本信息数据
* @param info {Array} 元素数组
* @param elobj {Array} 绑定验证类型
*/
U.MD.U.P.L_dataPrint.simpleInfo = function (info, elobj) {
$(".U_MD_U_P_tab_user_radio[value$=" + (info.UserSex ? "'1'" : "'0'") + "]")[0].checked = true;
elobj["selfIntroduction"].value = info.UserIndividualitysignature;
elobj["address"].innerText = info.Province || "";
elobj["nickName"].value = info.UserNickName || "";
elobj["email"].value = info.UserEmail;
elobj["phoneNumber"].value = info.UserTelephoneNumber;
elobj["address"].value = info.City;
elobj["loginName"].innerText = info.UserName;
}
/**
* 初始化账号安全数据
* @param info {Array} 元素数组
* @param elobj {Array} 绑定验证类型
*/
U.MD.U.P.L_dataPrint.account = function (info, elobj) {
$('#U_MD_U_P_tab_lable_accountNext_t')[0].innerText = info.UserName;
$('.U_MD_U_P_tab_lable_account').css('display', 'block');
$('.U_MD_U_P_tab_lable_accountNext').css('display', 'none');
$('.U_MD_U_P_tab_accountRadio')[0].checked = "checked";
var _arr = Array.prototype.slice.call($('.U_MD_U_P_tab_item')[2].querySelectorAll('[type="text"]')).concat(Array.prototype.slice.call($('.U_MD_U_P_tab_item')[2].querySelectorAll('[type="password"]')));
for (var i = 0; i < _arr.length; i++) {
_arr[i].value = "";
$(_arr[i]).removeClass('U_MD_U_P_tab_user_errorInp');
$(_arr[i]).removeClass('U_MD_U_P_tab_user_emptyInp');
$(_arr[i]).next().removeClass('U_MD_U_P_tab_errorAlear');
}
$('#U_MD_U_P_save').css('display', 'inline-block');
$('#U_MD_U_P_next').css('display', 'none');
}
/**
* 更新用户基本信息
*/
U.MD.U.P.L_updateUserBasicInfo = function (type) {
var _info = US.userInfo, _elObj = U.MD.U.P.EL, _sex = parseInt($('.U_MD_U_P_tab_user_radio:checked')[0].value);
if (!parseInt(type)) {
var _bool = U.MD.U.P.L_checkEmpty(_elObj['nickName']) || U.MD.U.P.L_checkEmpty(_elObj['email']) || U.MD.U.P.L_checkEmpty(_elObj['phoneNumber']) || U.MD.U.P.L_checkEmpty(_elObj['address']);
if ($('.U_MD_U_P_tab_user_errorInp').length || $('.U_MD_U_P_tab_user_emptyInp').length || _bool) {
if ($(".U_MD_U_P_tab_user_errorInp")[0].id == "U_MD_U_P_tab_email" && $(".U_MD_U_P_tab_user_errorInp").length == 1) {
U.Alert("邮箱填写错误!");
return;
} else if ($(".U_MD_U_P_tab_user_errorInp")[0].id == "U_MD_U_P_tab_phoneNumber" && $(".U_MD_U_P_tab_user_errorInp").length == 1) {
U.Alert("手机号码填写错误!");
return;
} else {
U.Alert("信息录入错误!");
return;
}
}
}
U.A.Request(US.USER, ["UpdateUserBasicInfo", _info.UserId, _elObj["trueName"].value, _elObj["nickName"].value, _elObj["phoneNumber"].value, '', '', _elObj["selfIntroduction"].value, _sex, _elObj["email"].value,
"中国", _elObj["address"].textContent, _elObj["address"].value || "", _elObj["birthday"].value],
function (r) {
if (r.value) {//判断是否更改成功
US.userInfo.UserSex = _sex ? true : false;
US.userInfo.TrueName = _elObj["trueName"].value;
US.userInfo.UserNickName = _elObj["nickName"].value;
US.userInfo.UserTelephoneNumber = _elObj["phoneNumber"].value;
US.userInfo.UserIndividualitysignature = _elObj["selfIntroduction"].value;
US.userInfo.UserEmail = _elObj["email"];
US.userInfo.Province = _elObj["address"].value;
US.userInfo.City = _elObj["address"].value;
U.Alert("更改个人资料成功");
}
else {
U.alert("更改个人资料失败");
}
})
}
/**
* 设置密码
* @param elarr {Array} 元素数组
* @param eventarr {Array} 绑定验证类型
*/
U.MD.U.P.L_setPassword = function (elarr, eventarr) {
var _elObj = U.MD.U.P.EL,
_emptyEl = $($('.U_MD_U_P_tab_lable_content')[2]).find('.U_MD_U_P_tab_user_emptyInp'),
_errorEl = $($('.U_MD_U_P_tab_lable_content')[2]).find('.U_MD_U_P_tab_user_errorInp');
if (!_emptyEl.length && !_errorEl.length) {
if (_elObj["oldPW"].value == "") {
U.MD.U.P.L_inpFormatCheck(_elObj["oldPW"], elarr, eventarr);
return;
} else if (_elObj["newPW"].value == "") {
U.MD.U.P.L_inpFormatCheck(_elObj["newPW"], elarr, eventarr);
return;
} else if (_elObj["confirmPW"].value == "") {
U.MD.U.P.L_inpFormatCheck(_elObj["confirmPW"], elarr, eventarr);
return;
}
U.A.Request(US.USER, ["UpdateUserPasswordByOldPassword", US.userInfo.userid, _elObj["oldPW"].value, _elObj["confirmPW"].value], function (r) {
if (r.value) {
U.Alert("更改密码成功,请重新登录");
U.MD.U.LO.logout();
U.MD.U.L.login();
} else {
U.Alert("原密码错误");
$(_elObj["oldPW"]).addClass("U_MD_U_P_tab_user_emptyInp");
}
});
}
}
/**
* 通过手机号码修改账户密码
*/
U.MD.U.P.L_updatePassword = function () {
var _pw = $('#U_MD_U_P_tab_lable_accountNext_n')[0];
var _pwconfirm = $('#U_MD_U_P_tab_lable_accountNext_c')[0];
if (U.MD.U.P.inputFormat(_pw, false, 'PassWord') && U.MD.U.P.inputFormat(_pwconfirm, false, 'PassWord')) {
if (_pwconfirm.value == _pw.value) {
U.A.Request(US.USER, ["UpdateUserPassword", US.userInfo.userid, _pw.value], function (r) {//更改密码存储过程
if (r.value) {//判断是否更改成功
U.Alert('更改密码成功');
}
else {
U.Alert('更改密码失败');
}
});
} else {
U.Alert('请输入相同的新密码');
}
}
}
/**
* 发送验证码
* @param flag {boolean} 是否已发送
*/
U.MD.U.P.L_sendAuthCode = function (flag) {
if (flag) {
U.Aleart('请在60秒后重试');
return;
}
var _phoneInp = U.MD.U.P.EL["phone"],
_bool = U.MD.U.P.L_checkEmpty(_phoneInp) || U.MD.U.P.L_isCanUse(_phoneInp);
if (_bool) {
U.Alert('信息录入错误!');
return;
}
U.A.Request(US.CD, [US.DB, "UseStudio_Users", "GetUserinfoByUserName", US.userInfo.username], function (r) {//根据用户名获取用户信息
if (r.value[0].UserTelephoneNumber != _phoneInp.value) {//如果输入手机号与账号设置的手机号不匹配)
U.Alert('输入的手机号与账号不匹配');
} else {
var _xhttp = new XMLHttpRequest(); //XMLHttpRequest 对象用于在后台与服务器交换数据
_xhttp.onreadystatechange = function () {//每当 readyState 属性改变时,就会调用该函数。
if (this.readyState == 4) {//发送成功后
if (this.status == 201) {
U.Alert('发送成功'); //弹出发送成功
U.MD.U.P.L_setTime($('#U_MD_U_P_authCodeBtn')[0]);
return true;
} else {
U.Alert(JSON.parse(this.response).err || '验证码发送失败,请重新发送...');
}
}
};
_xhttp.open("POST", "http://api.cloudsql.1473.cn/postnumber", true); //指定和服务器端交互的HTTP方法,URL地址及其他请求信息
_xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //向一个打开但未发送的请求设置或添加一个 HTTP 请求
_xhttp.withCredentials = true; //发送cookie等认证信息到服务端
_xhttp.send("number=" + _phoneInp.value); //$("#userphone")[0].children[0].children[0].value 发送的手机号输入的框
}
});
}
/**
* 验证手机验证码
*/
U.MD.U.P.L_phoneConfirm = function () {
var _input = $('#U_MD_U_P_authCodeInp')[0];
if (U.MD.U.P.L_checkEmpty(_input)) {
U.Alert('验证码不为空');
return;
}
var _xhttp = new XMLHttpRequest(); //XMLHttpRequest 对象用于在后台与服务器交换数据
_xhttp.onreadystatechange = function (r) {//每当 readyState 属性改变时,就会调用该函数
if (this.readyState == 4) {//验证成功后
if (this.status == 201) {
$('#U_MD_U_P_save').css('display', 'inline-block');
$('#U_MD_U_P_next').css('display', 'none');
$('.U_MD_U_P_tab_lable_account').css('display', 'none');
$('.U_MD_U_P_tab_lable_accountNext').css('display', 'block');
U.Alert("验证成功"); //弹出验证成功
} else {
U.Alert(JSON.parse(this.response).err || "验证码有误");
}
}
};
_xhttp.open("POST", "http://api.cloudsql.1473.cn/verifi", true); ////指定和服务器端交互的HTTP方法,URL地址及其他请求信息
_xhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //向一个打开但未发送的请求设置或添加一个 HTTP 请求
_xhttp.withCredentials = true; //发送cookie等认证信息到服务端
_xhttp.send("code=" + _input.value);
}
/**
* 设置验证码时间
* @param inp {elenemt} 元素
*/
U.MD.U.P.L_setTime = function (inp) {
if (this._timer) {
U.Alert('请在60后重试!');
return;
}
var _second = 60,
_this = this;
this._timer = setInterval(function () {
inp.innerText = --_second + 's';
if (!_second) {
inp.innerText = '发送验证码';
clearInterval(_this._timer);
_this._timer = null;
}
}, 1000);
}
/**
* 重置文本框
* @param inp {elenemt} 元素
*/
U.MD.U.P.L_restoreInp = function (el) {
el.value = "";
$(el).removeClass('U_MD_U_P_tab_user_errorInp');
$(el).removeClass('U_MD_U_P_tab_user_emptyInp');
}
/**
* 判断元素是否有错误
* @param inp {elenemt} 元素
*/
U.MD.U.P.L_isCanUse = function (el) {
return $(el).hasClass('U_MD_U_P_tab_user_emptyInp') || $(el).hasClass('U_MD_U_P_tab_user_errorInp');
}
/**
* 判断元素是否为空
* @param inp {elenemt} 元素
*/
U.MD.U.P.L_checkEmpty = function (el) {
if (el.value.trim() == "" || !!!el.value) {
$(el).addClass('U_MD_U_P_tab_user_emptyInp');
return true;
}
return false;
}
/**
* 上传头像到服务器处理
* @param input {ele} 上传图片的input
*/
U.MD.U.P.uploadUserHeadImg = function (input) {
//判断是否支持FileReader
//头像预览
if (window.FileReader) {
var reader = new FileReader();
} else {
U.alert("您的设备不支持图片预览功能,如需该功能请升级您的设备!");
}
//获取文件
var file = input.files[0];
var imageType = /^image\//;
//是否是图片
if (!imageType.test(file.type)) {
U.alert("请选择图片!");
return;
}
var img = $('#U_MD_U_P_simpleInfo_img')[0];
//读取完成
reader.onload = function (e) {
//获取图片dom
//图片路径设置为读取的图片
img.src = e.target.result;
};
reader.readAsDataURL(file);
//上传图片
U.UF.UP.inputUpload([input], "http://main.1473.cn/USUpfile.ashx?typename=UploadHeadImage", function (url) {
//console.log(url.value);
//修改头像
U.A.Request(US.USER, ["UpdateUserHeaderImage", US.userInfo.userid, url.value.UserFilesServerName, url.value.UseFilesServerThumbnailName], function (r) {
if (r.value) {
//动态修改全局属性
US.userInfo.UserImageHead = url.value.UserFilesServerName;
US.userInfo.UserThumbnailImageHead = url.value.UseFilesServerThumbnailName;
U.Alert('头像修改成功!');
} else {
U.Alert('头像修改失败!');
}
});
}, []);
}