index.html 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
  5. <!-- viewport的<meta>标签,这个标签可以修改在大部分的移动设备上面的显示,为了确保适当的绘制和触屏缩放。-->
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>大转盘抽奖</title>
  8. <link rel="stylesheet" href="css/demo.css" type="text/css"/>
  9. <link rel="stylesheet" type="text/css" href="css/style.css">
  10. <script type="text/javascript" src="js/jquery.min.js"></script>
  11. <script type="text/javascript" src="js/awardRotate.js"></script>
  12. <script type="text/javascript" src="js/scroll.js"></script>
  13. <script type="text/javascript" src="./js/jqhttpsdk.js"></script>
  14. <script type="text/javascript" src="./js/jquery_cookie_min.js"></script>
  15. <style type="text/css">
  16. .quan {
  17. width: 100%;
  18. height: 100%;
  19. background: rgba(0, 0, 0, 0.5);
  20. position: absolute;
  21. top: 0px;
  22. z-index: 99;
  23. display: none;
  24. }
  25. .quan1 {
  26. width: 300px;
  27. height: 200px;
  28. background: #fff;
  29. margin: 0 auto;
  30. margin-top: 300px;
  31. border-radius: 10px;
  32. border: 4px solid #666;
  33. }
  34. .qian2 {
  35. float: left;
  36. height: 50px;
  37. width: 196px;
  38. line-height: 50px;
  39. text-align: center;
  40. font-size: 18px;
  41. margin-top: 50px;
  42. background: #fff;
  43. border: 2px solid #fff100;
  44. margin-left: 50px;
  45. }
  46. .queding {
  47. float: left;
  48. width: 70px;
  49. height: 24px;
  50. background: #fff;
  51. border: 2px solid #ccc;
  52. border-radius: 5px;
  53. margin-top: 50px;
  54. margin-left: 115px;
  55. text-align: center;
  56. line-height: 24px;
  57. cursor: pointer;
  58. }
  59. .dis {
  60. color: #000;
  61. font-size: 100px;
  62. font-weight: bold;
  63. position: absolute;
  64. left: 50%;
  65. margin-left: -90px;
  66. top: 100px;
  67. line-height: 30px;
  68. }
  69. .xianjin {
  70. width: 280px;
  71. height: 50px;
  72. background: #fff;
  73. position: absolute;
  74. border-radius: 10px;
  75. top: 248px;
  76. left: 200px;
  77. line-height: 50px;
  78. text-align: center;
  79. }
  80. .jjc {
  81. width: 500px;
  82. height: 500px;
  83. background: url(images/paoma1.gif);
  84. background-size: 100% 100%;
  85. position: absolute;
  86. top: -250px;
  87. left: 500%;
  88. font-size: 35px;
  89. line-height: 700px;
  90. text-align: center;
  91. color: #fff;
  92. }
  93. </style>
  94. </head>
  95. <body>
  96. <div style="display:none; text-align:center;margin:10px 0; font:normal 14px/24px 'MicroSoft YaHei';">
  97. <p>适用浏览器:360、FireFox、Chrome、Safari、Opera、傲游、搜狗、世界之窗. 不支持IE8及以下浏览器。</p>
  98. </div>
  99. <!--进来抽奖的界面-->
  100. <div style="display: none;" id="drawTab">
  101. <div class="turntable-bg">
  102. <div class="pointer"><img src="images/pointer.png" alt="pointer" style="width:100%;height:100%;"></div>
  103. <div class="rotate"><img id="rotate" src="images/turntable.png" alt="turntable" style="width:100%;height:100%;">
  104. </div>
  105. </div>
  106. <div style="display: none;" id="to_drawTab">
  107. <div style='padding-top: 30px;text-align: center;color: white;'>用户名:<span id="username"></span>
  108. <a onclick='DetailsTab()'>中奖记录</a>
  109. </div>
  110. </div>
  111. <div id="loginFormID" style="display: block;text-align: center; color: #90807b;">
  112. <div style="margin-top: 40px;"><input type="text" id="phone" maxlength="11" placeholder="输入手机号码"
  113. value="" style="height: 30px; width: 250px;"><span
  114. id="get_code" style="position: absolute;right: 75px;line-height: 30px;">获取验证码</span></div>
  115. <div style="margin-top: 10px;"><input type="text" id="code" maxlength="6" placeholder="验证码"
  116. style="height: 30px; width: 250px;"></div>
  117. <div style="margin-top: 10px; margin-bottom: 15px;" id="go_ok">
  118. <div id="loginId"
  119. style="margin: 0 auto; color:white; line-height: 30px; background: #f39c4c; height: 30px; width: 120px; border-radius: 5px;">
  120. 获取抽奖机会
  121. </div>
  122. </div>
  123. <div style=" font-size: 15px; color: white;">
  124. <p style="margin-bottom: 5px;">—————— 活动细则 ———————</p>
  125. <div id="" style="text-align: left; margin-left: 30px;">
  126. <p style="margin-bottom: 5px;">每个手机用户可有抽奖机会一次</p>
  127. <p>中奖用户需填写联系信息(姓名、电话、收货地址),以方便邮寄给您。</p>
  128. </div>
  129. </div>
  130. </div>
  131. </div>
  132. <!--中奖的界面-->
  133. <div style="display: none;" id="detailsTab">
  134. <div style="color: white; font-size: 30px; margin-top: 30px; text-align: center; margin-bottom: 50px;">恭喜您! 您中奖了
  135. </div>
  136. <div style="text-align: center;">
  137. <div style="margin-top: 10px;">
  138. <input type="text" id="rec_name" placeholder="输入收货人姓名" style="height: 30px; width: 250px;">
  139. </div>
  140. <div style="margin-top: 10px;">
  141. <input type="text" id="rec_phone" placeholder="输入收货人手机" style="height: 30px; width: 250px;">
  142. </div>
  143. <div style="margin-top: 10px;">
  144. <input type="text" id="rec_addr" placeholder="输入收货人地址" style="height: 30px; width: 250px;">
  145. </div>
  146. <div style="margin-top: 20px; margin-bottom: 50px;" id="go_site">
  147. <div style="margin: 0 auto; color:white; line-height: 30px; background: #f39c4c; height: 30px; width: 70px; border-radius: 5px;">
  148. 提交
  149. </div>
  150. </div>
  151. <div style=" font-size: 15px; color: white;">
  152. <p style="margin-bottom: 5px;">—————— 活动细则 ———————</p>
  153. <div id="" style="text-align: left; margin-left: 30px;">
  154. <p style="margin-bottom: 5px;">每个手机用户可有抽奖机会一次</p>
  155. <p>中奖用户需填写联系信息(姓名、电话、收货地址),以方便邮寄给您。</p>
  156. </div>
  157. </div>
  158. </div>
  159. </div>
  160. <script type="text/javascript">
  161. $(document).ready(function () {
  162. $('.list_lh li:even').addClass('lieven');
  163. });
  164. </script>
  165. <script type="text/javascript">
  166. setTimeout('$("#drawTab").fadeIn(1500);', 10);
  167. let draw_status = 0; //中奖状态
  168. function setCookie(key, val, seconds) {
  169. var date = new Date();
  170. date.setTime(date.getTime() + seconds * 1000);//只能这么写,10表示10秒钟
  171. console.log(key)
  172. console.log(val)
  173. $.cookie(key, val, {expires: date});
  174. }
  175. function InitIndex() {
  176. let cookie = $.cookie('access_token');
  177. if (cookie) {
  178. let post_data = {'token': cookie}
  179. // 初始化目录
  180. $.postJSON(
  181. http_ip_prot + 'lottery/index', JSON.stringify(post_data),
  182. function (data) {
  183. if (data['code'] == 0) {
  184. console.log('初始化成功')
  185. console.log(data['res'])
  186. draw_status = data['res']['status']; //中奖状态
  187. let phone_list = data['res']['phone_list']; //已经中奖的手机号码
  188. let user = data['res']['user']; // 当前用户名
  189. let addr = data['res']['addr']; // 当前收货地址
  190. //$('#loginFormID').hide()
  191. $("#username").html(user);
  192. $("#loginFormID").hide();
  193. $('#to_drawTab').show();
  194. DetailsTab();
  195. let addrJson = JSON.parse(addr)
  196. console.log(addrJson)
  197. if (addrJson) {
  198. $("#rec_name").val(addrJson['rec_name'])
  199. $("#rec_phone").val(addrJson['rec_phone'])
  200. $("#rec_addr").val(addrJson['rec_addr'])
  201. }
  202. } else {
  203. alert(data['msg'])
  204. }
  205. }
  206. );
  207. } else {
  208. //没有token唤醒登录界面
  209. }
  210. }
  211. function DetailsTab() {
  212. if (draw_status == 1 || draw_status == 2) {
  213. alert('恭喜你');
  214. $('#drawTab').hide();
  215. $('#detailsTab').show();
  216. } else {
  217. alert('很遗憾,你没有中奖');
  218. }
  219. }
  220. //获取验证码方法
  221. function authCode() {
  222. let phone = $('#phone').val();
  223. if (phone == "") {
  224. alert("手机不可以为空!")
  225. } else if (!/^1[0-9]{10}$/.test(phone)) {
  226. alert("手机不正确!")
  227. } else {
  228. //调用获取验证码
  229. }
  230. let post_data = {'phone': phone}
  231. // 初始化目录
  232. console.log(http_ip_prot)
  233. $.postJSON(
  234. http_ip_prot + 'lottery/authcode', JSON.stringify(post_data),
  235. function (data) {
  236. if (data['code'] == 0) {
  237. } else {
  238. alert(data['msg'])
  239. }
  240. }
  241. );
  242. }
  243. // 登录
  244. function doAuthLogin() {
  245. let phone = $('#phone').val()
  246. let authcode = $('#code').val()
  247. let post_data = {
  248. 'phone': phone,
  249. 'authcode': authcode
  250. }
  251. $.postJSON(
  252. http_ip_prot + 'lottery/login', JSON.stringify(post_data),
  253. function (data) {
  254. if (data['code'] == 0) {
  255. //登录成功
  256. setCookie('access_token', data['res']['access_token'], data['res']['access_expire'])
  257. setCookie('refresh_token', data['res']['refresh_token'], data['res']['refresh_expire'])
  258. InitIndex()
  259. } else {
  260. alert(data['msg'])
  261. }
  262. }
  263. );
  264. }
  265. //抽奖
  266. function doDraw() {
  267. let token = $.cookie('access_token')
  268. let post_data = {
  269. 'token': token
  270. }
  271. $.postJSON(
  272. http_ip_prot + 'lottery/draw', JSON.stringify(post_data),
  273. function (data) {
  274. if (data['code'] == 0) {
  275. //抽奖请求成功
  276. //中奖状态 1:c611,2:c612 ,3:不中奖
  277. let status = data['res']['status']
  278. if (status == 1) {
  279. console.log('中奖c611')
  280. } else if (status == 2) {
  281. console.log('中奖c612')
  282. } else if (status == 3) {
  283. console.log('很遗憾没有中奖')
  284. }
  285. doDrawRollAction(status)
  286. } else {
  287. alert(data['msg'])
  288. }
  289. },
  290. false,//异步
  291. );
  292. }
  293. //设置收货地址
  294. function setAddr() {
  295. let token = $.cookie('access_token')
  296. let rec_name = $('#rec_name').val()
  297. let rec_phone = $('#rec_phone').val()
  298. let rec_addr = $('#rec_addr').val()
  299. if (rec_addr && rec_phone && rec_addr) {
  300. let addr = JSON.stringify({
  301. 'rec_name': rec_name,
  302. 'rec_phone': rec_phone,
  303. 'rec_addr': rec_addr,
  304. });
  305. let post_data = {
  306. 'token': token,
  307. 'addr': addr
  308. };
  309. $.postJSON(
  310. http_ip_prot + 'lottery/setAddr', JSON.stringify(post_data),
  311. function (data) {
  312. if (data['code'] == 0) {
  313. //设置请求成功
  314. alert(data['msg'])
  315. } else {
  316. alert(data['msg'])
  317. }
  318. }
  319. );
  320. }
  321. }
  322. //获取验证码
  323. $('#get_code').click(function () {
  324. authCode()
  325. });
  326. //# 登录
  327. $('#loginId').click(function () {
  328. doAuthLogin()
  329. });
  330. //# 登录
  331. $('#go_site').click(function () {
  332. setAddr()
  333. });
  334. InitIndex()
  335. var bRotate = false;
  336. var rotateFn = function (awards, angles, txt) {
  337. bRotate = !bRotate;
  338. $('#rotate').stopRotate();
  339. $('#rotate').rotate({
  340. angle: 0,
  341. animateTo: angles + 1800,
  342. duration: 8000,
  343. callback: function () {
  344. //alert("¥" + txt);
  345. alert(txt)
  346. bRotate = !bRotate;
  347. }
  348. })
  349. };
  350. // 0 2 5 不中奖
  351. // 1 3 c612
  352. // 4 6 c611
  353. $('.pointer').click(function () {
  354. //var a = [0, 1, 2, 3, 4, 5, 6];
  355. doDraw()
  356. });
  357. function doDrawRollAction(status) {
  358. //抽奖值
  359. //var item = 0
  360. let rotate_data = {
  361. '1': [4, 6],
  362. '2': [1, 3],
  363. '3': [0, 2, 5],
  364. };
  365. let rotate = rotate_data[status]
  366. let item = rotate[Math.floor((Math.random() * rotate.length))];
  367. var a = [
  368. '很遗憾没中奖',
  369. '恭喜中奖c612',
  370. '很遗憾没中奖',
  371. '恭喜中奖c612',
  372. '恭喜中奖c611',
  373. '很遗憾没中奖',
  374. '恭喜中奖c611',
  375. ]
  376. //if (bRotate) return;
  377. switch (item) {
  378. case 0:
  379. //var angle = [26, 88, 137, 185, 235, 287, 337];
  380. rotateFn(0, 332, a[0]);
  381. var ss = Number($("#xianjin").val());
  382. var cc = ss + a[0];
  383. $("#xianjin").val(cc);
  384. setTimeout(function () {
  385. $(".xianjin").html(cc);
  386. }, 8000);
  387. $(".qian2").html(cc);
  388. break;
  389. case 1:
  390. //var angle = [88, 137, 185, 235, 287];
  391. rotateFn(1, 24, a[1]);
  392. var ss = Number($("#xianjin").val());
  393. var cc = ss + a[1];
  394. $("#xianjin").val(cc);
  395. setTimeout(function () {
  396. $(".xianjin").html(cc);
  397. }, 8000);
  398. $(".qian2").html(cc);
  399. break;
  400. case 2:
  401. //var angle = [137, 185, 235, 287];
  402. rotateFn(2, 77, a[2]);
  403. var ss = Number($("#xianjin").val());
  404. var cc = ss + a[2];
  405. $("#xianjin").val(cc);
  406. setTimeout(function () {
  407. $(".xianjin").html(cc);
  408. }, 8000);
  409. $(".qian2").html(cc);
  410. break;
  411. case 3:
  412. //var angle = [137, 185, 235, 287];
  413. rotateFn(3, 129, a[3]);
  414. var ss = Number($("#xianjin").val());
  415. var cc = ss + a[3];
  416. $("#xianjin").val(cc);
  417. setTimeout(function () {
  418. $(".xianjin").html(cc);
  419. }, 8000);
  420. $(".qian2").html(cc);
  421. break;
  422. case 4:
  423. //var angle = [185, 235, 287];
  424. rotateFn(4, 180, a[4]);
  425. var ss = Number($("#xianjin").val());
  426. var cc = ss + a[4];
  427. $("#xianjin").val(cc);
  428. setTimeout(function () {
  429. $(".xianjin").html(cc);
  430. }, 8000);
  431. $(".qian2").html(cc);
  432. break;
  433. case 5:
  434. //var angle = [185, 235, 287];
  435. rotateFn(5, 231, a[5]);
  436. var ss = Number($("#xianjin").val());
  437. var cc = ss + a[5];
  438. $("#xianjin").val(cc);
  439. setTimeout(function () {
  440. $(".xianjin").html(cc);
  441. }, 8000);
  442. $(".qian2").html(cc);
  443. break;
  444. case 6:
  445. //var angle = [235, 287];
  446. rotateFn(6, 280, a[6]);
  447. var ss = Number($("#xianjin").val());
  448. var cc = ss + a[6];
  449. $("#xianjin").val(cc);
  450. setTimeout(function () {
  451. $(".xianjin").html(cc);
  452. }, 8000);
  453. $(".qian2").html(cc);
  454. break;
  455. }
  456. }
  457. // 捕捉全局异常弹出
  458. function handleError(msg,url,l)
  459. {
  460. var txt="There was an error on this page.\n\n"
  461. txt+="Error: " + msg + "\n"
  462. txt+="URL: " + url + "\n"
  463. txt+="Line: " + l + "\n\n"
  464. txt+="Click OK to continue.\n\n"
  465. alert(txt)
  466. return true
  467. }
  468. window.onerror = handleError
  469. </script>
  470. </body>
  471. </html>