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('头像修改失败!'); } }); }, []); }