Login.js 6.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178
  1. Namespace.register("U.MD.U.L"); //用户登录的命名空间
  2. /*
  3. 问题:
  4. 1、验证码的接口问题
  5. 2、无窗体的接口
  6. */
  7. //#region 配置数据
  8. //U.MD.U.L.loginCallBack; //登录后的回调使用
  9. //U.MD.U.L.isLogining = false; //判断用户登录状态。cookie登录状态为cookie,账号登录为true,没有登录为false
  10. //#endregion
  11. //#region 登录
  12. U.MD.U.L.init = function () {
  13. var _parent = $("#U_MD_U_L_login"); //登录注册框
  14. var _child = _parent.Child(); //获取登录注册找回密码的div
  15. _child[1].style.display = "none"; //隐藏注册框
  16. _child[2].style.display = "block"; //显示登录
  17. _child[3].style.display = "none"; //隐藏找回密码
  18. //标题修改
  19. $("div", _child[0])[2].innerHTML = "登录";
  20. //头部设置内容
  21. var _head = $(_child[0]).childs()[1];
  22. $(_head).addAttrArray({
  23. innerHTML: "",
  24. "className": "",
  25. title: ""
  26. });
  27. var _username = U.UF.Cookie.get("usestudiosso", "username")[0]; //上次登录的用户名
  28. var _input = $("input", _child[2]);
  29. if (_username) { //cookie存在 登录处理
  30. _input[0].focus(); //聚焦处理
  31. _input[0].value = _username; //设置cookie用户名
  32. _input = _input[1]; //当前需要聚焦
  33. }
  34. else { //注册 找回密码 聚焦元素处理
  35. _input = _input[0];
  36. }
  37. _input.focus();
  38. }
  39. /**
  40. * 判断用户是否登录如果未登陆则弹出登陆框
  41. * @param {element} 输入框
  42. * @param {element} 确定框
  43. *
  44. */
  45. U.MD.U.L.loginEnter = function (inputel, bottomel) {
  46. var i,
  47. _parentel = $(inputel).Parent(3), //获取父亲层
  48. _inputs = $("input", _parentel); //获取所有的输入框
  49. //循环input
  50. for (i = 0; i < _inputs.length; i++) {
  51. if (_inputs[i].value == "") { //如果没有输入文字的处理
  52. _inputs[i].focus();
  53. return;
  54. }
  55. }
  56. //回车处理
  57. bottomel.onclick();
  58. }
  59. //#endregion
  60. //#region 登录数据使用
  61. /**
  62. * 1473桌面直接登录,单击登录按钮时触发的函数
  63. * @param {object} ajax返回值
  64. *
  65. */
  66. U.MD.U.L.clickLogin = function (bottomel) {
  67. var _parentel = $(bottomel).Parent(), //类名为"U_MD_U_L_T"的div元素
  68. _inputel = $("input", _parentel), //获取里面的input,共三个
  69. _username = _inputel[0].value, //第一个input为用户名
  70. _password = _inputel[1].value, //第二个input为密码
  71. _static = _inputel[2].checked ? "1" : "0"; //第三个input为状态
  72. //以前已经登录过,则直接跳转回调函数
  73. if (_username && _username == US.userInfo.username) {
  74. $("#U_MD_HomeC_Pop")[0].close(); //关闭登陆款
  75. }
  76. //以前没有登录过,则清空密码输入 等待用户登录
  77. else if (U.MD.U.L.loginAjax(_username, _password, _static, $(_parentel).Parent())) {
  78. _inputel[1].value = ""; //密码清空
  79. }
  80. }
  81. /*
  82. 功能:用户登录云端接口,向后台发送请求,记录用户名和密码,后面还有一个登陆获取用户个人信息。好友信息,及消息通知
  83. 参数一:用户名
  84. 参数二:密码
  85. 参数三:登录窗口div元素,做loading的位置
  86. 参数四:回调函数
  87. */
  88. U.MD.U.L.loginAjax = function (username, password, static, loading, fun) {
  89. var _logaddress = US.city.userAllLocation || ""; //登录地址;
  90. //加载用户信息 且进行异步处理
  91. if (username.removeP() && password.removeP()) {
  92. if (fun) { U.MD.U.L.loginCallBack = fun; } //设置回调函数
  93. U.MD.U.L.isLogining = true; //电脑卡的时候,用户一直点登录,此处判断用户是否已经按下了登录按钮。
  94. //此处指返回用户基本信息,
  95. U.A.Request(US.USER, ["UserLogin", username, password, static], U.MD.U.L.asynLoginAjax, [loading, _logaddress, username, password]);
  96. return true;
  97. }
  98. }
  99. /**
  100. * 用户登录执行事件
  101. * @param {object} ajax返回的对象
  102. * @param {boolean} 是否是cookie登陆
  103. *
  104. */
  105. U.MD.U.L.asynLoginAjax = function (r, iscookie) {
  106. if ($('#U_MD_U_L_Login_B')[0]) {
  107. $('#U_MD_U_L_Login_B')[0].innerHTML = '登录';
  108. }
  109. if (U.MD.U.L.loginCallBack) {
  110. U.MD.U.L.loginCallBack(r, iscookie); //回调处理
  111. }
  112. }
  113. /**
  114. * 判断用户名是否符合要求
  115. *
  116. */
  117. U.MD.U.L.checkUserName = function (inputel) {
  118. var _username = inputel.value; //获取用户名
  119. //输入为空不做变化
  120. $('.U_MD_U_L_Box_B').removeClass('U_MD_U_L_Box_mistakeBorder');
  121. if ($('.U_MD_U_L_Box_checkUseNameFormat')[0]) {//检测账号格式提示是否存在
  122. $('.U_MD_U_L_Box_checkUseNameFormat')[0].parentNode.removeChild($('.U_MD_U_L_Box_checkUseNameFormat')[0]);
  123. }
  124. if (_username == "") {
  125. U.MD.U.R.setInputStyle(inputel, { "display": "block", 'textAlign': 'left', 'marginRight': '0px' }, "用户账号"); //输入的用户名为空的样式处理
  126. return false;
  127. }
  128. //注册的用户不符合要求
  129. else if (!U.UF.S.UserName.test(_username)) {
  130. $$("div", { className: 'checkUseNameFormat' }, $(".U_MD_U_L_Box_B")[0]);
  131. $('.U_MD_U_L_Box_B').addClass(" U_MD_U_L_Box_mistakeBorder");
  132. U_MD_U_L_createFormat($('.U_MD_U_L_LB')[1], $('.U_MD_U_L_Box_P_B')[1]);
  133. //U.MD.U.R.setInputStyle(inputel, { "display": "block", 'textAlign': 'right', 'marginRight': '15px' }, "2-10汉字或4-20字符"); //注册用户名不符合提示
  134. return false;
  135. }
  136. return true;
  137. }
  138. /**
  139. *创建用户账号是否标准提醒
  140. *
  141. */
  142. U_MD_U_L_createFormat = function (parentnode, beforenode) {
  143. if ($('.U_MD_U_L_Box_checkUseNameFormat')[0]) {
  144. $('.U_MD_U_L_Box_checkUseNameFormat')[0].parentNode.removeChild($('.U_MD_U_L_Box_checkUseNameFormat')[0]);
  145. }
  146. var _format = document.createElement('div');
  147. _format.className = "U_MD_U_L_Box_checkUseNameFormat";
  148. _format.innerText = "2-10汉字或4-20字符";
  149. parentnode.insertBefore(_format, beforenode);
  150. }
  151. /**
  152. * 判断用户名是否符合要求
  153. *
  154. */
  155. U.MD.U.L.checkpassword = function (inputel) {
  156. var _password = inputel.value; //获取用户名
  157. //输入为空不做变化
  158. if (_password == "") {
  159. U.MD.U.R.setInputStyle(inputel, { "display": "block", 'textAlign': 'left', 'marginRight': '0px' }, "用户密码"); //输入的用户名为空的样式处理
  160. }
  161. }
  162. //#endregion