header.html 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>{$seo_title}</title>
  6. <link href="__STATIC__/web/pc/css/index.min.css" rel="stylesheet">
  7. <meta name="keywords" content="{$seo_keywords}"/>
  8. <meta name="description" content="{$seo_description}"/>
  9. <link rel="icon" href="{$web_icon.web_ico}" type="image/x-icon"/>
  10. <script src="__STATIC__/web/pc/js/lib/jquery-3.1.1.min.js"></script>
  11. <script src="__STATIC__/web/pc/js/lib/jquery.lazyload.js"></script>
  12. <script src="__STATIC__/web/pc/js/lib/layer.min.js"></script>
  13. <script>
  14. jQuery(document).ready(function ($) {
  15. $("img.lazy").lazyload({
  16. threholde: 1,
  17. skip_invisible: false,
  18. effect: "fadeIn"
  19. });
  20. });
  21. </script>
  22. </head>
  23. <body>
  24. <div class="TopBar">
  25. <input type="hidden" class="toLoginUrl" value="{:url('v8/member/index')}">
  26. <div class="TopBar_cnt clearfix container">
  27. <p class="float_left">{$web_basic.title}</p>
  28. <p class="float_right" id="TopBar_usermessage">
  29. <notempty name="member">
  30. <a href="javascript:void(0);" type="">{$member.username},您好</a>
  31. <i >|</i>
  32. <a href="javascript:loginout();" type="loginout">退出</a>
  33. <else />
  34. <a href="javascript:void(0);" type="sign">注册</a>
  35. <i >|</i>
  36. <a href="javascript:void(0);" type="login">登录</a>
  37. </notempty>
  38. </p>
  39. </div>
  40. </div>
  41. <header class="mainHeader">
  42. <div class="container clearfix">
  43. <a href="#" class="LOGO float_left">
  44. <img src="{$web_icon.web_logo}" alt="">
  45. </a>
  46. <nav class="mainHeader_nav float_left">
  47. <ul class="clearflx">
  48. <li class="navbar_item active"><a href="{:url('v8/home/index')}">首页</a></li>
  49. <li class="navbar_item"><a href="{:url('v8/game/index')}">游戏中心</a></li>
  50. <li class="navbar_item"><a href="{:url('v8/server/index')}">开服列表</a> </li>
  51. <li class="navbar_item"><a href="{:url('v8/news/index')}">资讯</a></li>
  52. <li class="navbar_item"><a href="{:url('v8/gift/index')}">礼包</a></li>
  53. <notempty name="member">
  54. <li class="navbar_item toUserCenter"><a href="{:url('v8/member/index')}">个人中心</a></li>
  55. <else/>
  56. <li class="navbar_item toUserCenter"><a href="javascript:createdLoginMask('login')" type="login">个人中心</a></li>
  57. </notempty>
  58. <input type="hidden" class="homeHref" value="{:url('v8/home/index')}">
  59. </ul>
  60. </nav>
  61. <div class="mainHeader_search float_right">
  62. <form action="{:url('v8/game/index')}" method="get">
  63. <input name="gamename" class="js-searchGame" type="search" placeholder="{$web_search.search_default_word}">
  64. </form>
  65. </div>
  66. </div>
  67. <input type="hidden" value="{:url('v8/memebr/find_pass')}" id="toFindPaw_href">
  68. </header>
  69. <div class="u-FullMask" id="GiftDetailDialog">
  70. <div class="GiftDetailDialog">
  71. <div class="GiftDetailDialog_l">
  72. <div>
  73. <img class="js-icon" src="__STATIC__/web/pc/images/gameImg.png" alt="">
  74. <h3 class="js-gamegift">丽人修仙传</h3>
  75. <p class="js-giftType">新手大礼包</p>
  76. </div>
  77. </div>
  78. <div class="GiftDetailDialog_r">
  79. <div>
  80. <h2 class="Title">
  81. <span>礼包详情</span>
  82. <img class="CloseDialog" src="__STATIC__/web/pc/images/close_icon.svg" alt="">
  83. </h2>
  84. <div class="QA">
  85. <!--<div class="QA_item">-->
  86. <!--<div class="QA_item_Q">领取条件:</div>-->
  87. <!--<div class="QA_item_A js-tj">所有玩家</div>-->
  88. <!--</div>-->
  89. <div class="QA_item">
  90. <div class="QA_item_Q">礼包内容:</div>
  91. <div class="QA_item_A GiftCntColor js-nr">强化石*3,铜钱*1万,复活券*1,扫荡券*1,血瓶*2。</div>
  92. </div>
  93. <div class="QA_item">
  94. <div class="QA_item_Q">使用说明:</div>
  95. <div class="QA_item_A js-sm">下载游戏,点击礼包,输入礼包兑换码!</div>
  96. </div>
  97. <div class="QA_item">
  98. <div class="QA_item_Q">有效期:</div>
  99. <div class="QA_item_A js-yxq">2017-12-12 至 2018-1-1 </div>
  100. </div>
  101. </div>
  102. <div class="Receive">
  103. <button class="js-GiftReceive" giftid="-1">领 取</button>
  104. </div>
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. <div class="u-FullMask" id="successDialog">
  110. <div class="successDialog">
  111. <div class="successDialog_top">
  112. <img src="__STATIC__/web/pc/images/success_icon.svg" alt="">
  113. <div class="msg">
  114. <p>礼包领取成功!</p>
  115. <p>快去下载游戏使用吧!</p>
  116. </div>
  117. </div>
  118. <div class="successDialog_Code">
  119. <img class="app_code" src="__STATIC__/web/pc/images/appCode.png" alt="">
  120. <h2>扫一扫 火速下载</h2>
  121. <a class="closeSuccessDialog" href="javascript:;">我已下载</a>
  122. </div>
  123. </div>
  124. </div>
  125. <!-- 领取礼包接口 -->
  126. <input type="hidden" class="js-getGiftUrl" value="{:url('v8/gift/set')}">
  127. <script>
  128. var ajaxloding;
  129. function loginout() {
  130. var confirm = layer.confirm('确定要退出吗?', {
  131. btn: ['确认', '取消'] //按钮
  132. }, function () {
  133. $.ajax({
  134. url : "{:url('v8/member/logout')}",
  135. type : 'post',
  136. beforeSend: function () {
  137. ajaxloding = layer.load(1, {
  138. shade: [0.1, '#fff'] //0.1透明度的白色背景
  139. });
  140. },
  141. success : function (res) {
  142. layer.close(ajaxloding)
  143. if (res.error == 0) {
  144. layer.msg(res.msg, {icon: 6, time: 1000});
  145. }
  146. if ($('#navbarIndex').val() == 5) {
  147. window.location.href = $('.homeHref').val();
  148. return;
  149. }
  150. var topbar_html = '<a href="javascript:void(0);" type="sign">注册</a>\n' +
  151. ' <i >|</i>\n' +
  152. ' <a href="javascript:void(0);" type="login">登录</a>'
  153. $('#TopBar_usermessage').html(topbar_html)
  154. topBarEvent();
  155. $('.toUserCenter a').attr('href', 'javascript:createdLoginMask("login");')
  156. layer.close(confirm)
  157. }
  158. })
  159. }, function () {
  160. });
  161. }
  162. var createdLoginMask = function (m) {
  163. var actoveNav,
  164. activeCnt,
  165. html;
  166. var phoneReg = /^[1][345789][0-9]{9}$/;
  167. var code_time = 60;
  168. console.log($('#js-LoginMask'));
  169. if ($('#js-LoginMask').length > 0) {
  170. $('#js-LoginMask').fadeIn(250)
  171. } else {
  172. html = '<div class="u-FullMask" id="js-LoginMask">\n' +
  173. ' <div class="u-Dialog">\n' +
  174. ' <div class="u-Dialog_nav">\n' +
  175. ' <ul>\n' +
  176. ' <li class="active">登陆</li>\n' +
  177. ' <li>注册</li>\n' +
  178. ' </ul>\n' +
  179. ' <img src="__STATIC__/web/pc/images/close_icon2.svg" class="close" alt="">' +
  180. ' </div>\n' +
  181. ' <div class="u-Dialog_cnt">\n' +
  182. ' <div class=" u-Dialog__login" id="js-loginDiv">\n' +
  183. ' <div class="u-form-group u-form-group__merge">\n' +
  184. ' <input type="text" class="username" placeholder="用户名">\n' +
  185. ' <input type="password" class="password" placeholder="密 码">\n' +
  186. ' </div>\n' +
  187. ' <div class="u-form-group">\n' +
  188. ' <input type="button" value="登陆" class="js-login">\n' +
  189. ' </div>\n' +
  190. ' <a href="'+$('#toFindPaw_href').val()+'" class="forget">忘记密码</a>\n' +
  191. ' </div>\n' +
  192. ' <div class="u-Dialog__sign" id="js-signDiv">\n' +
  193. ' <div class="u-form-group">\n' +
  194. ' <input type="text" class="username" placeholder="手机号">\n' +
  195. ' </div>\n' +
  196. ' <div class="u-form-group">\n' +
  197. ' <input type="password" class="paw" placeholder="设置密码">\n' +
  198. ' </div>\n' +
  199. ' <div class="u-form-group">\n' +
  200. ' <input type="password" class="paw2" placeholder="确认密码">\n' +
  201. ' </div>\n' +
  202. ' <div class="u-form-group u-form-group__varify">\n' +
  203. ' <input type="text" class="code" placeholder="验证码">\n' +
  204. ' <button class="js-getPhoneCode">获取</button>\n' +
  205. ' </div>\n' +
  206. ' <div class="u-form-group u-form-group__checkbox">\n' +
  207. ' <input type="checkbox" class="Sign_check">\n' +
  208. ' <a class="Check_agreement" href="../user-agreement.html">同意火速游戏用户协议</a>\n' +
  209. ' </div>\n' +
  210. ' <div class="u-form-group">\n' +
  211. ' <input type="button" class="js-toVerify" value="下一步">\n' +
  212. ' </div>\n' +
  213. ' </div>\n' +
  214. ' <div class="js-active u-Dialog__verify" id="js-identDiv">\n' +
  215. ' <p>\n' +
  216. ' 根据2010年8月1日实施的《网络游戏管理暂行办法》,网络游戏用户需使用有效身份证件进行实名注册。为保证流畅游戏体验同,享受健康游戏生活,请广大火速玩家尽快实名登记。\n' +
  217. ' </p>\n' +
  218. ' <div class="u-form-group u-form-group__merge">\n' +
  219. ' <input type="text" class="js-truename" placeholder="真实姓名">\n' +
  220. ' <input type="text" class="js-idcard" placeholder="身份证号">\n' +
  221. ' </div>\n' +
  222. ' <div class="u-form-group u-form-group__buttons">\n' +
  223. ' <input type="button" class="js-ident" value="完成认证">\n' +
  224. ' </div>\n' +
  225. ' </div>\n' +
  226. ' </div>\n' +
  227. ' </div>\n' +
  228. ' </div>';
  229. $('body').append(html)
  230. $('#js-LoginMask').fadeIn(250)
  231. $('#js-LoginMask .u-Dialog_nav li').on('click', function () {
  232. var index = $(this).index()
  233. $(this).addClass('active').siblings().removeClass('active')
  234. $('#js-LoginMask .u-Dialog_cnt > div').eq(index).addClass('js-active').siblings().removeClass('js-active')
  235. })
  236. $('#js-LoginMask .u-Dialog_nav .close').on('click', function () {
  237. $('#js-LoginMask').fadeOut(250)
  238. // utils.unlockY()
  239. })
  240. // 发送验证码
  241. $('.js-getPhoneCode').on('click', function () {
  242. var phone = $('#js-signDiv .username').val();
  243. var that = this;
  244. if (! phone || ! phoneReg.test(phone)) {
  245. layer.msg('请检查手机号格式是否正确!');
  246. return;
  247. }
  248. $.ajax({
  249. url: "{:url('v8/sms/send')}",
  250. data: {
  251. mobile: $('#js-signDiv .username').val(),
  252. smstype : 1
  253. },
  254. type: 'post',
  255. success: function (res) {
  256. if (res.error == 0) {
  257. layer.msg(res.msg, {icon: 6, time: 1000});
  258. $(that).attr('disabled',true)
  259. var code_Interval = setInterval(function () {
  260. if (code_time <= 0) {
  261. $(that).attr('disabled',false)
  262. $(that).html('获取')
  263. code_time = 60;
  264. clearInterval(code_Interval)
  265. return;
  266. }
  267. code_time--;
  268. $(that).html(code_time)
  269. },1000)
  270. } else {
  271. layer.msg(res.msg, {icon: 5, time: 1000});
  272. }
  273. }
  274. })
  275. })
  276. // 提交登陆
  277. $('.js-login').on('click', function () {
  278. var loginData = {
  279. username: $('#js-loginDiv .username').val(),
  280. password: $('#js-loginDiv .password').val()
  281. }
  282. if (loginData.username == '') {
  283. layer.msg('用户名不能为空', {time: 500});
  284. return;
  285. }
  286. if (loginData.password.length < 6) {
  287. layer.msg('密码不能小于6个字符', {time: 500});
  288. return;
  289. }
  290. $.ajax({
  291. url : "{:url('v8/member/login')}",
  292. data : loginData,
  293. type : 'post',
  294. beforeSend: function () {
  295. ajaxloding = layer.load(1, {
  296. shade: [0.1, '#fff'] //0.1透明度的白色背景
  297. });
  298. },
  299. success : function (res) {
  300. layer.close(ajaxloding)
  301. if (res.error == 0) {
  302. layer.msg(res.msg, {icon: 6, time: 1000});
  303. var topbar_html = ' <a href="javascript:void(0);" type="">' + res.data.username + ',您好</a>\n' +
  304. ' <i >|</i>\n' +
  305. ' <a href="javascript:loginout();" type="loginout">退出</a>'
  306. $('#js-LoginMask').fadeOut(250)
  307. $('#TopBar_usermessage').html(topbar_html)
  308. $('.toUserCenter a').attr('href', $('.toLoginUrl').val())
  309. // utils.unlockY()
  310. } else {
  311. layer.msg(res.msg, {icon: 5, time: 1000});
  312. }
  313. }
  314. })
  315. })
  316. // 提交注册
  317. $('.js-toVerify').on('click', function () {
  318. var paw2 = $('#js-signDiv .paw2').val();
  319. var phoneReg = /^0{0,1}(13[0-9]|15[7-9]|153|156|18[7-9])[0-9]{8}$/;
  320. var signData = {
  321. username: $('#js-signDiv .username').val(),
  322. password: $('#js-signDiv .paw').val(),
  323. code : $('#js-signDiv .code').val()
  324. }
  325. if (! signData.username || ! phoneReg.test(signData.username)) {
  326. layer.msg('请检查手机号格式是否正确!', {time: 500});
  327. return;
  328. }
  329. if (paw2 != signData.password) {
  330. layer.msg('请检查两次密码是否一致!', {time: 500});
  331. return;
  332. }
  333. if (! signData.code) {
  334. layer.msg('验证码不能为空!', {time: 500});
  335. return;
  336. }
  337. if (! $('#js-signDiv .Sign_check').get(0).checked) {
  338. layer.msg('需要同意火速游戏用户协议!', {time: 500});
  339. return;
  340. }
  341. $.ajax({
  342. url : "{:url('v8/member/reg')}",
  343. data : signData,
  344. type : 'post',
  345. success: function (res) {
  346. if (res.error == 0) {
  347. layer.msg(res.msg, {icon: 6, time: 1000});
  348. var topbar_html = ' <a href="javascript:void(0);" type="">' + res.data.username + ',您好</a>\n' +
  349. ' <i >|</i>\n' +
  350. ' <a href="javascript:loginout();" type="loginout">退出</a>'
  351. $('#TopBar_usermessage').html(topbar_html)
  352. $('.toUserCenter a').attr('href', $('.toLoginUrl').val())
  353. if (res.data.reg_setting.real_name_reg == 1) {
  354. $('#js-LoginMask .u-Dialog_cnt > div').eq(2).addClass('js-active').siblings().removeClass('js-active')
  355. } else {
  356. $('#js-LoginMask').fadeIn(250);
  357. }
  358. } else {
  359. layer.msg(res.msg, {icon: 5, time: 1000});
  360. }
  361. }
  362. })
  363. })
  364. // 提交认证
  365. $('.js-ident').on('click', function () {
  366. var identData = {
  367. truename: $('#js-identDiv .js-truename').val(),
  368. idcard : $('#js-identDiv .js-idcard').val()
  369. }
  370. $.ajax({
  371. url : "{:url('v8/member/auth_realname')}",
  372. data : identData,
  373. type : 'post',
  374. success: function (res) {
  375. if (res.error == 0) {
  376. layer.msg(res.msg, {icon: 6, time: 1000});
  377. $('#js-LoginMask').fadeOut(250)
  378. } else {
  379. layer.msg(res.msg, {icon: 5, time: 1000});
  380. }
  381. }
  382. })
  383. })
  384. }
  385. if (m == 'login') {
  386. $('#js-LoginMask .u-Dialog_nav li').eq(0).addClass('active').siblings().removeClass('active')
  387. $('#js-LoginMask .u-Dialog_cnt > div').eq(0).addClass('js-active').siblings().removeClass('js-active')
  388. } else if (m == 'sign') {
  389. $('#js-LoginMask .u-Dialog_nav li').eq(1).addClass('active').siblings().removeClass('active')
  390. $('#js-LoginMask .u-Dialog_cnt > div').eq(1).addClass('js-active').siblings().removeClass('js-active')
  391. }
  392. }
  393. function topBarEvent() {
  394. $('.TopBar a[type=login]').on('click', function () {
  395. if ($('#js-LoginMask').length > 0) {
  396. $('#js-LoginMask').remove();
  397. }
  398. createdLoginMask('login')
  399. // utils.lockY()
  400. })
  401. $('.TopBar a[type=sign]').on('click', function () {
  402. if ($('#js-LoginMask').length > 0) {
  403. $('#js-LoginMask').remove()
  404. }
  405. createdLoginMask('sign')
  406. // utils.lockY()
  407. })
  408. }
  409. function getUrlParam(name) {
  410. var url = window.location.href;
  411. var obj = {};
  412. var reg = /\?/;
  413. if (url.match(reg)) {
  414. //判断传入参数,以问号截取,问号后是参数
  415. var chars = url.split('?')[1];
  416. //再截&号
  417. var arr = chars.split('&');
  418. //获得截取后的数组为键值对字符串
  419. for (var i = 0; i < arr.length; i ++) {
  420. //保守一点确定看是否为 name=value形式
  421. var num = arr[i].indexOf("=");
  422. if (num > 0) {
  423. //拼接字符串
  424. var name = arr[i].substring(0, num);
  425. var value = arr[i].substr(num + 1);
  426. //拼接对象,并转码
  427. obj[decodeURIComponent(name)] = decodeURIComponent(value);
  428. }
  429. }
  430. }
  431. ;
  432. return obj;
  433. }
  434. $(function () {
  435. if (getUrlParam().gamename) {
  436. $('.js-searchGame').val(getUrlParam().gamename)
  437. }
  438. topBarEvent();
  439. var index = index === undefined ? $('#navbarIndex').val() : index;
  440. $('.navbar_item').eq(index).addClass('active').siblings().removeClass('active');
  441. })
  442. Date.prototype.format = function(format) {
  443. var date = {
  444. "M+": this.getMonth() + 1,
  445. "d+": this.getDate(),
  446. "h+": this.getHours(),
  447. "m+": this.getMinutes(),
  448. "s+": this.getSeconds(),
  449. "q+": Math.floor((this.getMonth() + 3) / 3),
  450. "S+": this.getMilliseconds()
  451. };
  452. if (/(y+)/i.test(format)) {
  453. format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
  454. }
  455. for (var k in date) {
  456. if (new RegExp("(" + k + ")").test(format)) {
  457. format = format.replace(RegExp.$1, RegExp.$1.length == 1
  458. ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
  459. }
  460. }
  461. return format;
  462. }
  463. var downUrl;
  464. function getGift(t, giftDetail) {
  465. var idx = $(t).attr('idx');
  466. downUrl = 'http://toolapi.pipaw.com/chart.ashx?version=0&size=4&level=3&space=4&chl=' + $(t).attr('downUrl');
  467. var giftDetail = giftDetail.list[idx];
  468. var date1 = new Date(giftDetail.start_time * 1000);
  469. var date2 = new Date(giftDetail.end_time * 1000);
  470. $('.GiftDetailDialog .js-gamegift').text(giftDetail.gamename)
  471. $('.GiftDetailDialog .js-giftType').text(giftDetail.gift_name)
  472. $('.GiftDetailDialog .js-icon').attr('src',giftDetail.icon)
  473. // $('.GiftDetailDialog .js-tj').text(giftDetail.content)
  474. $('.GiftDetailDialog .js-nr').text(giftDetail.content)
  475. $('.GiftDetailDialog .js-sm').text(giftDetail.func)
  476. $('.GiftDetailDialog .js-yxq').text(date1.format('yyyy-MM-dd hh:mm:ss') + ' 至 ' + date2.format('yyyy-MM-dd hh:mm:ss'))
  477. $('.GiftDetailDialog .js-GiftReceive').attr('giftid', giftDetail.giftid)
  478. }
  479. $('#GiftDetailDialog .js-GiftReceive').on('click', function () {
  480. $.ajax({
  481. url: $('.js-getGiftUrl').val(),
  482. type:'post',
  483. data: {
  484. giftid: $(this).attr('giftid')
  485. },
  486. success: function (res) {
  487. if (res.error == 0) {
  488. $('#GiftDetailDialog').hide();
  489. $('#successDialog').show();
  490. $('#successDialog .app_code').attr('src', downUrl);
  491. } else if (res.error === 2){
  492. layer.msg(res.msg, {time: 700});
  493. } else if (res.error === 3){
  494. layer.msg(res.msg, {time: 700});
  495. } else {
  496. $('#GiftDetailDialog').hide();
  497. createdLoginMask('login')
  498. }
  499. }
  500. })
  501. })
  502. </script>