選択できるのは25トピックまでです。 トピックは、先頭が英数字で、英数字とダッシュ('-')を使用した35文字以内のものにしてください。
 
 
 

526 行
25 KiB

  1. $(function () {
  2. // console.log(location.host)
  3. var $hammer = $("#hammer"),
  4. explain = $("#explain"),//积分说明框
  5. playCreditLimit = '',//是否展示 积分说明框
  6. consumeTotal = '',//消耗积分
  7. falglimitType = '',
  8. numFalg = false,//有次数=false
  9. wcancel = $('#w-cancel'),//弹出消耗积分取消按钮
  10. $tips = $(".info"),
  11. $eggList = $(".egg li"),//金蛋父级
  12. $egg = $(".goldegg"),//金蛋
  13. $change = $("#change"),//剩余次数
  14. length = $egg.length,
  15. data = { count: 0 },//次数
  16. arr = [],
  17. openArr,//记录被砸开的蛋的下标数组
  18. rem = 75,
  19. dataList = [],
  20. couponId = null,
  21. timer,//轮流提示定时器
  22. errorMessge = '',
  23. eggIndex = 0,
  24. playAble = true,
  25. radomData = [];
  26. let baseUrl = 'https://ctest.malls.iformall.com/C';
  27. if (window.location.origin == 'https://gametest.malls.iformall.com') {
  28. baseUrl = 'https://ctest.malls.iformall.com/C'
  29. } else if (window.location.origin == 'https://game.malls.iformall.com') {
  30. baseUrl = 'https://c.malls.iformall.com/C'
  31. } else if (window.location.origin == 'https://game.youlane.cn') {
  32. baseUrl = 'https://ciformall.youlane.cn/C'
  33. }
  34. /*轮流提示*/
  35. $(function () {
  36. // if (!!$.cookie("eggIndex")) {//如果存在cookie,也就是有金蛋被砸开
  37. // openArr = $.cookie("eggIndex").split(",");//将cookie变为数组
  38. // for (var i = 0; i < openArr.length; i++) {
  39. // arr.push(parseFloat(openArr[i]));//将上次cookie存入数组以免上次cookie被覆盖
  40. // $egg.eq(parseFloat(openArr[i])).prop("src", "../common/image/step3.png");
  41. // $egg.eq(parseFloat(openArr[i])).removeClass("init");
  42. // $egg.eq(parseFloat(openArr[i])).data("mark", false);//更改金蛋状态为已砸开
  43. // }
  44. // }
  45. $.ajax({
  46. url: baseUrl + "/api/game/getOneGame",//json文件位置
  47. type: "GET",//请求方式为get
  48. dataType: "json", //返回数据格式为json
  49. headers: {
  50. 'content-type': 'application/json',
  51. // "token":"b49fa2c4-a074-4147-afbe-6913c66705d6",
  52. "token": getQueryString('token')
  53. },
  54. data: {
  55. id: getQueryString('id'),
  56. },
  57. success: function (res) {//请求成功完成后要执行的方法
  58. // alert(JSON.stringify(res))
  59. // console.log(res)
  60. dataList = res.data.couponIdsList;
  61. playCreditLimit = res.data.playCreditLimit
  62. falglimitType = res.data.limitType
  63. if (playCreditLimit >= '0') {
  64. explain.show()
  65. }
  66. id = res.data.id
  67. let totalWeight = 0;
  68. dataList.forEach((item, index) => {
  69. totalWeight += Number(item.gameWeight)
  70. for (var i = 0; i < item.gameWeight; i++) {
  71. radomData.push(item)
  72. }
  73. })
  74. let notWinweight = 100 - totalWeight;
  75. // console.log(notWinweight)
  76. let b = {
  77. id: null
  78. }
  79. for (var i = 0; i < notWinweight; i++) {
  80. radomData.push(b)
  81. }
  82. getCount()
  83. }
  84. })
  85. //初始跳动
  86. length = 9
  87. $egg.eq(length).addClass("jump");
  88. $tips.eq(length).show();
  89. setInterval(function () {
  90. //金蛋跳动
  91. length++;
  92. length %= 9;
  93. $egg.eq(length - 1 < 0 && 8 || length - 1).removeClass("jump");
  94. $tips.eq(length - 1 < 0 && 8 || length - 1).hide();
  95. reback();
  96. $egg.eq(length).addClass("jump");
  97. $tips.eq(length).show();
  98. }, 1000);
  99. });
  100. /**
  101. * 获取剩余中奖次数
  102. */
  103. function getCount() {
  104. console.log("我执行了");
  105. $.ajax({
  106. url: baseUrl + "/api/game/getCount",//json文件位置
  107. type: "GET",//请求方式为get
  108. dataType: "json", //返回数据格式为json
  109. headers: {
  110. 'content-type': 'application/json',
  111. // "token":"b49fa2c4-a074-4147-afbe-6913c66705d6",
  112. "token": getQueryString('token')
  113. },
  114. data: {
  115. gameId: getQueryString('id'),
  116. },
  117. success: function (res) {//请求成功完成后要执行的方法
  118. if (res.code == 200) {
  119. if (res.data.playAble) {
  120. playAble = true;
  121. data.count = res.data.playLimit - res.data.playCount;
  122. $('#change').html(data.count);
  123. consumeTotal = res.data.playCredit;
  124. console.log(data.count);
  125. if (data.count <= '0') {
  126. $(integration).html(`${consumeTotal}积分/每次`);
  127. } else {
  128. $(integration).html(`当前游戏免费次数耗尽后${consumeTotal}积分/次`);
  129. }
  130. if (falglimitType == '0') {
  131. if (data.count == -1) {
  132. $('#change-box').hide();
  133. } else {
  134. $('#change-box').html('您总共还有' + data.count + '免费刮奖机会')
  135. }
  136. } else if (falglimitType == '1') {
  137. if (data.count == -1) {
  138. $('#change-box').hide()
  139. } else {
  140. $('#change-box').html('您今天还有' + data.count + '免费刮奖机会')
  141. }
  142. }
  143. if (res.data.playLimit < 0 && playCreditLimit >= '0') {
  144. return// 不设置能免费次数且设置每次消耗积分
  145. }
  146. if (res.data.playLimit < 0) {
  147. data.count = 1000000;
  148. $('#change-box').hide();
  149. } else {
  150. $('#change-box').show();
  151. }
  152. } else {
  153. playAble = false;
  154. if (res.data.playLimit <= 0) {
  155. errorMessge = '您的中奖次数已经达到上限!无法继续参加游戏!'
  156. data.count = 1000000;
  157. $('#change-box').hide();
  158. return;
  159. } else {
  160. if (res.data.AwardLimit == res.data.AwardCount && res.data.AwardLimit != 0) {
  161. errorMessge = '您的中奖次数已经达到上限!无法继续参加游戏!'
  162. data.count = res.data.playLimit - res.data.playCount;
  163. $('#change').html(data.count);
  164. $('#change-box').html('您的中奖次数已经达到上限!无法继续参加游戏!')
  165. $('#change-box').show();
  166. return;
  167. } else if (res.data.playLimit == res.data.playCount) {
  168. errorMessge = '您的剩余次数为0!无法继续参加游戏!'
  169. data.count = 0;
  170. $('#change').html(0);
  171. $('#change-box').html('您的剩余次数为0!无法继续参加游戏!')
  172. $('#change-box').show();
  173. return;
  174. }
  175. }
  176. }
  177. } else {
  178. errorMessge = res.message;
  179. playAble = false;
  180. $('#change').html(0);
  181. $('#change-box').hide();
  182. }
  183. }
  184. })
  185. }
  186. /**
  187. * 记录游戏次数
  188. */
  189. function reduceCount(paramData) {
  190. $.ajax({
  191. url: baseUrl + "/api/game/addActionLog",//json文件位置
  192. type: "POST",//请求方式为get
  193. dataType: "json", //返回数据格式为json
  194. async: true,
  195. headers: {
  196. 'content-type': 'application/json;charset=UTF-8',
  197. // "token":"025e5017-a268-4c21-98b3-d47b77b3ca54"
  198. "token": getQueryString('token')
  199. },
  200. data: JSON.stringify(paramData),
  201. success: function (res) {//请求成功完成后要执行的方法
  202. // alert('成功了!')
  203. getCount()
  204. }
  205. })
  206. }
  207. //跳过砸开的金蛋
  208. function reback() {
  209. if (!$egg.eq(length).hasClass("init")) {//若已砸开
  210. length++;
  211. length %= 9;
  212. reback();
  213. }
  214. }
  215. wcancel.click(function () {
  216. $("#warnning-box").hide()
  217. $("#warnning-box-bg").hide()
  218. numFalg = false;
  219. })
  220. $("#w-button").click(function () {
  221. $("#warnning-box").hide()
  222. $("#warnning-box-bg").hide()
  223. numFalg = true;
  224. })
  225. /*砸蛋事件*/
  226. for (var i = 0; i < length; i++) {
  227. $eggList.eq(i).data("i", i);
  228. // $egg.eq(i).data("mark", true);
  229. $egg.eq(i).data("mark", true);//判断金蛋是否砸开,true表示可砸
  230. $eggList.eq(i).click(function () {
  231. //设定剩余抽奖次数,判断用户是否还能点击
  232. // let paramContData = {
  233. // gameId: getQueryString('id'),
  234. // orderId: '0',
  235. // time: (new Date()).valueOf()
  236. // }
  237. if (playAble) {
  238. if (data.count > 0) {
  239. // $egg.eq($(this).data("i")).data("mark") ? eggChange($(this).data("i")) : alert("这枚金蛋已经被您砸开了");//判断金蛋是否已砸开
  240. if ($egg.eq($(this).data("i")).data("mark")) {
  241. eggChange($(this).data("i"))
  242. //随机生成一个优惠券
  243. // let b = Math.floor(Math.random() * radomData.length)
  244. // couponId = radomData[b].couponId
  245. let params = {
  246. // couponId: couponId,
  247. // couponChannelId: radomData[b].id
  248. gameId: getQueryString('id')
  249. }
  250. if (true) {
  251. ///查询中奖结果
  252. $.ajax({
  253. url: baseUrl + "/api/game/freeGameGo",//json文件位置
  254. type: "POST",//请求方式为get
  255. dataType: "json", //返回数据格式为json
  256. async: true,
  257. headers: {
  258. 'content-type': 'application/json;charset=UTF-8',
  259. // "token":"025e5017-a268-4c21-98b3-d47b77b3ca54"
  260. "token": getQueryString('token')
  261. },
  262. data: JSON.stringify(params),
  263. success: function (res) {//请求成功完成后要执行的方法
  264. if (res.code == 200) {
  265. if (res.data) {
  266. var toemdata = res.data
  267. if (res.data.prizeType == 1) {
  268. $('#card .win').html('积分增加+' + toemdata.credit);
  269. $('#card .win').css({
  270. 'font-size': ' 20px',
  271. 'text-align': 'center',
  272. 'color': '#FF6600',
  273. 'line-height': '50px',
  274. "background": 'url(../common/image/prize/prize2.png) no-repeat',
  275. 'background-size': '6rem'
  276. })
  277. $('.winning .red-body p').html('')
  278. $(".btn").html('再玩一把')
  279. } else {
  280. $('#card .win').html('')
  281. $('#card .win').css({
  282. "background": 'url(' + toemdata.coverImg + ') no-repeat',
  283. "background-size": "cover"
  284. });
  285. $('.winning .red-body p').html(toemdata.title + "(点击“我的”查看奖券)");
  286. $(".btn").html('再玩一把')
  287. }
  288. } else {
  289. $('#card .win').html('')
  290. $('#card .win').css({
  291. "background": 'url(../common/image/redPack/weizhongjiang.png) no-repeat',
  292. "background-size": "cover"
  293. });
  294. $('.winning .red-body p').html('未中奖!(点击“我的”查看奖券)');
  295. $(".btn").html('再玩一把')
  296. }
  297. getCount()
  298. } else if (res.code == 1013) {
  299. // reduceCount(paramContData);
  300. $('#card .win').html('')
  301. $('#card .win').css({
  302. "background": 'url(../common/image/redPack/weizhongjiang.png) no-repeat',
  303. "background-size": "cover"
  304. });
  305. $('.winning .red-body p').html(`${res.message}`);
  306. $(".btn").html('再玩一把')
  307. } else {
  308. $('#card .win').html('')
  309. $('#card .win').css({
  310. "background": 'url(../common/image/redPack/weizhongjiang.png) no-repeat',
  311. "background-size": "cover"
  312. });
  313. $('.winning .red-body p').html(`未中奖!(点击“我的”查看奖券)`);
  314. $(".btn").html('再玩一把')
  315. }
  316. }
  317. })
  318. } else {
  319. reduceCount(paramContData);
  320. $('#card .win').css({
  321. "background": 'url(../common/image/redPack/weizhongjiang.png) no-repeat',
  322. "background-size": "cover"
  323. });
  324. $('.winning .red-body p').html('未中奖!(点击“我的”查看奖券)');
  325. $(".btn").html('再玩一把')
  326. }
  327. } else {
  328. // alert("这枚金蛋已经被您砸开了")
  329. $('#warnning-box-bg').show();
  330. $('#warnning-box').show();
  331. $('#w-title').html("这枚金蛋已经被您砸开了");
  332. }
  333. } else {
  334. if (playCreditLimit >= '0') {
  335. //可以使用积分玩
  336. if (!numFalg) {//消耗积分提示框只会弹出一次
  337. $('#warnning-box-bg').show();
  338. $('#warnning-box').show();
  339. if (data.count == -1) {
  340. $('#w-title').html("将消耗" + consumeTotal + '积分');
  341. } else {
  342. $('#w-title').html("免费次数已耗尽,将消耗" + consumeTotal + '积分');
  343. }
  344. } else {
  345. eggChange($(this).data("i"))
  346. numFalg = true;
  347. let b = Math.floor(Math.random() * radomData.length)
  348. console.log(radomData[b])
  349. // couponId = radomData[b].couponId
  350. let params = {
  351. // couponId:couponId,
  352. // couponChannelId:radomData[b].id
  353. gameId: getQueryString('id')
  354. }
  355. //查询中奖结果
  356. $.ajax({
  357. url: baseUrl + "/api/game/freeCridetGameGo",//json文件位置
  358. type: "POST",//请求方式为get
  359. dataType: "json", //返回数据格式为json
  360. async: true,
  361. headers: {
  362. 'content-type': 'application/json;charset=UTF-8',
  363. // "token":"025e5017-a268-4c21-98b3-d47b77b3ca54"
  364. "token": getQueryString('token')
  365. },
  366. data: JSON.stringify(params),
  367. success: function (res) {//请求成功完成后要执行的方法
  368. if (res.code == 200) {
  369. getCount()
  370. // $canvasMask.hide();
  371. if (res.data) {
  372. var toemdata = res.data
  373. if (res.data.prizeType == 1) {
  374. $('#card .win').html('积分增加+' + toemdata.credit);
  375. $('.winning .red-body p').html('')
  376. $('#card .win').css({
  377. 'font-size': ' 20px',
  378. 'text-align': 'center',
  379. 'color': '#FF6600',
  380. 'line-height': '50px',
  381. "background": 'url(../common/image/prize/prize2.png) no-repeat',
  382. 'background-size': '6rem'
  383. })
  384. } else {
  385. $('#card .win').html('')
  386. // $canvas.css("background-image", 'url(' + toemdata.coverImg + ')');
  387. $('#card .win').css({
  388. "background": 'url(' + toemdata.coverImg + ') no-repeat',
  389. "background-size": "cover"
  390. });
  391. $('.winning .red-body p').html(toemdata.title + "(点击“我的”查看奖券)");
  392. }
  393. $(".btn").html('再玩一把')
  394. } else {
  395. $('#card .win').html('')
  396. // $canvas.css("background-image", 'url(../common/image/redPack/weizhongjiang.png)');
  397. $('#card .win').css({
  398. "background": 'url(../common/image/redPack/weizhongjiang.png) no-repeat',
  399. "background-size": "cover"
  400. });
  401. $('.winning .red-body p').html('未中奖!(点击“我的”查看奖券)');
  402. $(".btn").html('再玩一把')
  403. }
  404. } else if (res.code == 13101) {
  405. // $canvasMask.hide();
  406. // $canvas.css("background-image", 'url(../common/image/redPack/weizhongjiang.png)');
  407. $('#card .win').css({
  408. "background": 'url(../common/image/prize/prize2.png) no-repeat',
  409. "background-size": "cover"
  410. });
  411. $('.winning .red-body p').css({
  412. "line-height": "1.5rem",
  413. "font-size": "0.64rem"
  414. })
  415. $('.winning .red-body p').html('积分不足!');
  416. $(".btn").hide()
  417. }
  418. }
  419. })
  420. }
  421. } else {
  422. $('#warnning-box-bg').show();
  423. $('#warnning-box').show();
  424. $('#w-title').html("当前可用次数已耗尽");
  425. return
  426. }
  427. }
  428. } else {
  429. $('#warnning-box-bg').show();
  430. $('#warnning-box').show();
  431. $('#w-title').html(errorMessge);
  432. }
  433. });
  434. }
  435. /*砸蛋事件的处理*/
  436. function eggChange(i) {
  437. eggIndex = i;
  438. //砸蛋次数的变化
  439. // data.count--;
  440. // $change.html(data.count);
  441. $hammer.removeClass("shak");//清除锤子晃动动画
  442. //锤子砸蛋的位置
  443. (i === 0 || i === 3 || i === 6) && ($hammer.css("left", 165 / rem + "rem"));
  444. (i === 1 || i === 4 || i === 7) && ($hammer.css("left", 415 / rem + "rem"));
  445. (i === 2 || i === 5 || i === 8) && ($hammer.css("left", 665 / rem + "rem"));
  446. (i === 0 || i === 1 || i === 2) && ($hammer.css("top", 60 / rem + "rem"));
  447. (i === 3 | i === 4 || i === 5) && ($hammer.css("top", 280 / rem + "rem"));
  448. (i === 6 | i === 7 || i === 8) && ($hammer.css("top", 500 / rem + "rem"));
  449. //锤子返回
  450. setTimeout(function () {
  451. $hammer.css("left", 665 / rem + "rem");
  452. $hammer.css("top", 60 / rem + "rem");
  453. }, 1500);
  454. //金蛋破裂及锤子动画
  455. setTimeout(function () {
  456. $hammer.addClass("hit");
  457. $egg.eq(i).prop("src", "image/step1.png");
  458. setTimeout(function () {
  459. $egg.eq(i).prop("src", "image/step2.png");
  460. }, 300);
  461. setTimeout(function () {
  462. $egg.eq(i).prop("src", "image/step3.png");
  463. $egg.eq(i).removeClass("init");
  464. //clickData(false);//ajax回调
  465. win();
  466. $hammer.removeClass("hit");//清除锤子砸蛋动画
  467. $hammer.addClass("shak");
  468. //记录被砸开的蛋
  469. arr.push(i);//存入每个砸开蛋的下标
  470. // $.cookie("eggIndex", arr, {expires: 1});//存入cookie
  471. }, 600);
  472. }, 600);
  473. $egg.eq(i).data("mark", false);//更改金蛋状态为已砸开
  474. }
  475. $('.replay').click(function () {
  476. // alert(111)
  477. $egg.eq(eggIndex).addClass("init");
  478. $egg.eq(eggIndex).prop("src", "image/egg.png");
  479. $egg.eq(eggIndex).data("mark", true);
  480. })
  481. //点击跳回小程序奖券列表
  482. $('#myWin').click(function () {
  483. // alert(555)
  484. wx.miniProgram.redirectTo({
  485. url: '/pages/couponorder/index/index' + "?token=" + getQueryString('token') + "&gameId=" + getQueryString('gameId') + "&id=" + getQueryString('id') + '&from=h5'
  486. })
  487. })
  488. //返回首页
  489. $("#gotoindex").click(function () {
  490. wx.miniProgram.redirectTo({
  491. url: '/pages/index/index'
  492. })
  493. });
  494. });