huosdk.js 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837
  1. /**
  2. * Created by huosdk on 2018/5/7.
  3. */
  4. var baseUrl = $('#h5iSite').val()
  5. /***
  6. * iOS登陆成功之后的回调
  7. * */
  8. function app_login_callback_v1(data) {
  9. let loginData=JSON.parse(data);
  10. let url = ''
  11. switch (loginData.type) {
  12. case 2:
  13. url = '/qq/return';
  14. break;
  15. case 3:
  16. url = '/weixin/return'
  17. break;
  18. }
  19. // alert(url)
  20. $.ajax({
  21. url: baseUrl + url,
  22. data: {
  23. "oauth_app_key": loginData.appid,
  24. "openid": loginData.openid,
  25. "access_token": loginData.token,
  26. "back_url": window.location.href,
  27. "format": "jsonp"
  28. },
  29. dataType: "jsonp",
  30. success: res => {
  31. console.log("res==我是三方登陆的回调==", res)
  32. // alert(JSON.stringify(res.data))
  33. if(res.code == 200){
  34. location.href = res.data.url
  35. }else{
  36. HuoUtils.tips(res.msg)
  37. }
  38. }
  39. })
  40. // alert(loginData.type + "->我是openID===" + loginData.openid + "->我是token====" + loginData.token+ "->我是appid====" + loginData.appid)
  41. }
  42. // utils
  43. var HuoUtils = {
  44. // 模板切换
  45. switchTemplate: function (type, data) {
  46. $('.pop:not(.huosdk_tips):visible').remove()
  47. if (type) {
  48. $('body').append(this.replaceTemplate(type, data))
  49. }
  50. switch (type) {
  51. case 'login':
  52. /**
  53. * 第三方登录
  54. */
  55. if(/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) {
  56. // 移动端
  57. $('a[thirdway=weixin],a[thirdway=weibo],a[thirdway=mLogin]').hide()
  58. // $('a[thirdway=weixin],a[thirdway=mLogin]').show()
  59. $('a[thirdway=weixin]').show()
  60. $('a[thirdway=mLogin]').show()
  61. } else if (window.huo && window.huo.getEnvironment){
  62. // 微端
  63. $('a[thirdway=weixin],a[thirdway=qq],a[thirdway=weibo],a[thirdway=mLogin]').hide()
  64. $('a[thirdway=mLogin]').show()
  65. } else {
  66. // pc端
  67. $('a[thirdway=weibo],a[thirdway=mLogin]').hide()
  68. $('a[thirdway=mLogin]').show()
  69. // $('a[thirdway=weixin],a[thirdway=mLogin]').show()
  70. $('a[thirdway=weixin]').show()
  71. }
  72. break;
  73. }
  74. },
  75. appendTemplate: function (type, data) {
  76. $('body').append(this.replaceTemplate(type, data))
  77. },
  78. replaceTemplate: function (tid, data) {
  79. // 根据 id 获取模板字符串
  80. var template = $('#' + tid + 'Html').html() || ''
  81. data = data || {}
  82. // 替换字符串
  83. template = template.replace(/{{([^}]+)}}/g, function (match, p1, offset, string) {
  84. // 是否存在多重属性
  85. var params = p1.trim().split('.')
  86. var val = data[params[0]]
  87. for (var i = 1; i < params.length; i++) {
  88. val = val && val[params[i]]
  89. }
  90. return val === undefined ? '' : val
  91. })
  92. return template
  93. },
  94. // 校验手机号码
  95. isMobile: function (mobile) {
  96. return /1[0-9]{10}/.test(mobile)
  97. },
  98. // 创建 iframe
  99. createFrame: function (opt) {
  100. var name = opt.name || 'huoFrame'
  101. var style = opt.style || ''
  102. var url = opt.url || ''
  103. var close = opt.close === false ? false : true
  104. var cb = opt.cb || function () {}
  105. $('body').append('<iframe id="huoFrame" name="' + name + '" class="fullscreen" src="' + url + '" style="' + style + '"></iframe>')
  106. if (close) {
  107. $('body').append('<a href="javascript:;" id="closeFrame" class="huosdk_close"><i class="icon_close"></i></a>')
  108. $('#closeFrame').click(function () {
  109. $('#huoFrame, #closeFrame').remove()
  110. cb()
  111. })
  112. }
  113. },
  114. // 隐藏 iframe post
  115. framePost: function (url, form) {
  116. // 追加隐藏 form 和 iframe
  117. $('body').append('<form id="postForm" style="display: none;"></form><iframe id="postFrame" name="postFrame" style="display: none;"></iframe>')
  118. $('#postForm').attr({
  119. method: 'post',
  120. action: url,
  121. target: 'postFrame'
  122. })
  123. if (form) {
  124. var $form = $('[name="' + form + '"]')
  125. $('#postForm').append($('input[name]', $form).clone())
  126. }
  127. $('#postForm').submit()
  128. },
  129. // 提示信息
  130. tips: function (msg) {
  131. $('body').append(
  132. '<div class="pop huosdk_tips" style="z-index: 99 !important">\n'
  133. + ' <div class="pop_body">\n'
  134. + ' <h5>提示信息</h5>\n'
  135. + ' <p>' + msg + '</p>\n'
  136. + ' <p class="btn">\n'
  137. + ' <a href="javascript:;" onclick="$(this).parents(\'.pop\').remove()">确定</a>\n'
  138. + ' </p>\n'
  139. + ' </div>\n'
  140. + '</div>'
  141. )
  142. },
  143. // 协议信息展示
  144. total: function (title,msg) {
  145. let cHei = $('body').height()*0.6
  146. $('body').append(
  147. '<div class="pop huosdk_tips" style="z-index: 99999999!important;">\n'
  148. + ' <div class="pop_body">\n'
  149. + ' <h5>'+ title +'</h5>\n'
  150. + ' <div style="max-height: '+ cHei +'px;overflow: auto;font-size: 14px;text-align: left;">' + msg + '</div>\n'
  151. + ' <p class="btn">\n'
  152. + ' <a href="javascript:;" onclick="$(this).parents(\'.pop\').remove()">关闭</a>\n'
  153. + ' </p>\n'
  154. + ' </div>\n'
  155. + '</div>'
  156. )
  157. },
  158. // 环境判断
  159. hsDeviceType: function () {
  160. var ua = navigator.userAgent
  161. var type = 'pc'
  162. var wx = /micromessenger/i.test(ua)
  163. var ios = /i(pad|phone|pod)/i.test(ua)
  164. var and = /android/i.test(ua)
  165. var mobile = /mobile/i.test(ua)
  166. if (wx) {
  167. type = 'weixin'
  168. } else if (ios) {
  169. type = 'safari'
  170. } else if (and) {
  171. type = 'andbrowser'
  172. } else if (mobile) {
  173. type = 'wap'
  174. }
  175. window.sessionStorage.setItem('huosdk_HS-Device-Type', type)
  176. return type
  177. },
  178. // 调起微信支付
  179. callWxPay: function (data) {
  180. function onBridgeReady () {
  181. WeixinJSBridge.invoke('getBrandWCPayRequest', data, function (res) {
  182. if (res.err_msg === 'get_brand_wcpay_request:ok') {
  183. window.location.href = '/wap/ptb/index'
  184. }
  185. })
  186. }
  187. if (typeof WeixinJSBridge === 'undefined') {
  188. if (document.addEventListener) {
  189. document.addEventListener('WeixinJSBridgeReady', onBridgeReady, false)
  190. } else if (document.attachEvent) {
  191. document.attachEvent('WeixinJSBridgeReady', onBridgeReady)
  192. document.attachEvent('onWeixinJSBridgeReady', onBridgeReady)
  193. }
  194. } else {
  195. onBridgeReady()
  196. }
  197. },
  198. // 展示/隐藏账号下拉框
  199. toggleAccountList: function (e) {
  200. e.preventDefault()
  201. $('.loginId #accountList').toggle()
  202. },
  203. /***
  204. * 写入保存账号
  205. * */
  206. addAccount: function (username, password) {
  207. let obj = {}
  208. let arr = []
  209. let storageArr = localStorage.getItem('acountArrList')? JSON.parse(localStorage.getItem('acountArrList')):[]
  210. for(var i=0; i<storageArr.length;i++) {
  211. if (storageArr[i].username == username) {
  212. return false;
  213. }
  214. }
  215. obj.username = username
  216. obj.password = password
  217. if(storageArr.length <= 0){
  218. arr.push(obj)
  219. localStorage.setItem('acountArrList', JSON.stringify(arr))
  220. }else{
  221. storageArr.push(obj)
  222. localStorage.setItem('acountArrList', JSON.stringify(storageArr))
  223. }
  224. },
  225. /***
  226. * 读取缓存里的账号,渲染到页面
  227. * */
  228. renderAccountList: function () {
  229. let storageArr = localStorage.getItem('acountArrList')? JSON.parse(localStorage.getItem('acountArrList')):[]
  230. let len = storageArr.length - 1
  231. if(storageArr.length <= 0){
  232. $('#loginPop input[name=mem-username]').val('')
  233. $('#loginPop input[name=mem-password]').val('')
  234. }else{
  235. $('#loginPop input[name=mem-username]').val(storageArr[len].username)
  236. $('#loginPop input[name=mem-password]').val(storageArr[len].password)
  237. }
  238. $('#loginPop #accountList').html('')
  239. for(let i = 0; i<storageArr.length; i++){
  240. $('#loginPop #accountList').append(`<li class="account__item" username="${storageArr[i].username}" password="${storageArr[i].password}" onclick="HuoUtils.chooseAccount(event, this)">${storageArr[i].username} <i class="account__del" data-index="${i}" style="margin-top: 2px!important;" onclick="HuoUtils.delAccount(event, this)"></i></li>`)
  241. }
  242. },
  243. chooseAccount: function (e, obj) {
  244. let username = $(obj).attr('username')
  245. let password = $(obj).attr('password')
  246. $('[name="mem-username"]').val(username)
  247. $('[name="mem-password"]').val(password)
  248. HuoUtils.toggleAccountList(e)
  249. },
  250. /**
  251. * 删除保存账号
  252. * */
  253. delAccount: function (e, obj) {
  254. e.stopPropagation()
  255. let index = $(obj).attr('data-index')
  256. let storageArr = localStorage.getItem('acountArrList')? JSON.parse(localStorage.getItem('acountArrList')):[]
  257. storageArr.splice(index, 1)
  258. localStorage.setItem("acountArrList", JSON.stringify(storageArr));
  259. HuoUtils.renderAccountList()
  260. },
  261. }
  262. // api
  263. var HuoApi = {
  264. /**
  265. * 用户接口
  266. * Member Api
  267. */
  268. // 普通登录
  269. userLogin: function () {
  270. var username = $('[name="mem-username"]').val().trim()
  271. var password = $('[name="mem-password"]').val().trim()
  272. if (!username) {
  273. HuoUtils.tips('请输入用户名')
  274. return false
  275. }
  276. if (!password) {
  277. HuoUtils.tips('请输入密码')
  278. return false
  279. }
  280. // 切换到登录中
  281. HuoUtils.appendTemplate('switch', {
  282. 'mem-username': username
  283. })
  284. // 请求登录
  285. var _this = this
  286. console.log('window.redirectUrl====', window.redirectUrl)
  287. $.ajax({
  288. url: baseUrl + '/v8/user/login',
  289. data: {
  290. 'mem-username': username,
  291. 'mem-password': password,
  292. // 'redirect_url': window.redirectUrl,
  293. 'format': 'jsonp'
  294. },
  295. dataType: 'jsonp',
  296. success: function (res) {
  297. console.log('res===', res)
  298. HuoUtils.addAccount(username, password)
  299. _this.loginSuccess(res, username)
  300. }
  301. })
  302. },
  303. // 手机登录
  304. userLoginm: function () {
  305. var mobile = $('[name="sms-mobile"]').val().trim()
  306. var code = $('[name="sms-code"]').val().trim()
  307. if (!mobile) {
  308. HuoUtils.tips('请输入手机号')
  309. return false
  310. }
  311. if (!HuoUtils.isMobile(mobile)) {
  312. HuoUtils.tips('请输入正确的手机号')
  313. return false
  314. }
  315. if (!code) {
  316. HuoUtils.tips('请输入验证码')
  317. return false
  318. }
  319. HuoUtils.appendTemplate('switch', {
  320. 'mem-username': mobile
  321. })
  322. // 请求登录
  323. var _this = this
  324. $.ajax({
  325. url: baseUrl + '/v8/user/loginm',
  326. data: {
  327. 'sms-type': 2,
  328. 'sms-mobile': mobile,
  329. 'sms-code': code,
  330. 'redirect_url': window.redirectUrl,
  331. 'format': 'jsonp'
  332. },
  333. dataType: 'jsonp',
  334. success: function (res) {
  335. _this.loginSuccess(res, mobile)
  336. }
  337. })
  338. },
  339. // 登录请求成功的回调事件
  340. loginSuccess: function (res, username) {
  341. console.log("res===", res)
  342. console.log("res===", username)
  343. if (res.code === 200) {
  344. console.log(789789798)
  345. // var backUrl = $('#backUrl').val()
  346. var backUrl = window.redirectUrl || res.data.url || window.location.href
  347. // if (backUrl.indexOf('token') > 0) {
  348. // backUrl = backUrl.replace(/token=[^&]*/, 'token=' + res.data.user_token)
  349. // } else {
  350. // backUrl += '?token=' + res.data.user_token
  351. // }
  352. // window.location.href = backUrl
  353. // 移除弹框
  354. HuoUtils.switchTemplate()
  355. function userDetail(data) {
  356. console.log('data===', data)
  357. $.ajax({
  358. url: '/float/user/detail',
  359. data: data,
  360. dataType: 'jsonp',
  361. async:false,
  362. success: function (res) {
  363. console.log('res====123====', res)
  364. if (res.code === 200) {
  365. if(res.data.mem_id && res.data.mem_id > 0){
  366. // 移除弹框
  367. location.reload()
  368. }
  369. } else {
  370. // HuoUtils.tips(res.msg)
  371. }
  372. }
  373. })
  374. }
  375. var obj = {
  376. "format": "jsonp",
  377. "token": res.data.user_token
  378. }
  379. sessionStorage.setItem('huosdk_HS-Token', res.data.user_token)
  380. userDetail(obj)
  381. } else {
  382. HuoUtils.tips(res.msg)
  383. // 返回登录
  384. HuoUtils.switchTemplate('login', {
  385. 'mem-username': username
  386. })
  387. }
  388. },
  389. // 第三方登录
  390. userOauth: function (type) {
  391. if (window.huo && window.huo.getEnvironment) {
  392. if (window.huo.getEnvironment() == 'wd_and_h5_app') {
  393. // 2 qq
  394. // 3 微信
  395. if(type == 'qq'){
  396. window.huo.loginByThird(2, '', '', '');
  397. }else if(type == 'weixin'){
  398. window.huo.loginByThird(3, '', '', '');
  399. }
  400. return false
  401. }
  402. }
  403. // 微信环境
  404. function isWechat(){
  405. return /micromessenger/i.test(navigator.userAgent)
  406. }
  407. //是否为PC端
  408. function isPC () {
  409. let userAgentInfo = navigator.userAgent;
  410. let Agents = ["Android", "iPhone",
  411. "SymbianOS", "Windows Phone",
  412. "iPad", "iPod"];
  413. let flag = true;
  414. for (let v = 0; v < Agents.length; v++) {
  415. if (userAgentInfo.indexOf(Agents[v]) > 0) {
  416. flag = false;
  417. break;
  418. }
  419. }
  420. return flag;
  421. }
  422. if (isWechat() && (type == 'qq' || type == 'weixin')) {
  423. window.open(baseUrl + '/oauth/index?type=' + type + '&url=' + window.location.href);
  424. } else {
  425. if(isPC ()){
  426. window.open(baseUrl + '/oauth/index?type=' + type + '&url=' + window.location.href, "_self");
  427. }else{
  428. if(type == 'qq' || type == 'weixin'){
  429. HuoUtils.tips('暂不支持该登陆模式')
  430. }else{
  431. window.open(baseUrl + '/oauth/index?type=' + type + '&url=' + window.location.href, "_self");
  432. }
  433. }
  434. }
  435. // window.location.href = baseUrl + '/oauth/index?type=' + type + '&url=' + window.location.href
  436. // HuoUtils.createFrame({
  437. // name: 'oauth_' + new Date().getTime(),
  438. // url: baseUrl + '/oauth/index?type=' + type + '&url=' + window.location.href
  439. // })
  440. },
  441. // 登出
  442. userLogout: function (isSwitch) {
  443. $.ajax({
  444. url: baseUrl + '/v8/user/logout',
  445. data: {
  446. 'format': 'jsonp'
  447. },
  448. dataType: 'jsonp',
  449. success: function (res) {
  450. console.log(window.location.href.split('?token='))
  451. // window.location.reload()
  452. function delCookie () {
  453. console.log(456879)
  454. var keys = document.cookie.match(/[^ =;]+(?==)/g)
  455. if (keys) {
  456. for (var i = keys.length; i--;) {
  457. console.log('=========',document.domain)
  458. document.cookie = keys[i] + '=0;path=/;expires=' + new Date(0).toUTCString() // 清除当前域名下的,例如:m.ratingdog.cn
  459. document.cookie = keys[i] + '=0;path=/;domain=' + document.domain + ';expires=' + new Date(0).toUTCString() // 清除当前域名下的,例如 .m.ratingdog.cn
  460. document.cookie = keys[i] + '=0;path=/;domain=zhangwanyanxuan.com;expires=' + new Date(0).toUTCString() // 清除一级域名下的或指定的,例如 .ratingdog.cn
  461. }
  462. }
  463. }
  464. delCookie ()
  465. if (res.code === 200) {
  466. window.location.href = window.location.href.split('?token=')[0]
  467. } else {
  468. HuoUtils.tips(res.msg)
  469. }
  470. }
  471. })
  472. },
  473. // 发送手机验证码
  474. smsSend: function (type) {
  475. var mobile = $('[name="sms-mobile"]').val().trim()
  476. if (!mobile) {
  477. HuoUtils.tips('请输入手机号')
  478. return false
  479. }
  480. if (!HuoUtils.isMobile(mobile)) {
  481. HuoUtils.tips('请输入正确的手机号')
  482. return false
  483. }
  484. var $smsSend = $('#smsSend')
  485. if ($smsSend.attr('disabled')) {
  486. return false
  487. }
  488. $smsSend.attr('disabled', true)
  489. $.ajax({
  490. url: baseUrl + '/v8/sms/send',
  491. data: {
  492. 'sms-type': type,
  493. 'sms-mobile': mobile,
  494. 'format': 'jsonp'
  495. },
  496. dataType: 'jsonp',
  497. success: function (res) {
  498. HuoUtils.tips(res.msg)
  499. if (+res.code === 200) {
  500. var t = 120
  501. $smsSend.text(t + 's后重试')
  502. var _t = window.setInterval(function () {
  503. t -= 1
  504. $smsSend.text(t + 's后重试')
  505. if (t === 0) {
  506. window.clearInterval(_t)
  507. $smsSend.text('发送验证码').removeAttr('disabled')
  508. }
  509. }, 1000)
  510. } else {
  511. $smsSend.removeAttr('disabled')
  512. }
  513. }
  514. })
  515. },
  516. /***
  517. * 用户协议
  518. * */
  519. userAgreement: function(e){
  520. e.stopPropagation()
  521. e.preventDefault()
  522. $.ajax({
  523. url: '/richtext/user_agreement',
  524. dataType: 'json',
  525. data: {
  526. "format": "json"
  527. },
  528. success: function(res){
  529. if(res.code == 200){
  530. HuoUtils.total(res.data.title, res.data.content)
  531. }else{
  532. HuoUtils.tips(res.msg)
  533. }
  534. }
  535. })
  536. },
  537. // 选中账号
  538. selectLi(item){
  539. let val = $(item).html()
  540. $('.resetWrap .form_input').val(val)
  541. $('.resetWrap #accountList').hide()
  542. },
  543. // 校验手机验证码
  544. smsVerify: function () {
  545. var mobile = $('[name="sms-mobile"]').val().trim()
  546. var code = $('[name="sms-code"]').val().trim()
  547. let list = []
  548. if (!mobile) {
  549. HuoUtils.tips('请输入手机号')
  550. return false
  551. }
  552. if (!HuoUtils.isMobile(mobile)) {
  553. HuoUtils.tips('请输入正确的手机号')
  554. return false
  555. }
  556. if (!code) {
  557. HuoUtils.tips('请输入验证码')
  558. return false
  559. }
  560. $.ajax({
  561. url: baseUrl + '/v8/user/passwd/sms_check',
  562. data: {
  563. 'sms-type': 5,
  564. 'sms-mobile': mobile,
  565. 'sms-code': code,
  566. 'format': 'jsonp'
  567. },
  568. dataType: 'jsonp',
  569. success: function (res) {
  570. if (res.code === 200) {
  571. HuoUtils.switchTemplate('reset', {
  572. 'verify_token': res.data.verify_token
  573. })
  574. list = res.data.data
  575. $('.resetWrap #accountList').html('')
  576. // reset_form_btn
  577. setTimeout(()=>{
  578. for(let i=0; i<list.length;i++){
  579. $('.resetWrap #accountList').append(`<li data-id="${list[i].id}" onclick="HuoApi.selectLi(this)">${list[i].username}</li>`)
  580. }
  581. $('.reset_form_btn').find('button').attr('data-mobile', mobile)
  582. },800)
  583. } else {
  584. HuoUtils.tips(res.msg)
  585. }
  586. }
  587. })
  588. },
  589. // 重置密码
  590. resetPwd: function () {
  591. var password = $('[name="mem-password"]').val().trim()
  592. var passwordag = $('[name="mem-passwordag"]').val().trim()
  593. var username = $('.resetWrap').find('[name="mem-username"]').val().trim()
  594. if (!password) {
  595. HuoUtils.tips('请输入密码')
  596. return false
  597. }
  598. if (!passwordag) {
  599. HuoUtils.tips('请再次输入密码')
  600. return false
  601. }
  602. if (passwordag !== password) {
  603. HuoUtils.tips('两次输入密码不一致')
  604. return false
  605. }
  606. var token = $('[name="verify_token"]').val().trim()
  607. $.ajax({
  608. url: baseUrl + '/v8/user/passwd/reset',
  609. data: {
  610. 'mem-password': password,
  611. 'verify_token': token,
  612. 'mem-username': username,
  613. 'format': 'jsonp'
  614. },
  615. dataType: 'jsonp',
  616. success: function (res) {
  617. HuoUtils.tips(res.msg)
  618. if (+res.code === 200) {
  619. // 移除弹框
  620. HuoUtils.switchTemplate('login')
  621. }
  622. }
  623. })
  624. },
  625. // 用户注册
  626. userReg: function (regone) {
  627. var username = $('[name="mem-username"]').val().trim()
  628. var password = $('[name="mem-password"]').val().trim()
  629. var passwordag = regone && $('[name="mem-passwordag"]').val().trim()
  630. if (!username) {
  631. HuoUtils.tips('请输入用户名')
  632. return false
  633. }
  634. if (!password) {
  635. HuoUtils.tips('请输入密码')
  636. return false
  637. }
  638. if (!passwordag && regone) {
  639. HuoUtils.tips('请再次输入密码')
  640. return false
  641. }
  642. if (passwordag !== password && regone) {
  643. HuoUtils.tips('两次输入密码不一致')
  644. return false
  645. }
  646. var _this = this
  647. $.ajax({
  648. url: baseUrl + '/v8/user/reg',
  649. data: {
  650. 'mem-username': username,
  651. 'mem-password': password,
  652. 'format': 'jsonp'
  653. },
  654. dataType: 'jsonp',
  655. success: function (res){
  656. HuoUtils.addAccount(username, password)
  657. _this.regSuccess(res)
  658. }
  659. })
  660. },
  661. // 手机注册
  662. userRegm: function () {
  663. var mobile = $('[name="sms-mobile"]').val().trim()
  664. var code = $('[name="sms-code"]').val().trim()
  665. var password = $('[name="mem-password"]').val().trim()
  666. var repeatPassword = $('[name="mem-password2"]').val().trim()
  667. if (!mobile) {
  668. HuoUtils.tips('请输入手机号')
  669. return false
  670. }
  671. if (!HuoUtils.isMobile(mobile)) {
  672. HuoUtils.tips('请输入正确的手机号')
  673. return false
  674. }
  675. if (!code) {
  676. HuoUtils.tips('请输入验证码')
  677. return false
  678. }
  679. if (!password) {
  680. HuoUtils.tips('请输入密码')
  681. return false
  682. }
  683. if(repeatPassword != password){
  684. HuoUtils.tips('两次输入的密码不一致')
  685. return false
  686. }
  687. var _this = this
  688. $.ajax({
  689. url: baseUrl + '/v8/user/regm',
  690. data: {
  691. 'sms-type': 1,
  692. 'sms-mobile': mobile,
  693. 'sms-code': code,
  694. 'mem-password': password,
  695. 'format': 'jsonp'
  696. },
  697. dataType: 'jsonp',
  698. success: function (res){
  699. HuoUtils.addAccount(mobile, password)
  700. _this.regSuccess(res)
  701. }
  702. })
  703. },
  704. // 一键注册
  705. userRegone: function () {
  706. $.ajax({
  707. url: baseUrl + '/v8/user/regone',
  708. data: {
  709. 'format': 'jsonp'
  710. },
  711. dataType: 'jsonp',
  712. success: function (res) {
  713. console.log(res)
  714. if (+res.code === 200) {
  715. HuoUtils.switchTemplate('play', res.data)
  716. // localStorage.setItem('username', res.data.username)
  717. // localStorage.setItem('password', res.data.password)
  718. HuoUtils.addAccount(res.data.username, res.data.password)
  719. // 用户是否直接注册
  720. if (+res.data.type === 1) {
  721. this.userReg(true)
  722. }
  723. } else {
  724. HuoUtils.tips(res.msg)
  725. }
  726. }
  727. })
  728. },
  729. // 注册请求成功的回调事件
  730. regSuccess: function (res) {
  731. if (+res.code === 200) {
  732. sessionStorage.setItem('huosdk_HS-Token', res.data.user_token)
  733. // var backUrl = $('#backUrl').val()
  734. // if (backUrl.indexOf('token') > 0) {
  735. // backUrl = backUrl.replace(/token=[^&]*/, 'token=' + res.data.user_token)
  736. // } else {
  737. // backUrl += '?token=' + res.data.user_token
  738. // }
  739. window.location.reload()
  740. } else {
  741. HuoUtils.tips(res.msg)
  742. }
  743. }
  744. }
  745. $.ajaxSetup({
  746. beforeSend: function (jqXHR, options) {
  747. var url = options.url.match(/^([^?]*)\??(.*)$/)
  748. var data = {}
  749. var keys = []
  750. var params = url[2].split('&')
  751. for (var i = 0; i < params.length; i++) {
  752. var param = params[i].split('=')
  753. data[param[0]] = param[1]
  754. keys.push(param[0])
  755. }
  756. keys.sort()
  757. var str = ''
  758. for (var i = 0; i < keys.length; i++) {
  759. if (i > 0) {
  760. str += '&'
  761. }
  762. str += keys[i] + '=' + data[keys[i]]
  763. }
  764. str = decodeURI(str)
  765. var sign = (options.type + '&' + encodeURIComponent(url[1].replace(baseUrl, '').substr(1)) + '&' + encodeURIComponent(str) + '&' + (data.token || '')).replace(/\(/g, '%28').replace(/\)/g, '%29')
  766. // console.log(options)
  767. // console.log(options.url)
  768. if(options.url != '/cfloat/order/get_list.html' && options.url != '/wap/game/list' && options.url != '/wap/game/type'){
  769. options.url += '&sign=' + md5(sign).toString()
  770. }
  771. },
  772. complete: function (jqXHR, status) {
  773. var res = jqXHR.responseJSON
  774. if (res && +res.code === 1002) {
  775. // 登录已过期
  776. // window.location.href = '/wap/user/login'
  777. HuoUtils.switchTemplate('login')
  778. }
  779. }
  780. })
  781. $.ajaxPrefilter(function (options, originalOptions, jqXHR) {
  782. // 设置请求地址为代理地址
  783. if (options.url.indexOf('/wap') === -1) {
  784. // options.url = baseUrl + options.url
  785. // options.data += options.data ? '&format=jsonp' : 'format=jsonp'
  786. }
  787. options.crossDomain = true
  788. })
  789. $(window).on('message', function (event) {
  790. var data = event.originalEvent.data
  791. switch (data.type) {
  792. case 'page.reload':
  793. var backUrl = $('#backUrl').val()
  794. if (backUrl.indexOf('token') > 0) {
  795. backUrl = backUrl.replace(/token=[^&]*/, 'token=' + data.data.user_token)
  796. } else {
  797. backUrl += '?token=' + data.data.user_token
  798. }
  799. window.location.href = backUrl
  800. break
  801. }
  802. })