api.js 44 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493
  1. /**
  2. * Created by huosdk on 2018/5/5.
  3. */
  4. var h5staticUrl = $('#staticSite').val()
  5. // var baseUrl = 'https://v8h5i.1tsdk.com/api'
  6. // 各种模板
  7. var h5wapTemplate = {
  8. newGame: '<li class="newGame_item" gameid="{{game_id}}">'
  9. + ' <div class="newGame_item__div1">'
  10. + ' <img src="{{icon}}" />'
  11. + ' </div>'
  12. + ' <div class="newGame_item__div2">'
  13. + ' <p class="coolPao">{{gamename}}&ensp;{{tagStr}}</p>'
  14. + ' <p class="openedText">{{oneword}}</p>'
  15. + ' </div>'
  16. + ' <div class="newGame_item__div3">'
  17. + ' <a href="{{gameurl}}"><span class="start"></span></a>'
  18. + ' </div>'
  19. + ' </li>',
  20. giftList: '<div class="giftList">'
  21. + ' <div class="giftList_name">'
  22. + ' <img src="{{icon}}" />'
  23. + ' <span>{{gamename}}</span>'
  24. + ' <a href="{{gameurl}}"><span class="start"></span></a>'
  25. + ' </div>'
  26. + ' {{captionItem}}'
  27. + ' <ul class="giftList_others">{{normalItem}}</ul>'
  28. + ' {{moreBtn}}'
  29. + ' </div>',
  30. giftCaptionItem: '<div class="giftList_addGroup" giftid="{{gift_id}}">'
  31. + ' <div class="giftList_addGroup__div1">'
  32. + ' <p>'
  33. + ' {{tags}}'
  34. + ' {{title}}'
  35. + ' </p>'
  36. + ' <p>{{content}}</p>'
  37. + ' </div>'
  38. + ' <div class="giftList_addGroup__div2">{{btn}}</div>'
  39. + ' </div>',
  40. giftNormalItem: '<li class="giftList_others__item" giftid="{{gift_id}}">'
  41. + ' <div class="giftList_addGroup__div1">'
  42. + ' <p>'
  43. + ' {{tags}}'
  44. + ' {{title}}'
  45. + ' </p>'
  46. + ' <p class="duihuanCode">{{content}}</p>'
  47. + ' </div>'
  48. + ' <div class="giftList_addGroup__div2">{{btn}}</div>'
  49. + ' </li>',
  50. serverOpened: '<li class="runCoolKid_item" gameid="{{game_id}}">'
  51. + ' <div class="runCoolKid_item__div1">'
  52. + ' <img src="{{icon}}" />'
  53. + ' </div>'
  54. + ' <div class="runCoolKid_item__div2">'
  55. + ' <p class="coolPao">{{gamename}}&ensp;{{tagStr}}</p>'
  56. // + ' <p class="openedText">{{oneword}}</p>'
  57. + ' <p class="timeRegion">{{start_time}} <span>{{ser_name}}</span></p>'
  58. + ' </div>'
  59. + ' <div class="runCoolKid_item__div3">'
  60. + ' <a href="{{gameurl}}"><span class="start"></span></a>'
  61. + ' </div>'
  62. + ' </li>',
  63. serverOpen: '<li class="runCoolKid_item" gameid="{{game_id}}">'
  64. + ' <div class="runCoolKid_item__div1">'
  65. + ' <img src="{{icon}}" />'
  66. + ' </div>'
  67. + ' <div class="runCoolKid_item__div2">'
  68. + ' <p class="coolPao">{{gamename}}&ensp;{{tagStr}}</p>'
  69. + ' <p class="timeRegion">{{start_time}} <span>{{ser_name}}</span></p>'
  70. + ' </div>'
  71. + ' <div class="runCoolKid_item__div3">'
  72. + ' <span class="openWarn">即将开服</span>'
  73. + ' </div>'
  74. + ' </li>',
  75. newsNotice: '<li class="notice_item" newsid="{{news_id}}">'
  76. + ' <div class="notice_item__left" style="background: url('+ h5staticUrl +'/h5wap/images/laba.png) no-repeat center; background-size: 70% 70%;">'
  77. // + ' <p class="activityMessage">活动资讯</p>'
  78. + ' </div>'
  79. + ' <div class="notice_item__right">'
  80. + ' <p class="chuliuxiang">{{title}}</p>'
  81. + ' <p class="activityTime">发布日期:{{start_time}}</p>'
  82. + ' </div>'
  83. + ' </li>',
  84. newsActive: '<li class="huodong_item" newsid="{{news_id}}">'
  85. + ' <p class="huodong_item__img">'
  86. + ' <img src="{{img}}" />'
  87. + ' </p>'
  88. + ' <p class="huodong_item__chuliuxiang">{{title}}</p>'
  89. + ' <p class="huodong_item__time">'
  90. + ' 活动日期:{{start_time}} ~ {{end_time}}'
  91. + ' {{status}}'
  92. + ' </p>'
  93. + ' </li>',
  94. information: '<li class="huodong_item" newsid="{{news_id}}">'
  95. + ' <p class="huodong_item__img">'
  96. + ' <img src="{{img}}" />'
  97. + ' </p>'
  98. + ' <p class="huodong_item__chuliuxiang">{{title}}</p>'
  99. + ' <p class="huodong_item__time">'
  100. + ' 发布日期:{{start_time}}'
  101. + ' </p>'
  102. + ' </li>',
  103. strategy: '<li class="huodong_item" newsid="{{news_id}}">'
  104. + ' <p class="huodong_item__img">'
  105. + ' <img src="{{img}}" />'
  106. + ' </p>'
  107. + ' <p class="huodong_item__chuliuxiang">{{title}}</p>'
  108. + ' <p class="huodong_item__time">'
  109. + ' 发布日期:{{start_time}}'
  110. + ' </p>'
  111. + ' </li>',
  112. newsAward: '<li class="youjiang_item" awardid="{{news_id}}">'
  113. + ' <p class="youjiang_item__img">'
  114. + ' <img src="{{img}}" />'
  115. + ' </p>'
  116. + ' <p class="youjiang_item__chuliuxiang">{{title}}</p>'
  117. + ' <p class="youjiang_item__time">'
  118. + ' 活动日期:{{start_time}} ~ {{end_time}}'
  119. + ' {{status}}'
  120. + ' </p>'
  121. + ' </li>',
  122. gameDetail:
  123. '<div class="shadow"> </div>'
  124. + ' <div class="detailsContainer">'
  125. + ' <div class="detailsContainer_content shadowScroll">'
  126. + ' <div>'
  127. + ' <div class="gameShare">'
  128. + ' <span class="gameShare_close"><img src="' + h5staticUrl + '/h5wap/images/icon_youxishangqing_turnoff.png" /></span>'
  129. + ' </div>'
  130. + ' <div class="detailGame ">'
  131. + ' <div class="detailGame_div1"><img src="{{icon}}"/></div>'
  132. + ' <div class="detailGame_div2">'
  133. + ' <p class="coolPao">{{gamename}} {{tags}}</p>'
  134. + ' <p class="playText">{{down_cnt}}人在玩</p>'
  135. + ' <p class="playText">{{oneword}}</p>'
  136. + ' </div>'
  137. + ' </div>'
  138. + ' <div class="detailImg huo_drag__outer">'
  139. + ' <ul class="detailImg_item huo_drag__inner clearfix">'
  140. + ' {{images}}'
  141. + ' </ul>'
  142. + ' </div>'
  143. + ' <div class="gameDescript">{{desc}}</div>'
  144. + ' <p class="showAll" onclick="showAll()">展开全文</p>'
  145. + ' <div class="gameGiftList">'
  146. + ' <p class="gameGiftBag" style="padding: 7px 0 9px;"><i></i>游戏礼包</p>'
  147. + ' <ul class="gameGiftList_item">'
  148. + ' {{gifts}}'
  149. + ' </ul>'
  150. + ' </div>'
  151. + ' <p class="gameGiftBag"><i></i>游戏信息</p>'
  152. + ' <div class="gameInformation">'
  153. + ' <p>版本信息:{{version}}</p>'
  154. + ' </div>'
  155. + ' </div>'
  156. + ' </div>'
  157. + ' <div class="detailsContainer_bottom">'
  158. // + ' <a class="detailsContainer_bottom__wd app-remove" href="/wap/app/down">微端下载</a>'
  159. + ' <a class="detailsContainer_bottom__play" href="{{gameurl}}">开始玩</a>'
  160. + ' </div>'
  161. + ' </div>'
  162. + '</div>',
  163. goodsList:
  164. '<li class="productList_item" type="{{initial}}">'
  165. + ' <a href="/wap/goods/detail?goods_id={{goods_id}}">'
  166. + ' <div class="productList_item__img">'
  167. + ' <img src="{{original_img}}" alt="" />'
  168. + ' </div>'
  169. + ' <div class="productList_item__name">{{goods_name}}</div>'
  170. + ' <div class="productList_item__num">'
  171. + ' <span>{{integral}}积分</span>'
  172. + ' <span>剩余{{remain_cnt}}</span>'
  173. + ' </div>'
  174. + ' </a>'
  175. + '</li>',
  176. integralRecord:
  177. '<li class="jiluList_item">'
  178. + ' <div class="jiluList_item__div">'
  179. + ' <p class="qiandao">{{ia_name}}</p>'
  180. + ' <p class="time">{{create_time}}</p>'
  181. + ' </div>'
  182. + ' <div class="jiluList_item__div">{{integral}}积分</div>'
  183. + '</li>',
  184. ptbRecharge:
  185. '<li class="main_list__item">'
  186. + ' <p class="left_game">获得平台币:<span class="blueColor">{{ptb_cnt}}</span></p>'
  187. + ' <p class="right_buy">消费金额:<span class="orangeColor">{{amount}}</span></p>'
  188. + ' <p>支付方式:{{payway}}</p>'
  189. + ' <p>状态:{{status}}</p>'
  190. + ' <p class="block">订单号:{{order_id}}</p>' + '<p class="block">支付时间:{{create_time}}</p>'
  191. + '</li>',
  192. ptbConsume:
  193. '<li class="main_list__item">'
  194. + ' <p class="left_game">游戏:<span class="blueColor">{{gamename}}</span></p>'
  195. + ' <p class="right_buy">消费平台币:<span class="orangeColor">{{ptb_cnt}}</span></p>'
  196. + ' <p>支付方式:{{type}}</p>'
  197. + ' <p>状态:成功</p>'
  198. + ' <p class="block">订单号:{{order_id}}</p>'
  199. + ' <p class="block">支付时间:{{create_time}}</p>'
  200. + '</li>'
  201. }
  202. // 微信JsApi分享配置
  203. // http://doc.1tsdk.com/180?page_id=6912
  204. function fetchWxConfig (params, fun) {
  205. params.format = 'json'
  206. $.get('/user/share/config', params, function (res) {
  207. if (res.code === 200) {
  208. fun && fun(res)
  209. }
  210. })
  211. }
  212. // 获取游戏列表
  213. // http://doc.1tsdk.com/138?page_id=2839
  214. function fetchGameList (params, tpl, id) {
  215. id = id || tpl
  216. params.format = 'json'
  217. $.post('/wap/game/list', params, function (res) {
  218. if (res.code === 200) {
  219. var h5msite = $('#agentSite').val()
  220. var agentId = $('#agentId').val()
  221. var tpls = ''
  222. var list = res.data && res.data.list || []
  223. for (var i = 0; i < list.length; i++) {
  224. var tagStr = ''
  225. if (list[i].tags) {
  226. tagStr += '<span class="dujia">' + list[i].tags + '</span> '
  227. }
  228. if (list[i].gift_cnt > 0) {
  229. tagStr += '<span class="libao">礼包</span>'
  230. }
  231. list[i].tagStr = tagStr
  232. list[i].gameurl = h5msite + '/sdk.php/game?game_id=' + list[i].game_id + '&agent_id=' + agentId
  233. tpls += replaceTemplate(h5wapTemplate[tpl], list[i])
  234. }
  235. $('#' + id).append(tpls)
  236. huoScrollMore(id, res.data.count, params.page)
  237. }
  238. })
  239. }
  240. // 获取礼包列表
  241. // http://doc.1tsdk.com/138?page_id=3234
  242. function fetchGiftList (params, tpl, id) {
  243. tpl = tpl || 'giftList'
  244. id = id || tpl
  245. params.format = 'json'
  246. $.post('/wap/game/gift/list', params, function (res) {
  247. if (res.code === 200) {
  248. var h5msite = $('#agentSite').val()
  249. var agentId = $('#agentId').val()
  250. var tpls = ''
  251. var list = res.data && res.data.list || []
  252. for (var i = 0; i < list.length; i++) {
  253. var item = list[i]
  254. var fitem = item.gift_list[0]
  255. fitem.tags = fitem.qq_group ? '<span class="libao">加群</span>' : '<span class="tongyima">兑换码</span>'
  256. var btn
  257. if (fitem.qq_group) {
  258. btn = '<a target="_blank" class="jiaqun" href="' + fitem.qq_group[qqGroupDeviceType()] + '">加群</a>'
  259. } else if (fitem.code) {
  260. btn = '<span class="lingqu" giftcode="' + fitem.code + '" onclick="">查看</span>'
  261. } else {
  262. btn = '<span class="lingqu" onclick="addGift(' + fitem.gift_id + ', this)">领取</span>'
  263. }
  264. fitem.btn = btn
  265. item.captionItem = replaceTemplate(h5wapTemplate.giftCaptionItem, fitem)
  266. var normalStr = ''
  267. for (var j = 1; j < item.gift_list.length; j++) {
  268. var igift = item.gift_list[j]
  269. igift.tags = item.qq_group ? '<span class="libao">加群</span>' : '<span class="tongyima">兑换码</span>'
  270. var btn
  271. if (igift.qq_group) {
  272. btn = '<a target="_blank" class="jiaqun" href="' + igift.qq_group[qqGroupDeviceType()] + '">加群</a>'
  273. } else if (igift.code) {
  274. btn = '<span class="lingqu" giftcode="' + igift.code + '" onclick="">查看</span>'
  275. } else {
  276. btn = '<span class="lingqu" onclick="addGift(' + igift.gift_id + ', this)">领取</span>'
  277. }
  278. igift.btn = btn
  279. normalStr += replaceTemplate(h5wapTemplate.giftNormalItem, igift)
  280. }
  281. item.normalItem = normalStr
  282. if (item.gift_list.length > 1) {
  283. item.moreBtn = '<p class="getMore">'
  284. + '<span class="shouqi">查看更多礼包</span> '
  285. + '<img src="' + h5staticUrl + '/h5wap/images/icon_denglu_xialaanniu.png" />'
  286. + '</p>'
  287. }
  288. item.gameurl = h5msite + '/sdk.php/game?game_id=' + item.game_id + '&agent_id=' + agentId
  289. tpls += replaceTemplate(h5wapTemplate[tpl], item)
  290. }
  291. $('#' + id).append(tpls)
  292. huoScrollMore(id, res.data.count, params.page)
  293. }
  294. })
  295. }
  296. // 开服游戏列表
  297. // http://doc.1tsdk.com/138?page_id=2840
  298. function fetchGameServer (params, tpl, id) {
  299. id = id || tpl
  300. params.format = 'json'
  301. $.get('/wap/gameserver/index', params, function (res) {
  302. if (res.code === 200) {
  303. var h5msite = $('#agentSite').val()
  304. var agentId = $('#agentId').val()
  305. var tpls = ''
  306. var list = res.data && res.data.list || []
  307. for (var i = 0; i < list.length; i++) {
  308. var tagStr = ''
  309. if (list[i].tags) {
  310. tagStr += '<span class="dujia">' + list[i].tags + '</span> '
  311. }
  312. if (list[i].gift_cnt > 0) {
  313. tagStr += '<span class="libao">礼包</span>'
  314. }
  315. list[i].start_time = dateTransform(list[i].start_time, 'MM-dd hh:mm')
  316. list[i].gameurl = h5msite + '/sdk.php/game?game_id=' + list[i].game_id + '&agent_id=' + agentId
  317. tpls += replaceTemplate(h5wapTemplate[tpl], list[i])
  318. }
  319. $('#' + id).append(tpls)
  320. huoScrollMore(id, res.data.count, params.page)
  321. }
  322. })
  323. }
  324. // 获取资讯列表
  325. // http://doc.1tsdk.com/138?page_id=2849
  326. function fetchNewsList (params, tpl, id) {
  327. id = id || tpl
  328. params.format = 'json'
  329. $.get('/wap/news/list', params, function (res) {
  330. if (res.code === 200) {
  331. var tpls = ''
  332. var list = res.data && res.data.list || []
  333. for (var i = 0; i < list.length; i++) {
  334. var t = new Date().getTime()
  335. if (list[i].start_time * 1000 > t) {
  336. list[i].status = '<span class="over">未开始</span>'
  337. } else if (list[i].end_time * 1000 < t) {
  338. list[i].status = '<span class="over">已结束</span>'
  339. } else {
  340. list[i].status = '<span class="continue">进行中</span>'
  341. }
  342. // console.log('list[i]===', list[i].url)
  343. list[i].start_time = dateTransform(list[i].start_time, 'yyyy/MM/dd')
  344. list[i].end_time = dateTransform(list[i].end_time, 'yyyy/MM/dd')
  345. tpls += replaceTemplate(h5wapTemplate[tpl], list[i])
  346. }
  347. $('#' + id).append(tpls)
  348. huoScrollMore(id, res.data.count, params.page)
  349. }
  350. })
  351. }
  352. // 获取游戏详情
  353. // http://doc.1tsdk.com/138?page_id=3111
  354. function fetchGameDetail (id) {
  355. var params = {
  356. format: 'json',
  357. game_id: id
  358. }
  359. $.get('/wap/game/detail', params, function (res) {
  360. if (res.code === 200) {
  361. var h5msite = $('#agentSite').val()
  362. var agentId = $('#agentId').val()
  363. var tags = ''
  364. if (res.data.tags) {
  365. tags += '<span class="dujia">' + res.data.tags + '</span>'
  366. }
  367. if (res.data.gift && res.data.gift.length > 0) {
  368. tags += ' <span class="libao">礼包</span>'
  369. var gifts = ''
  370. for (var i = 0; i < res.data.gift.length; i++) {
  371. var gift = res.data.gift[i]
  372. var btn = ''
  373. if (gift.qq_group) {
  374. btn = '<a target="_blank" href="' + gift.qq_group[qqGroupDeviceType()] + '" class="jiaqun">加群</a>'
  375. } else if (gift.code) {
  376. btn = '<span class="lingqu" giftcode="' + gift.code + '" onclick="">查看</span>'
  377. } else {
  378. btn = '<span class="lingqu" onclick="addGift(' + gift.gift_id + ', this)">领取</span>'
  379. }
  380. gifts += '<li class="gameGiftList_item__list">'
  381. + ' <div class="giftBag">'
  382. + ' <p class="giftBag_p1">'
  383. + ' <span class="libao">' + (gift.qq_group ? '加群' : '兑换码') + '</span>&nbsp;' + gift.title
  384. + ' </p>'
  385. + ' <p class="giftBag_p2">' + gift.content + '</p>'
  386. + ' </div>'
  387. + ' <div class="giftBtn">' + btn + '</div>'
  388. + ' </li>'
  389. }
  390. res.data.gifts = gifts
  391. }
  392. res.data.tags = tags
  393. var image = res.data.image || []
  394. var images = ''
  395. for (var i = 0; i < image.length; i++) {
  396. images += '<li class="detailImg_item__list"><img src="' + image[i] + '" alt="" /></li>'
  397. }
  398. res.data.images = images
  399. res.data.gameurl = h5msite + '/sdk.php/game?game_id=' + res.data.game_id + '&agent_id=' + agentId
  400. $('#gameDetail').append(replaceTemplate(h5wapTemplate['gameDetail'], res.data))
  401. ;(function() {
  402. var st = 60
  403. $('#gameDetail').css({'display': 'flex'})
  404. $('.shadow').animate({'height': st}, 500)
  405. $('.detailsContainer').css({'height': 0}).animate({'height': '100%'}, 500, function () {
  406. $('.detailsContainer_content').attr('isScroll', 'slideDown')
  407. })
  408. $('.detailsContainer_content').scroll(function() {
  409. var scrollLength = $(this).scrollTop()
  410. var isScroll = $(this).attr('isScroll')
  411. if (isScroll === 'slideDown' && scrollLength > 0) {
  412. $(this).attr('isScroll', 'slideUp')
  413. $('.shadow').animate({height: 0}, 100)
  414. } else if (isScroll === 'slideUp' && scrollLength === 0) {
  415. $(this).attr('isScroll', 'slideDown')
  416. $('.shadow').animate({height: st}, 100)
  417. }
  418. })
  419. if (!$('.gameGiftList_item > li').length) {
  420. $('.gameGiftList').hide()
  421. }
  422. if ($('.gameDescript').height() > 43) {
  423. $('.gameDescript').height(38)
  424. } else {
  425. $('.showAll').remove()
  426. }
  427. var imgNum = $('.detailImg_item ').find('li').length
  428. if (imgNum === 0 ) {
  429. $('.detailImg').hide()
  430. } else {
  431. $('.detailImg_item ').css({'width': imgNum * 142.2 +'px'})
  432. }
  433. })()
  434. } else {
  435. $('#gameDetail').removeAttr('open')
  436. tips(res.msg)
  437. }
  438. })
  439. }
  440. // 领取礼包
  441. // http://doc.1tsdk.com/138?page_id=2847
  442. function addGift (id, self) {
  443. console.log('id===', id)
  444. console.log('self===', self)
  445. if ($(self).attr('giftcode')) {
  446. return false
  447. }
  448. var params = {
  449. gift_id: id,
  450. format: 'json'
  451. }
  452. $.post('/wap/user/gift/add', params, function (res) {
  453. if (res.code === 200) {
  454. $('.getSucess').css('z-index', 2001).show().find('.getSucess_p2__code').html(res.data.code)
  455. $(self).html('查看').attr('giftcode', res.data.code)
  456. } else {
  457. $('.fuzhiSucess').show().html(res.msg)
  458. setTimeout(function () {
  459. $('.fuzhiSucess').css({'display': 'none'})
  460. }, 1000)
  461. }
  462. })
  463. }
  464. // 签到
  465. // http://doc.1tsdk.com/138?page_id=3147
  466. function addSign () {
  467. if ($('#signBtn').attr('isSign')) {
  468. $('#signPanel').show()
  469. return false
  470. }
  471. $.get('/wap/user/sign/add', {
  472. format: 'json'
  473. }, function (res) {
  474. if (res.code === 200) {
  475. $('#signPanel').show()
  476. $('#myIntegral').text(res.data.my_integral)
  477. $('.jifenqiandaoBox_group > div').eq(res.data.sign_days - 1).find('span:first-child').addClass('sign_day__done')
  478. $('#signBtn').css({'background': '__STATIC__/h5wap/images/button_yiqiandao.png', 'color': '#999999', 'border': '1px solid rgba(204,204,204,1)'}).attr('isSign', true)
  479. }
  480. })
  481. }
  482. // 商品列表
  483. // http://doc.1tsdk.com/138?page_id=3220
  484. function fetchGoodsList (params, tpl, id) {
  485. tpl = tpl || 'goodsList'
  486. id = id || tpl
  487. params.format = 'json'
  488. $.get('/wap/goods/list', params, function (res) {
  489. if (res.code === 200) {
  490. var tpls = ''
  491. var list = res.data && res.data.list || []
  492. for (var i = 0; i < list.length; i++) {
  493. tpls += replaceTemplate(h5wapTemplate[tpl], list[i])
  494. }
  495. $('#' + id).append(tpls)
  496. }
  497. })
  498. }
  499. // 兑换商品
  500. // http://doc.1tsdk.com/138?page_id=3221
  501. function exchangeGoods (params) {
  502. params.format = 'json'
  503. $.get('/wap/goods/exchange', params, function (res) {
  504. if (res.code === 200) {
  505. tips('兑换成功,工作人员将在5个工作日内联系您', function () {
  506. window.location.href = '/wap/shop/index'
  507. })
  508. } else {
  509. tips(res.msg)
  510. }
  511. })
  512. }
  513. // 积分抽奖
  514. // http://doc.1tsdk.com/138?page_id=3306
  515. function drawLottery (actId) {
  516. if ($('#getAward').attr('drawing')) {
  517. return false
  518. }
  519. var freeCnt = +$('#freeCnt').val()
  520. var integral = +$('#integral').val()
  521. var constIntegral = +$('#costIntegral').val()
  522. if (freeCnt > 0) {
  523. freeCnt--
  524. $('#freeCnt').val(freeCnt)
  525. if (freeCnt === 0) {
  526. $('#drawInfo').html('当前积分<b class="jifen" id="myIntegral">' + integral + '</b>, ' + constIntegral + '积分抽奖一次')
  527. }
  528. } else {
  529. integral -= constIntegral
  530. if (integral >= 0) {
  531. $('#myIntegral, .myIntegral').text(integral)
  532. }
  533. }
  534. $('#getAward').attr('drawing', true)
  535. $.post('/wap/lottery/draw', {
  536. format: 'json',
  537. act_id: actId
  538. }, function (res) {
  539. if (res.code === 200) {
  540. award(res.data)
  541. } else if (res.code !== 1002) {
  542. tips(res.msg)
  543. $('#getAward').removeAttr('drawing')
  544. }
  545. })
  546. }
  547. function getAwardItem () {
  548. var items = {}
  549. $('#award > option').each(function (index, item) {
  550. items[$(item).val()] = ({
  551. id: $(item).val(),
  552. name: $(item).text()
  553. })
  554. })
  555. return items
  556. }
  557. function award (opt) {
  558. // var items = getAwardItem()
  559. var length = $('#award > option').length
  560. var angle = -(360 / length * opt.list_order - 180 / length)
  561. rotateFunc(opt, angle)
  562. }
  563. function rotateFunc (award, angle) {
  564. var $btn = $('#zhuanpan')
  565. $btn.stopRotate()
  566. $btn.rotate({
  567. angle: angle,//旋转的角度数
  568. duration: 5000, //旋转时间
  569. animateTo: angle + 1440, //给定的角度,让它根据得出来的结果加上1440度旋转
  570. callback: function () {
  571. $('#myIntegral, .myIntegral').text(award.my_integral)
  572. $('#integral').val(award.my_integral)
  573. $('#getAward').removeAttr('drawing')
  574. var awardAd = ''
  575. var awardAdList = award.award_ad && award.award_ad.list || []
  576. for (var i = 0; i < awardAdList.length; i++) {
  577. awardAd += '<li>恭喜用户' + awardAdList[i].username + '抽奖获得&nbsp;&nbsp;' + awardAdList[i].award_name + '</li>'
  578. }
  579. $('#awardAd').html(awardAd)
  580. var myAward = ''
  581. var myAwardList = award.my_award && award.my_award.list || []
  582. for (var i = 0; i < myAwardList.length; i++) {
  583. if (i === 3) {
  584. myAward += '<div class="myPrizeOtherList">'
  585. }
  586. var mai = myAwardList[i]
  587. var oimg = mai.original_img
  588. if (mai.is_real === 1 && mai.object_type === 'integral') {
  589. oimg = h5staticUrl + '/h5wap/images/icon_jf.png'
  590. }
  591. myAward += '<div class="myPrizeList">'
  592. + ' <div class="myPrizeList_div1">'
  593. + ' <img src="' + oimg + '" alt="" />'
  594. + ' </div>'
  595. + ' <div class="myPrizeList_div2">'
  596. + ' <p class="myPrizeList_div2__p1">' + mai.award_name + '</p>'
  597. + ' <p class="myPrizeList_div2__p2">兑换时间:2018-03-28</p>'
  598. + ' <p class="myPrizeList_div2__p3">'
  599. + (mai.shipping_status === 4 ? '待领取' : (mai.shipping_status === 1 ? '未发货' : (mai.shipping_status === 2 ? '已发货' : '发货失败')))
  600. + ' </p>'
  601. + ' </div>'
  602. + ' <div class="myPrizeList_div3">'
  603. + (mai.shipping_status === 4 ? '<a class="noLing" href="/wap/goods/detail?goods_id=' + mai.goods_id + '&order_id=' + mai.order_id + '"></a>' : '<a class="linged" href="#"></a>')
  604. + ' </div>'
  605. + ' </div>'
  606. }
  607. if (myAwardList.length > 3) {
  608. myAward += '</div><h4 class="checkMore">查看更多</h4>'
  609. }
  610. $('#myAward').html(myAward)
  611. $('.myPrizeOtherList').slideToggle()
  612. if (award.has_award == 2) {
  613. // $('#awardName').html(award.award_name)
  614. tips('恭喜你,获得' + award.award_name + '!')
  615. } else {
  616. tips('很遗憾,没有中奖')
  617. }
  618. }
  619. })
  620. }
  621. // 积分记录
  622. // http://doc.1tsdk.com/138?page_id=3316
  623. function integralRecord (params, tpl, id) {
  624. tpl = tpl || 'integralRecord'
  625. params.format = 'json'
  626. $.get('/wap/integral/record/list', params, function (res) {
  627. if (res.code === 200) {
  628. var list = res.data.list || []
  629. var lis = ''
  630. for (var i = 0; i < list.length; i++) {
  631. list[i].create_time = dateTransform(list[i].create_time)
  632. list[i].integral = (params.itg_type === 1 ? '+' : '-') + list[i].integral
  633. lis += replaceTemplate(h5wapTemplate[tpl], list[i])
  634. }
  635. $('#' + id).append(lis)
  636. huoScrollMore(id, res.data.count, params.page)
  637. }
  638. })
  639. }
  640. // 平台币充值记录
  641. // http://doc.1tsdk.com/138?page_id=3132
  642. function fetchPtbRechargeList (params, tpl, id) {
  643. tpl = tpl || 'ptbRecharge'
  644. id = id || tpl
  645. params.format = 'json'
  646. $.get('/wap/ptb/recharge/record', params, function (res) {
  647. if (res.code === 200) {
  648. var list = res.data.list || []
  649. var lis = ''
  650. for (var i = 0; i < list.length; i++) {
  651. list[i].create_time = dateTransform(list[i].create_time, 'yyyy-MM-dd hh:mm')
  652. list[i].status = list[i].status === 1 ? '失败' : '成功'
  653. lis += replaceTemplate(h5wapTemplate[tpl], list[i])
  654. }
  655. $('#' + id).append(lis)
  656. huoScrollMore(id, res.data.count, params.page)
  657. }
  658. })
  659. }
  660. // 平台币消费记录
  661. // http://doc.1tsdk.com/138?page_id=3133
  662. function fetchPtbConsumeList (params, tpl, id) {
  663. tpl = tpl || 'ptbConsume'
  664. id = id || tpl
  665. params.format = 'json'
  666. $.get('/wap/ptb/consume/record', params, function (res) {
  667. if (res.code === 200) {
  668. var list = res.data.list || []
  669. var lis = ''
  670. for (var i = 0; i < list.length; i++) {
  671. list[i].create_time = dateTransform(list[i].create_time, 'yyyy-MM-dd hh:mm')
  672. if (list[i].type === 5) {
  673. list[i].type = '消费'
  674. }
  675. lis += replaceTemplate(h5wapTemplate[tpl], list[i])
  676. }
  677. $('#' + id).append(lis)
  678. huoScrollMore(id, res.data.count, params.page)
  679. }
  680. })
  681. }
  682. // 发送短信
  683. // http://doc.1tsdk.com/138?page_id=3230
  684. function sendSms (type) {
  685. var mobile = $('[name="sms-mobile"]')
  686. console.log('type==', type)
  687. var data = {
  688. 'sms-type': type,
  689. 'format': 'json'
  690. }
  691. if(mobile.attr('data-value') != '' && mobile.attr('data-value')){
  692. console.log(123)
  693. data['sms-mobile'] = Number(mobile.attr('data-value'))
  694. }else{
  695. console.log(456)
  696. if (mobile.length) {
  697. mobile = mobile.val().trim()
  698. if (!mobile) {
  699. tips('请输入手机号')
  700. return false
  701. }
  702. if (!/1[0-9]{10}/.test(mobile)) {
  703. tips('请输入正确的手机号')
  704. return false
  705. }
  706. data['sms-mobile'] = mobile
  707. }
  708. }
  709. /*if (mobile.length) {
  710. mobile = mobile.val().trim()
  711. if (!mobile) {
  712. tips('请输入手机号')
  713. return false
  714. }
  715. if (!/1[0-9]{10}/.test(mobile)) {
  716. tips('请输入正确的手机号')
  717. return false
  718. }
  719. data['sms-mobile'] = mobile
  720. }*/
  721. var $smsSend = $('#smsSend')
  722. if ($smsSend.attr('disabled')) {
  723. return false
  724. }
  725. $smsSend.attr('disabled', true)
  726. $.ajax({
  727. method: 'post',
  728. url: '/wap/sms/send',
  729. data: data,
  730. success: function (res) {
  731. tips(res.msg)
  732. if (+res.code === 200) {
  733. var t = 120
  734. $smsSend.text(t + 's后重试')
  735. var _t = window.setInterval(function () {
  736. t -= 1
  737. $smsSend.text(t + 's后重试')
  738. if (t === 0) {
  739. window.clearInterval(_t)
  740. $smsSend.text('发送验证码').removeAttr('disabled')
  741. }
  742. }, 1000)
  743. } else {
  744. $smsSend.removeAttr('disabled')
  745. }
  746. }
  747. })
  748. }
  749. // 绑定手机
  750. // http://doc.1tsdk.com/138?page_id=3232
  751. function bindMobile () {
  752. var mobile = $('[name="sms-mobile"]').val().trim()
  753. var code = $('[name="sms-code"]').val().trim()
  754. // var password = $('[name="mem-password"]').val().trim()
  755. if (!mobile) {
  756. tips('请输入手机号')
  757. return false
  758. }
  759. if (!/1[0-9]{10}/.test(mobile)) {
  760. tips('请输入正确的手机号')
  761. return false
  762. }
  763. if (!code) {
  764. tips('请输入验证码')
  765. return false
  766. }
  767. // if (!password) {
  768. // tips('请输入密码')
  769. // return false
  770. // }
  771. $.ajax({
  772. method: 'post',
  773. url: '/wap/mobile/bind',
  774. data: {
  775. 'sms-type': 6,
  776. 'sms-mobile': mobile,
  777. 'sms-code': code,
  778. // 'mem-password': password,
  779. 'format': 'json'
  780. },
  781. success: function (res) {
  782. if (res.code === 200) {
  783. tips(res.msg, function () {
  784. window.history.go(-1)
  785. })
  786. } else {
  787. tips(res.msg)
  788. }
  789. }
  790. })
  791. }
  792. // 绑定支付宝
  793. // http://doc.1tsdk.com/138?page_id=3232
  794. function bindAlipay (item) {
  795. let id = Number($(item).attr('data-id'))
  796. console.log(id)
  797. if(id == 1){
  798. console.log($('#alipay').val())
  799. $('#alipay').val('')
  800. $('#alipay').attr('disabled', false)
  801. $(item).text('确定')
  802. $(item).attr('data-id', 2)
  803. return false
  804. }else{
  805. $(item).text('换绑')
  806. $('#alipay').attr('disabled', true)
  807. $(item).attr('data-id', 1)
  808. }
  809. /*var mobile = $('[name="sms-mobile"]')
  810. var code = $('[name="sms-code"]').val().trim()
  811. var userName = $('[name="sms-name"]').val().trim()
  812. var idCard = $('[name="sms-id"]').val().trim()*/
  813. var alipay = $('[name="sms-alipay"]').val().trim()
  814. // var password = $('[name="mem-password"]').val().trim()
  815. /*if (!userName) {
  816. tips('请输入姓名')
  817. return false
  818. }
  819. if (!idCard) {
  820. tips('请输入身份证号码')
  821. return false
  822. }*/
  823. if (!alipay) {
  824. tips('请输入支付宝账号')
  825. return false
  826. }
  827. /* if(mobile.attr('data-value') != ''){
  828. mobile.val(Number(mobile.attr('data-value')))
  829. }else{
  830. if (!mobile) {
  831. tips('请输入手机号')
  832. return false
  833. }
  834. }
  835. if (!/1[0-9]{10}/.test(mobile.val())) {
  836. tips('请输入正确的手机号')
  837. return false
  838. }
  839. if (!code) {
  840. tips('请输入验证码')
  841. return false
  842. }*/
  843. // if (!password) {
  844. // tips('请输入密码')
  845. // return false
  846. // }
  847. $.ajax({
  848. method: 'post',
  849. url: '/user/bind/alipay/post',
  850. data: {
  851. 'alipay_account': alipay,
  852. // 'mobile': mobile.val(),
  853. // 'sms-code': code,
  854. // 'id_card': idCard,
  855. // 'real_name': userName,
  856. // 'mem-password': password,
  857. 'format': 'json'
  858. },
  859. success: function (res) {
  860. if (res.code === 200) {
  861. tips(res.msg, function () {
  862. window.history.go(-1)
  863. })
  864. } else {
  865. tips(res.msg)
  866. }
  867. }
  868. })
  869. }
  870. // 分享上报
  871. // http://doc.1tsdk.com/138?page_id=3359
  872. function shareAdd (toTarget, shareType, shareId) {
  873. // $('.popShareBox').hide()
  874. $.ajax({
  875. url: '/wap/share/add',
  876. data: {
  877. to_target: toTarget,
  878. share_type: shareType,
  879. share_id: shareId,
  880. format: 'json'
  881. },
  882. success: function (res) {
  883. // window.location.reload()
  884. }
  885. })
  886. }
  887. // 校验原有手机
  888. // http://doc.1tsdk.com/138?page_id=3231
  889. function checkOld () {
  890. var mobile = $('[name="sms-mobile"]')
  891. var code = $('[name="sms-code"]').val().trim()
  892. var data = {
  893. 'sms-type': 4,
  894. 'sms-code': code,
  895. 'format': 'json'
  896. }
  897. if (mobile.length) {
  898. mobile = mobile.val().trim()
  899. if (!mobile) {
  900. tips('请输入手机号')
  901. return false
  902. }
  903. if (!/1[0-9]{10}/.test(mobile)) {
  904. tips('请输入正确的手机号')
  905. return false
  906. }
  907. data['sms-mobile'] = mobile
  908. }
  909. if (!code) {
  910. tips('请输入验证码')
  911. return false
  912. }
  913. $.post('/wap/sms/checkold', data, function (res) {
  914. if (res.code === 200) {
  915. window.location.reload()
  916. } else {
  917. tips(res.msg)
  918. }
  919. })
  920. }
  921. // 选择支付进行支付
  922. // http://doc.1tsdk.com/138?page_id=3326
  923. function payPost (type) {
  924. var amount = +$('.chongzhi_selected').attr('value')
  925. if (!amount || amount < 0) {
  926. tips('请选择充值金额')
  927. return false
  928. }
  929. $.post('/ptb/pay/post', {
  930. payway: type,
  931. amount: amount,
  932. format: 'json'
  933. }, function (res) {
  934. if (res.code === 200) {
  935. switch (res.data.pay_type) {
  936. case 'alipayh5':
  937. case 'alipayqr':
  938. $('body').append(res.data.token)
  939. var alifn = 'alipay_' + new Date().getTime()
  940. HuoUtils.createFrame({
  941. name: alifn,
  942. cb: function () {
  943. $('#alipaysubmit').remove()
  944. }
  945. })
  946. $('#alipaysubmit').attr('target', alifn).submit()
  947. break
  948. case 'wxpayh5':
  949. HuoUtils.createFrame({
  950. name: 'wxpay_' + new Date().getTime(),
  951. url: res.data.token
  952. })
  953. orderQuery(res.data.order_id, 5000)
  954. break
  955. case 'wxpayqr':
  956. HuoUtils.switchTemplate('payWxQr', res.data)
  957. $('#qrcodeRender').qrcode({
  958. width: 110,
  959. height: 110,
  960. text: res.data.token
  961. })
  962. orderQuery(res.data.order_id, 5000)
  963. break
  964. case 'wxpayjs':
  965. HuoUtils.callWxPay(JSON.parse(res.data.token))
  966. break
  967. case 'shengpay':
  968. $('body').append(res.data.token)
  969. var target = 'shengpay_' + new Date().getTime()
  970. HuoUtils.createFrame({
  971. name: target,
  972. cb: function () {
  973. $('#shengpaysubmit').remove()
  974. }
  975. })
  976. $('#shengpaysubmit').attr('target', target).submit()
  977. break
  978. case 'ptbpay':
  979. if (res.data.status === 2) {
  980. HuoUtils.switchTemplate('paySucc')
  981. } else {
  982. HuoUtils.switchTemplate('payFail')
  983. }
  984. break
  985. }
  986. } else {
  987. tips(res.msg)
  988. }
  989. })
  990. }
  991. // 查询支付结果
  992. // http://doc.1tsdk.com/138?page_id=3325
  993. function orderQuery (orderId, timer) {
  994. $.post('/ptb/order/query', {
  995. 'order-order_id': orderId,
  996. 'format': 'json'
  997. }, function (res) {
  998. if (res.code === 200) {
  999. if (res.data.status === 2) {
  1000. tips(res.msg, function () {
  1001. // window.location.reload()
  1002. window.location.href = '/wap/ptb/index'
  1003. })
  1004. } else {
  1005. setTimeout(function () {
  1006. orderQuery(orderId, timer)
  1007. }, timer)
  1008. }
  1009. }
  1010. })
  1011. }
  1012. // 登出
  1013. /*function logout () {
  1014. $.ajax({
  1015. url: baseUrl + '/v8/user/logout',
  1016. data: {
  1017. format: 'jsonp'
  1018. },
  1019. dataType: 'jsonp',
  1020. success: function (res) {
  1021. if (res.code === 200) {
  1022. // window.location.href = '/wap/home/index'
  1023. window.location.reload()
  1024. } else {
  1025. tips(res.msg)
  1026. }
  1027. }
  1028. })
  1029. }*/
  1030. $.ajaxSetup({
  1031. complete: function (jqXHR, status) {
  1032. var res = jqXHR.responseJSON
  1033. if (res && res.code === 1002) {
  1034. // 登录已过期
  1035. // window.location.href = '/wap/user/login'
  1036. HuoUtils.switchTemplate('login')
  1037. }
  1038. }
  1039. })
  1040. function tips (msg, cb) {
  1041. var tips =
  1042. '<div id="tips" class="getSucess" style="display: block; z-index: 2001;">'
  1043. + ' <div class="getSucessBox">'
  1044. + ' <p class="getSucessBox_p1">提示信息</p>'
  1045. + ' <p class="getSucessBox_p2">' + msg + '</p>'
  1046. + ' <p class="getSucessBox_p3"></p>'
  1047. + ' <p class="getSucessBox_p4 noCopy">确定</p>'
  1048. + ' </div>'
  1049. + '</div>'
  1050. $('body').append(tips)
  1051. $('#tips .getSucessBox_p4').click(function () {
  1052. $('#tips').remove()
  1053. if (typeof cb === 'function') {
  1054. cb()
  1055. }
  1056. })
  1057. }
  1058. function replaceTemplate (template, data) {
  1059. data = data || {}
  1060. // 替换字符串
  1061. template = template.replace(/{{([^}]+)}}/g, function (match, p1, offset, string) {
  1062. // 是否存在多重属性
  1063. var params = p1.trim().split('.')
  1064. var val = data[params[0]]
  1065. for (var i = 1; i < params.length; i++) {
  1066. val = val && val[params[i]]
  1067. }
  1068. return (val === undefined || val === null) ? '' : val
  1069. })
  1070. return template
  1071. }
  1072. // 时间转换
  1073. function dateTransform (time, format) {
  1074. var date = isNaN(time) ? new Date() : new Date(time * 1000)
  1075. format = format || 'yyyy/MM/dd hh:mm'
  1076. var o = {
  1077. 'M+' : date.getMonth() + 1, //月份
  1078. 'd+' : date.getDate(), //日
  1079. 'h+' : date.getHours(), //小时
  1080. 'm+' : date.getMinutes(), //分
  1081. 's+' : date.getSeconds(), //秒
  1082. 'q+' : Math.floor((date.getMonth() + 3) / 3), //季度
  1083. 'S' : date.getMilliseconds() //毫秒
  1084. }
  1085. if (/(y+)/.test(format)) {
  1086. format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length))
  1087. }
  1088. for (var k in o) {
  1089. if (new RegExp('(' + k + ')').test(format)) {
  1090. format = format.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)))
  1091. }
  1092. }
  1093. return format
  1094. }
  1095. /**
  1096. * 下拉加载更多
  1097. */
  1098. var OFFSET = 10
  1099. function huoScroll () {
  1100. $('.huo_scroll__outer').scroll(function () {
  1101. var $outer = $(this)
  1102. var $inner = $('.huo_scroll__inner:visible')
  1103. var ph = $outer.height()
  1104. var sh = $outer.scrollTop()
  1105. var oh = $inner.height()
  1106. var $body = $('[huoScrollType]:visible')
  1107. var type = $body.attr('huoScrollType')
  1108. var count = +$body.attr('huoScrollCount')
  1109. var page = +$body.attr('huoScrollPage')
  1110. if (oh - ph - sh < OFFSET && !$body.attr('huoScrolling') && count > page * OFFSET) {
  1111. $body.attr('huoScrolling', true)
  1112. huoScrollType(type, page + 1)
  1113. }
  1114. })
  1115. }
  1116. function huoScrollType (type, page) {
  1117. switch (type) {
  1118. case 'hotGame':
  1119. fetchGameList({
  1120. hot: 2,
  1121. page: page
  1122. }, 'newGame', type)
  1123. break
  1124. case 'newGame':
  1125. fetchGameList({
  1126. is_new: 2,
  1127. page: page
  1128. }, type)
  1129. break
  1130. case 'newsNotice':
  1131. fetchNewsList({
  1132. type: 4,
  1133. page: page
  1134. }, type)
  1135. break
  1136. case 'newsActive':
  1137. fetchNewsList({
  1138. type: 2,
  1139. page: page
  1140. }, type)
  1141. break
  1142. case 'information':
  1143. fetchNewsList({
  1144. type: 1,
  1145. page: page
  1146. }, type)
  1147. break
  1148. case 'strategy':
  1149. fetchNewsList({
  1150. type: 3,
  1151. page: page
  1152. }, type)
  1153. break
  1154. case 'newsAward':
  1155. fetchNewsList({
  1156. type: 5,
  1157. page: page
  1158. }, type)
  1159. break
  1160. case 'serverOpen':
  1161. fetchGameServer({
  1162. server_type: 2,
  1163. page: page
  1164. }, type)
  1165. break
  1166. case 'serverOpened':
  1167. fetchGameServer({
  1168. server_type: 3,
  1169. page: page
  1170. }, type)
  1171. break
  1172. case 'integralIn':
  1173. integralRecord({
  1174. itg_type: 1,
  1175. page: page
  1176. }, '', type)
  1177. break
  1178. case 'integralOut':
  1179. integralRecord({
  1180. itg_type: 2,
  1181. page: page
  1182. }, '', type)
  1183. break
  1184. case 'giftList':
  1185. fetchGiftList({
  1186. page: page
  1187. }, type)
  1188. break
  1189. case 'ptbRecharge':
  1190. fetchPtbRechargeList({
  1191. page: page
  1192. }, type)
  1193. break
  1194. case 'ptbConsume':
  1195. fetchPtbConsumeList({
  1196. page: page
  1197. }, type)
  1198. }
  1199. }
  1200. function huoScrollMore (id, count, page) {
  1201. var $elem
  1202. if (!id) {
  1203. $elem = $('[huoScrollType]:visible')
  1204. id = $elem.attr('id')
  1205. count = $elem.attr('huoScrollCount')
  1206. page = $elem.attr('huoScrollPage')
  1207. } else {
  1208. $elem = $('#' + id)
  1209. count = count || 0
  1210. page = page || 1
  1211. $elem.attr({
  1212. huoScrollPage: page,
  1213. huoScrollCount: count
  1214. }).removeAttr('huoScrolling')
  1215. }
  1216. if ($elem.is(':visible')) {
  1217. if (count <= page * OFFSET) {
  1218. $elem.parent().find('.huo_scroll__more').removeClass('hidden')
  1219. } else {
  1220. $elem.parent().find('.huo_scroll__more').addClass('hidden')
  1221. }
  1222. }
  1223. }
  1224. /**
  1225. * 横向拖动
  1226. */
  1227. function huoDrag () {
  1228. $('.huo_drag__outer').each(function () {
  1229. $(this).attr({
  1230. ml : 0,
  1231. maxx: $(this).width() - $('.huo_drag__inner', this).width(),
  1232. move: 0
  1233. })
  1234. })
  1235. $(document).on('mousedown', '.huo_drag__inner', huoDragStart)
  1236. $(document).on('mouseup', '.huo_drag__inner', huoDragEnd)
  1237. $(document).on('mousemove', '.huo_drag__inner', huoDragMove)
  1238. $(document).on('mouseup', huoDragEnd)
  1239. $(document).on('touchstart', '.huo_drag__inner', huoTouchStart)
  1240. $(document).on('touchmove', '.huo_drag__inner', huoTouchMove)
  1241. $(document).on('touchend', '.huo_drag__inner', huoTouchEnd)
  1242. }
  1243. function huoDragStart (e) {
  1244. e.preventDefault()
  1245. var $parent = $(this).parents('.huo_drag__outer')
  1246. var maxx = +$parent.attr('maxx')
  1247. if (isNaN(maxx)) {
  1248. maxx = $parent.width() - $parent.find('.huo_drag__inner').width()
  1249. $parent.attr('maxx', maxx)
  1250. }
  1251. if (maxx >= 0) {
  1252. return false
  1253. }
  1254. $parent.attr({
  1255. move: e.pageX,
  1256. canMove: true,
  1257. t: new Date().getTime()
  1258. })
  1259. }
  1260. function huoDragEnd (e) {
  1261. e.preventDefault()
  1262. $('.huo_drag__outer').each(function () {
  1263. $(this).removeAttr('canMove')
  1264. $(this).attr({
  1265. ml: parseInt($(this).css('margin-left'))
  1266. })
  1267. })
  1268. }
  1269. function huoDragMove (e) {
  1270. e.preventDefault()
  1271. var $parent = $(this).parents('.huo_drag__outer')
  1272. if (!$parent.attr('canMove')) return false
  1273. var move = +$parent.attr('move')
  1274. var ml = +$parent.attr('ml')
  1275. var maxx = +$parent.attr('maxx')
  1276. var x = e.pageX - move + ml
  1277. x = x > 0 ? 0 : (x < maxx ? maxx : x)
  1278. $parent.css('margin-left', x)
  1279. }
  1280. function huoTouchStart (e) {
  1281. var $parent = $(this).parents('.huo_drag__outer')
  1282. var maxx = +$parent.attr('maxx')
  1283. if (isNaN(maxx)) {
  1284. maxx = $parent.width() - $parent.find('.huo_drag__inner').width()
  1285. $parent.attr('maxx', maxx)
  1286. }
  1287. if (maxx >= 0) {
  1288. return false
  1289. }
  1290. var touches = e.originalEvent.changedTouches
  1291. $parent.attr({
  1292. move: touches[touches.length - 1].pageX,
  1293. canMove: true
  1294. })
  1295. }
  1296. function huoTouchEnd (e) {
  1297. var $parent = $(this).parents('.huo_drag__outer')
  1298. $parent.removeAttr('canMove')
  1299. $parent.attr('ml', parseInt($parent.css('margin-left')))
  1300. }
  1301. function huoTouchMove (e) {
  1302. var $parent = $(this).parents('.huo_drag__outer')
  1303. if (!$parent.attr('canMove')) return false
  1304. var move = +$parent.attr('move')
  1305. var ml = +$parent.attr('ml')
  1306. var maxx = +$parent.attr('maxx')
  1307. var touches = e.originalEvent.changedTouches
  1308. var x = touches[touches.length - 1].pageX - move + ml
  1309. x = x > 0 ? 0 : (x < maxx ? maxx : x)
  1310. $parent.css('margin-left', x)
  1311. }
  1312. /**
  1313. * 地址级联管理
  1314. */
  1315. // 地址查询
  1316. // http://doc.1tsdk.com/138?page_id=3269
  1317. function fetchAddressList (pid, level) {
  1318. $.get('/wap/address/list', {
  1319. parent_id: pid,
  1320. level : level,
  1321. format : 'json'
  1322. }, function (res) {
  1323. if (res.code === 200) {
  1324. if ($('.address_tab-item').length >= level) {
  1325. $('.address_tab-item').eq(level - 1).addClass('active').nextAll().remove()
  1326. } else {
  1327. $('.address_tab').append('<a href="javascript:;" class="address_tab-item active" onclick="fetchAddressList(' + pid + ', ' + level + ')">请选择</a>')
  1328. }
  1329. var list = ''
  1330. for (var key in res.data) {
  1331. list += '<a class="address_list-item" href="javascript:;" onclick="huoAddressSelect(this)" key="' + key + '" level="' + (level + 1) + '">' + res.data[key].name + '</a>'
  1332. }
  1333. $('.address_list').html(list)
  1334. } else {
  1335. huoAddressFinish()
  1336. }
  1337. })
  1338. }
  1339. function huoAddressInit () {
  1340. // 显示地址选择弹层
  1341. $('.address_pop').show()
  1342. // 清空选中地址信息和地址列表信息
  1343. $('.address_tab, .address_list').html('')
  1344. // 获取地址
  1345. fetchAddressList(0, 1)
  1346. }
  1347. function huoAddressSelect (obj) {
  1348. var pid = $(obj).attr('key')
  1349. var level = +$(obj).attr('level')
  1350. var name = $(obj).text()
  1351. $('.address_tab-item.active').attr('key', pid).text(name).removeClass('active')
  1352. if (level < 5) {
  1353. fetchAddressList(pid, level)
  1354. } else {
  1355. huoAddressFinish()
  1356. }
  1357. }
  1358. function huoAddressFinish () {
  1359. var address = ''
  1360. // 可能没有town
  1361. $('[name="town"]').val('')
  1362. $('.address_tab-item').each(function (index) {
  1363. address += $(this).text()
  1364. console.log('$(this).attr(key)====', $(this).attr('key'))
  1365. switch (index) {
  1366. case 0:
  1367. $('[name="province"]').val($(this).attr('key'))
  1368. break
  1369. case 1:
  1370. $('[name="city"]').val($(this).attr('key'))
  1371. break
  1372. case 2:
  1373. $('[name="district"]').val($(this).attr('key'))
  1374. break
  1375. case 3:
  1376. $('[name="town"]').val($(this).attr('key'))
  1377. break
  1378. }
  1379. })
  1380. $('.form_send__select').text(address)
  1381. $('.address_pop').hide()
  1382. }
  1383. window.addEventListener('message', function (event) {
  1384. var data = event.data
  1385. switch (data.type) {
  1386. case 'frame.close':
  1387. $('#huoFrame, #closeFrame').remove()
  1388. break
  1389. case 'identify.success':
  1390. $('#huoFrame').remove()
  1391. break
  1392. }
  1393. }, false)