userLogin.js 27 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658
  1. (function ($) {
  2. $.fn.userLogin = function (param) {
  3. var html = '<div id="userLogin">' +
  4. '<div class="cover-content">' +
  5. '<div class="login">' +
  6. '<div class="left"><p class="loginBg"></p></div>' +
  7. '<ul class="right">' +
  8. '<li class="head">' +
  9. // '<span class="passWay active">密码登录</span>' +
  10. // '<span class="msgWay">短信登录</span>' +
  11. // '<p class="weixin">微信</p>' +
  12. // '<p class="qq">QQ</p>' +
  13. // '<p class="weibo">微博</p>' +
  14. // '<img src="../userLogin/images/wx.png" alt="微信" class="weixin">' +
  15. // '<img src="../userLogin/images/qq.png" alt="QQ" class="qq">' +
  16. // '<img src="../userLogin/images/weibo.png" alt="微博" class="weibo">' +
  17. '<button class="close"></button>' +
  18. '</li>' +
  19. '<li><input type="text" placeholder="请输入用户名" class="user"></li>' +
  20. '<li class="passShow show"><input type="password" placeholder="请输入密码" class="lock"></li>' +
  21. '<li class="msgShow"><input type="text" placeholder="请输入验证码" class="yzm"><button class="getYzm">获取短信验证码</button><div class="btn_cov"></div></li>' +
  22. '<li><button class="loginBtn">登录</button></li>' +
  23. '<li class="other"></li>' +// <button class="fl forgetPass">忘记密码</button> <button class="openReg fr">免费注册</button>
  24. '</ul>' +
  25. '</div>' +
  26. '<div class="regist">' +
  27. '<li class="para"><span class="menu">用户名</span><span class="redAlert">请输入用户名</span><input type="text" placeholder="请输入用户名" class="regName"></li>' +
  28. '<li class="para"><span class="menu">手机号</span><span class="redAlert">请输入手机号</span><input type="text" placeholder="可用于登录和找回密码" class="regNum"></li>' +
  29. '<li class="para"><span class="menu">密码</span><span class="redAlert">请输入密码</span><input type="password" placeholder="请设置登录密码" class="regPass"></li>' +
  30. '<li class="para li_cover"><span class="menu">验证码</span><span class="redAlert">请输入验证码</span><input type="text" placeholder="请输入验证码" class="yzm"><button class="getYzm">获取短信验证码</button><div class="btn_cov"></div></li>' +
  31. '<li class="xieyi"><span class="check"></span>阅读并接受《<a href="yonghuXieyi.html" target="_blank">MAPPLUS用户协议</a>》<span class="redAlert">请阅读协议及声明</span></li>' +
  32. '<li class="zhuce"><button class="regBtn">注册</button></li>' +
  33. '<li class="queding"><button class="queding">确定</button></li>' +
  34. '<li class="other">我已注册,现在去<button class="openLogin">登录</button></li>' +
  35. '<li class="back"><button class="openLogin">返回登录</button></li>' +
  36. '</div>' +
  37. '<div class="tip"></div>' +
  38. '</div>' +
  39. '</div>';
  40. $(this).append(html);
  41. //当前正在浏览的方式: pc/mobile
  42. var curNumCode = "sinup";
  43. function setTip(type, str) {
  44. $("#userLogin .tip").html(str)
  45. $("#userLogin .tip").addClass(type)
  46. $("#userLogin .tip").show()
  47. setTimeout(function () {
  48. $("#userLogin .tip").hide()
  49. $("#userLogin .tip").removeClass(type)
  50. $("#userLogin .tip").html("")
  51. }, 4000);
  52. }
  53. var cookie = {
  54. /**
  55. * 设置cookie
  56. * @type {Function}
  57. * @param name {String} 名称
  58. * @param value {String} 值
  59. * @param days {Number} 过期时间(天)
  60. * @example
  61. */
  62. set: function (name, value, days) {
  63. document.cookie = name + "=" + value;
  64. },
  65. /**
  66. * 获取cookie
  67. * @type {Function}
  68. * @param name {String} 名称
  69. * @returns {null|String} 返回值
  70. * @example
  71. */
  72. get: function (name) {
  73. var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
  74. arr = document.cookie.match(reg);
  75. if (arr) {
  76. return arr[2];
  77. } else {
  78. return null;
  79. }
  80. },
  81. /**
  82. * 删除cookie
  83. * @type {Function}
  84. * @param name {String} 名称
  85. * @example
  86. */
  87. del: function (name) {
  88. var exp = new Date();
  89. exp.setTime(exp.getTime() - 1);
  90. var cval = this.get(name);
  91. if (cval !== null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
  92. }
  93. }
  94. function uuid4() {
  95. var text = "";
  96. var length = [8, 4, 4, 4, 12];
  97. var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
  98. for (var j = 0; j < 5; j++) {
  99. for (var i = 0; i < length[j]; i++) {
  100. text += possible.charAt(Math.floor(Math.random() * possible.length));
  101. }
  102. if (j < 3) {
  103. text += "-"
  104. }
  105. }
  106. return text;
  107. }
  108. function getQueryString(name) {
  109. var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
  110. var r = window.location.search.substr(1).match(reg);
  111. if (r != null) return decodeURI(r[2]);
  112. return '';
  113. };
  114. //判断接口中是否有session,如果有设置session
  115. if (getQueryString('session')) {
  116. session = getQueryString('session');
  117. cookie.del('session');
  118. cookie.set('session', session);
  119. var href = window.location.origin;
  120. window.location.replace(href);
  121. } else {
  122. session = uuid4();
  123. }
  124. var isLoad = false
  125. // $.ajax({
  126. // type: "get",
  127. // dataType: 'jsonp',
  128. // url: param.userServer + '/v1.0/user/me',
  129. // success: function (data) {
  130. // if (data.status == 401) {
  131. // isLoad = false
  132. // cookie.del('session');
  133. // cookie.set('session', session);
  134. // var callData = {
  135. // isLoad: isLoad,
  136. // userInfo: data.data
  137. // }
  138. // if (param.callback)
  139. // param.callback(callData)
  140. // } else {
  141. // //$("#userLogin").addClass('hide');
  142. // isLoad = true
  143. // if (param.callback)
  144. // var callData = {
  145. // isLoad: isLoad,
  146. // userInfo: data.data
  147. // }
  148. // getCurUserJWT(callData)
  149. // }
  150. // },
  151. // error: function (data) {
  152. // console.log(data)
  153. // }
  154. // });
  155. if (localStorage.getItem("systemToken")) {
  156. $.ajax({
  157. type: "GET",
  158. headers: {
  159. token: localStorage.getItem("systemToken"),
  160. },
  161. dataType: "json",
  162. url: param.userServer + '/oauth/user/validateToken',
  163. success: function (result) {
  164. if (result.code == 200) {
  165. if (param.callback) {
  166. var callData = {
  167. isLoad: true,
  168. userInfo: JSON.parse(localStorage.getItem("userInfo"))
  169. }
  170. param.callback(callData)
  171. }
  172. } else {
  173. localStorage.removeItem("systemToken")
  174. localStorage.removeItem("userInfo")
  175. if (param.callback) {
  176. var callData = {
  177. isLoad: false
  178. }
  179. param.callback(callData)
  180. }
  181. }
  182. },
  183. error: function (err) {
  184. localStorage.removeItem("systemToken")
  185. localStorage.removeItem("userInfo")
  186. if (param.callback) {
  187. var callData = {
  188. isLoad: false
  189. }
  190. param.callback(callData)
  191. }
  192. }
  193. });
  194. } else {
  195. if (param.callback) {
  196. var callData = {
  197. isLoad: false
  198. }
  199. param.callback(callData)
  200. }
  201. }
  202. /**
  203. * [getCurUserJWT description]
  204. * 获取当前用户的jwt
  205. * @return {[type]} [description]
  206. */
  207. function getCurUserJWT(calldata) {
  208. $.ajax({
  209. type: "post",
  210. url: param.userServer + '/v1.0/user/jwt',
  211. success: function (data) {
  212. if (data.status == 0) {
  213. calldata.jwt = data.data;
  214. param.callback(calldata)
  215. }
  216. },
  217. error: function (data) {
  218. console.log(data)
  219. }
  220. });
  221. }
  222. /**
  223. * 交互
  224. */
  225. $("#userLogin .close").bind('click', function () {
  226. // $("#userLogin").addClass("hide");
  227. $("#userLogin").hide("hide");
  228. })
  229. //注册
  230. $("#userLogin .openReg").bind('click', function () {
  231. $("#userLogin .login").hide();
  232. $("#userLogin .regist").show();
  233. $("#userLogin .regist li.queding").hide();
  234. $("#userLogin .regist .zhuce, #userLogin .regist .xieyi, #userLogin .regist .other").show();
  235. $("#userLogin .regist .para").eq(0).show();
  236. $("#userLogin .regist .back").hide();
  237. curNumCode = "sinup";
  238. })
  239. //忘记密码
  240. $("#userLogin .forgetPass").bind('click', function () {
  241. $("#userLogin .regist").show();
  242. $("#userLogin .login").hide();
  243. $("#userLogin .regist li.queding").show();
  244. $("#userLogin .regist .zhuce, #userLogin .regist .xieyi, #userLogin .regist .other").hide();
  245. $("#userLogin .regist .para").eq(0).hide();
  246. $("#userLogin .regist .back").show();
  247. curNumCode = "forgetPass";
  248. })
  249. //登录
  250. $("#userLogin .openLogin").bind('click', function () {
  251. $("#userLogin .login").show();
  252. $("#userLogin .regist").hide();
  253. })
  254. //复选框
  255. $("#userLogin .autoLogin,#userLogin .check").bind('click', function () {
  256. if ($(this).hasClass('active')) {
  257. $(this).removeClass('active');
  258. } else {
  259. $(this).addClass('active');
  260. }
  261. })
  262. //登录方式
  263. $("#userLogin .head .passWay").bind('click', function () {
  264. $("#userLogin .head span").removeClass('active');
  265. $(this).addClass('active');
  266. $("#userLogin .passShow").addClass('show');
  267. $("#userLogin .msgShow").removeClass('show');
  268. $("#userLogin .login .user").attr("placeholder", "请输入用户名");
  269. })
  270. $("#userLogin .head .msgWay").bind('click', function () {
  271. $("#userLogin .head span").removeClass('active');
  272. $(this).addClass('active');
  273. $("#userLogin .msgShow").addClass('show');
  274. $("#userLogin .passShow").removeClass('show');
  275. $("#userLogin .login .user").attr("placeholder", "请输入手机号").text("");
  276. })
  277. // 协议
  278. $("#userLogin .regist li.xieyi a").bind('click', function () {
  279. $("#xieyi").addClass('active')
  280. })
  281. $("#xieyi .close").bind('click', function () {
  282. $("#xieyi").removeClass('active')
  283. })
  284. /**
  285. * 交互结束
  286. */
  287. /**
  288. * 请求开始
  289. */
  290. //重置密码
  291. $("#userLogin .regist button.queding").bind('click', function () {
  292. var shouji = $("#userLogin .regist .regNum").val();
  293. var mima = $("#userLogin .regist .regPass").val();
  294. var yanzhengma = $("#userLogin .regist .yzm").val();
  295. if (shouji.length > 0 && mima.length > 0 && yanzhengma.length > 0) {
  296. $.ajax({
  297. url: param.userServer + '/v1.0/user/mobile/reset_password',
  298. method: 'POST',
  299. dataType: 'json',
  300. data: {
  301. mobile: shouji,
  302. password: mima,
  303. code: yanzhengma
  304. }
  305. }).done(function (data) {
  306. console.log(data);
  307. if (data.status == 0) {
  308. setTip("success", "重置密码成功")
  309. $("#userLogin .regist").hide();
  310. $("#userLogin .login").show();
  311. $("#userLogin .regist li").show();
  312. $("#userLogin .regist li.queding").hide();
  313. } else {
  314. setTip("warning", data.message)
  315. }
  316. })
  317. } else {
  318. setTip("warning", '请填写正确信息')
  319. }
  320. })
  321. //注册获取验证码
  322. $("#userLogin .regist .getYzm").bind('click', function () {
  323. var num = $("#userLogin .regist .regNum").val();
  324. //验证手机号
  325. var reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;
  326. if (!reg.test(num)) {
  327. setTip("warning", '请输入正确的手机号')
  328. } else {
  329. if (curNumCode == "sinup") {
  330. var url = param.userServer + '/v1.0/user/mobile/register/code';
  331. } else {
  332. var url = param.userServer + '/v1.0/user/mobile/reset_password/code';
  333. }
  334. $.ajax({
  335. url: url,
  336. method: 'POST',
  337. dataType: 'json',
  338. data: {
  339. mobile: num
  340. }
  341. }).done(function (data) {
  342. console.log(data);
  343. if (data.status == 0) {
  344. showNumCover();
  345. setTip("success", '获取成功')
  346. } else {
  347. setTip("warning", data.message)
  348. }
  349. })
  350. }
  351. })
  352. //注册
  353. $("#userLogin .regist .regBtn").bind('click', function () {
  354. var check = $("#userLogin .regist .check").hasClass('active');
  355. if (!check) {
  356. $("#userLogin .regist .xieyi .redAlert").addClass('show');
  357. } else {
  358. $("#userLogin .regist .xieyi .redAlert").removeClass('show');
  359. }
  360. var redAlert = $("#userLogin .regist .para .redAlert");
  361. for (let i = 0; i < redAlert.length; i++) {
  362. if (redAlert.eq(i).next().val().length < 1) {
  363. redAlert.eq(i).addClass('show');
  364. } else {
  365. redAlert.eq(i).removeClass('show');
  366. }
  367. if (redAlert.eq(i).next().hasClass('regNum') && redAlert.eq(i).next().val().length < 11) {
  368. redAlert.eq(i).text('请输入正确的手机号').addClass('show');
  369. } else if (redAlert.eq(i).next().hasClass('regNum') && redAlert.eq(i).next().val().length >= 11) {
  370. var reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;
  371. if (!reg.test(redAlert.eq(i).next().val())) {
  372. setTip("warning", '请输入正确的手机号')
  373. } else {
  374. redAlert.eq(i).text('请输入手机号').removeClass('show');
  375. }
  376. }
  377. if (redAlert.eq(i).next().hasClass('regPass') && redAlert.eq(i).next().val().length < 6) {
  378. redAlert.eq(i).text('密码不得少于6位').addClass('show');
  379. } else if (redAlert.eq(i).next().hasClass('regPass') && redAlert.eq(i).next().val().length >= 6) {
  380. redAlert.eq(i).text('请输入密码').removeClass('show');
  381. }
  382. }
  383. if (!redAlert.hasClass('show') && check) {
  384. $.ajax({
  385. url: param.userServer + '/v1.0/user/mobile/register',
  386. method: 'POST',
  387. dataType: 'json',
  388. data: {
  389. username: $("#userLogin .regist .regName").val(),
  390. mobile: $("#userLogin .regist .regNum").val(),
  391. password: $("#userLogin .regist .regPass").val(),
  392. code: $("#userLogin .regist .yzm").val(),
  393. referer_src: document.title
  394. }
  395. }).done(function (data) {
  396. console.log(data);
  397. if (data.status == 0) {
  398. // ONEMAP.C.publisher.publish({
  399. // type: 'success',
  400. // message: '获取成功'
  401. // }, 'noteBar::add');
  402. setTip("success", '获取成功')
  403. } else {
  404. // ONEMAP.C.publisher.publish({
  405. // type: 'warning',
  406. // message: data.message
  407. // }, 'noteBar::add');
  408. setTip("warning", data.message)
  409. }
  410. })
  411. }
  412. })
  413. function showNumCover() {
  414. $("#userLogin .btn_cov").show();
  415. var i = 60;
  416. $("#userLogin .btn_cov").html(i + '秒后再次发送');
  417. setTimeout(function () {
  418. $("#userLogin .btn_cov").hide();
  419. clearInterval(interval);
  420. }, 60000)
  421. var interval = setInterval(function () {
  422. i--;
  423. $("#userLogin .btn_cov").html(i + '秒后再次发送');
  424. }, 1000)
  425. }
  426. //登录获取验证码
  427. $("#userLogin .login .getYzm").bind('click', function () {
  428. var phoneNum = $("#userLogin .login .user").val();
  429. //验证手机号
  430. var reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;
  431. if (!reg.test(phoneNum)) {
  432. // ONEMAP.C.publisher.publish({
  433. // type: 'warning',
  434. // message: '请输入正确的手机号'
  435. // }, 'noteBar::add');
  436. setTip("warning", "请输入正确的手机号!")
  437. } else {
  438. $.ajax({
  439. url: param.userServer + '/v1.0/user/mobile/login/code',
  440. method: 'POST',
  441. dataType: 'json',
  442. data: {
  443. mobile: phoneNum
  444. }
  445. }).done(function (data) {
  446. console.log(data);
  447. if (data.status == 0) {
  448. // ONEMAP.C.publisher.publish({
  449. // type: 'success',
  450. // message: '获取成功'
  451. // }, 'noteBar::add');
  452. showNumCover();
  453. setTip("success", "获取成功!")
  454. } else {
  455. // ONEMAP.C.publisher.publish({
  456. // type: 'warning',
  457. // message: data.message
  458. // }, 'noteBar::add');
  459. setTip("warning", data.message)
  460. }
  461. })
  462. }
  463. })
  464. $("#userLogin .login .lock").bind('keydown', function (e) {
  465. if (e.keyCode === 13) {
  466. userLogin();
  467. }
  468. });
  469. //登录
  470. $("#userLogin .login .loginBtn").bind('click', function () {
  471. userLogin();
  472. })
  473. function userLogin() {
  474. var userEmail = $("#userLogin .login .user").val();
  475. var psd = $("#userLogin .login .lock").val();
  476. $.ajax({
  477. url: param.userServer + '/oauth/user/login',
  478. method: 'POST',
  479. headers: {
  480. 'Content-Type': 'application/x-www-form-urlencoded;'
  481. },
  482. data: {
  483. userName: userEmail,
  484. password: psd,
  485. clientId: 0
  486. }
  487. }).done(function (data) {
  488. var result = JSON.parse(data);
  489. var content = result.content;
  490. content.name = content.username;
  491. content.nickname = content.username;
  492. if (result.code === 200) {
  493. localStorage.setItem("systemToken",
  494. result.message
  495. );
  496. localStorage.setItem("userInfo",
  497. JSON.stringify(content)
  498. );
  499. $("#userLogin").hide();
  500. var callData = {
  501. isLoad: true,
  502. userInfo: content
  503. }
  504. if (param.callback)
  505. param.callback(callData)
  506. setTimeout(() => {
  507. window.location.reload();
  508. }, 500);
  509. ONEMAP.C.publisher.publish({
  510. type: 'success',
  511. message: '登录成功!'
  512. }, 'noteBar::add');
  513. } else {
  514. var callData = {
  515. isLoad: false,
  516. }
  517. if (param.callback)
  518. param.callback(callData)
  519. ONEMAP.C.publisher.publish({
  520. type: 'error',
  521. message: '登录失败!'
  522. }, 'noteBar::add');
  523. }
  524. }).error(function (data) {
  525. // ONEMAP.C.publisher.publish({
  526. // type: 'warning',
  527. // message: '该用户尚未注册'
  528. // }, 'noteBar::add');
  529. // setTip("warning", '登录失败!')
  530. var callData = {
  531. isLoad: false,
  532. }
  533. if (param.callback)
  534. param.callback(callData)
  535. ONEMAP.C.publisher.publish({
  536. type: 'error',
  537. message: '登录失败!'
  538. }, 'noteBar::add');
  539. })
  540. return;
  541. // 通过验证码
  542. if ($("#userLogin .msgShow").hasClass('show')) {
  543. var phoneNum = $("#userLogin .login .user").val();
  544. var yzm = $("#userLogin .login .yzm").val();
  545. //验证手机号
  546. var reg = /^1([38][0-9]|4[579]|5[0-3,5-9]|6[6]|7[0135678]|9[89])\d{8}$/;
  547. if (!reg.test(phoneNum)) {
  548. // ONEMAP.C.publisher.publish({
  549. // type: 'warning',
  550. // message: '请输入正确的手机号'
  551. // }, 'noteBar::add');
  552. setTip("warning", "请输入正确的手机号")
  553. } else if (yzm.length < 1) {
  554. // ONEMAP.C.publisher.publish({
  555. // type: 'warning',
  556. // message: '请输入验证码'
  557. // }, 'noteBar::add');
  558. setTip("warning", "请输入验证码")
  559. } else {
  560. $.ajax({
  561. url: param.userServer + '/v1.0/user/mobile/login',
  562. method: 'POST',
  563. dataType: 'json',
  564. headers: {
  565. "Cookie": session,
  566. },
  567. data: {
  568. mobile: phoneNum,
  569. code: yzm
  570. }
  571. }).done(function (data) {
  572. console.log(data);
  573. if (data.status == 0) {
  574. setTip("warning", '登录成功');
  575. window.location.reload();
  576. } else {
  577. // ONEMAP.C.publisher.publish({
  578. // type: 'warning',
  579. // message: data.message
  580. // }, 'noteBar::add');
  581. setTip("warning", data.message)
  582. }
  583. })
  584. }
  585. } else if ($("#userLogin .passShow").hasClass('show')) {
  586. var userEmail = $("#userLogin .login .user").val();
  587. var psd = $("#userLogin .login .lock").val();
  588. // shell示例
  589. // curl -v -XPOST 'http://202.107.245.52:3010/account/login' -H "Content-Type: application/json" -d '{"username": "admin", "password": "admin888"}'
  590. // curl -v 'http://202.107.245.52:3010/v1.0/user/me' -H 'Cookie: session=08eb5ff4-49a8-4efa-b725-228ceb24cda2'
  591. $.ajax({
  592. type: "POST",
  593. dataType: 'json',
  594. url: param.userServer + '/account/login', //3010
  595. contentType: 'application/json',
  596. headers: {
  597. "Cookie": session,
  598. },
  599. data: JSON.stringify({
  600. "username": userEmail,
  601. "password": psd
  602. })
  603. }).done(function (data) {
  604. if (data.meta.code == 400) {
  605. setTip("warning", '用户名或密码错误');
  606. return false;
  607. }
  608. window.location.reload();
  609. }).error(function (data) {
  610. // ONEMAP.C.publisher.publish({
  611. // type: 'warning',
  612. // message: '该用户尚未注册'
  613. // }, 'noteBar::add');
  614. setTip("warning", '该用户尚未注册!')
  615. })
  616. }
  617. }
  618. //微信登录
  619. $("#userLogin .login p.weixin").bind('click', function () {
  620. window.location.replace(param.userServer + '/oauth_client/weixin/login?next=' + param.system);
  621. })
  622. $("#userLogin .login p.qq").bind('click', function () {
  623. window.location.replace(param.userServer + '/oauth_client/qq/login?next=' + param.system);
  624. })
  625. $("#userLogin .login p.weibo").bind('click', function () {
  626. window.location.replace(param.userServer + '/oauth_client/weibo/login?next=' + param.system);
  627. })
  628. this.logout = function () {
  629. cookie.del('session');
  630. window.location.reload();
  631. }
  632. return this;
  633. }
  634. })(jQuery)