东风启辰小程序端
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
5 роки тому
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601
  1. // pages/luckyStar/luckyStar.js
  2. const app = getApp();
  3. var query = null;
  4. var certificationInfoValue = 0;
  5. Page({
  6. /**
  7. * 页面的初始数据
  8. */
  9. data: {
  10. imgUrl: app.globalData.urlStatic,//图片路径
  11. buyState:false,
  12. ruleShow: false,//是否显示游戏玩法
  13. ruleCloseShow: true,//是否显示游戏玩法关闭按钮
  14. clawTop:-440,//爪子的top值
  15. clawLeft: 268,//爪子的left值
  16. clawScale: 1,//爪子的scale值
  17. downNum:15,//倒计时时间
  18. setInt:null,//倒计时元素
  19. pizeTip:0,//抓奖提示框
  20. setGroup:{
  21. left:null,
  22. right: null,
  23. top: null,
  24. bottom: null,
  25. },
  26. btnGroup:{
  27. left: false,
  28. right: false,
  29. top: false,
  30. bottom: false,
  31. claw:false
  32. },
  33. gameSign: null, //游戏结束时需要
  34. gameState:false,//游戏状态
  35. endGameData:null,//中奖数据
  36. isAddress:false,//是否有地址
  37. configure:{
  38. page:1,
  39. count:10
  40. },
  41. gameAwardList:"",
  42. gameAwardListArr:"",
  43. userData:null,
  44. scrollNum:0,
  45. setInt:null,
  46. startDown:-1,//游戏开始倒计时
  47. clawType:false,//是否正在抓取
  48. gameEnd:true,
  49. ani:null,
  50. certificationInfo:false,//是否车主认证了
  51. addressShow:false,
  52. isChanceShow:true,//是否还有机会
  53. operationExampleShow:false,
  54. operationExampleNum:0
  55. },
  56. /**
  57. * 生命周期函数--监听页面加载
  58. */
  59. onLoad: function (options) {
  60. if (app.globalData.isFirstLucky){
  61. this.setData({
  62. ruleShow:true
  63. })
  64. app.globalData.isFirstLucky = false;
  65. }
  66. query = wx.createSelectorQuery();
  67. app.globalData.nowPage = 3;
  68. if (app.globalData.openid) {
  69. this.loadFun();
  70. } else {
  71. app.globalData.openidSuccessFuc = this.loadFun;
  72. }
  73. },
  74. loadFun: function () {
  75. if (!app.globalData.addPageEnterState.luckyStar) {
  76. app.addPageEnter("FF975289E95B64D590C9A106B898574F");
  77. app.globalData.addPageEnterState.luckyStar = true;
  78. }
  79. if (app.globalData.userInfoData) {
  80. this.setData({
  81. userData: app.globalData.userInfoData
  82. })
  83. }
  84. if (!app.globalData.certificationInfo){
  85. // this.getCertificationInfo();
  86. }else{
  87. this.setData({
  88. certificationInfo: true
  89. })
  90. }
  91. this.getAddress();
  92. this.getGameAwardList();
  93. this.getBuyState();
  94. },
  95. /**
  96. * 生命周期函数--监听页面初次渲染完成
  97. */
  98. onReady: function () {
  99. },
  100. /**
  101. * 生命周期函数--监听页面显示
  102. */
  103. onShow: function () {
  104. },
  105. /**
  106. * 生命周期函数--监听页面隐藏
  107. */
  108. onHide: function () {
  109. },
  110. /**
  111. * 生命周期函数--监听页面卸载
  112. */
  113. onUnload: function () {
  114. },
  115. /**
  116. * 页面相关事件处理函数--监听用户下拉动作
  117. */
  118. onPullDownRefresh: function () {
  119. },
  120. /**
  121. * 页面上拉触底事件的处理函数
  122. */
  123. onReachBottom: function () {
  124. },
  125. /**
  126. * 用户点击右上角分享
  127. */
  128. onShareAppMessage: function () {
  129. return {
  130. title: '能抓到头等舱机票的神仙娃娃机,快来一起玩!',
  131. imageUrl: "",
  132. path: "/pages/luckyStar/luckyStar"
  133. }
  134. // return app.sharePack();
  135. },
  136. closeRule:function(){//关闭游戏玩法
  137. this.setData({
  138. ruleShow:false
  139. })
  140. },
  141. openGameRule: function () {//打开游戏玩法
  142. if(!this.data.gameState){
  143. this.setData({
  144. ruleShow: true
  145. })
  146. }
  147. },
  148. gameStart: function () {//开始游戏按钮
  149. // this.setData({
  150. // ruleShow: false,
  151. // ruleCloseShow: true
  152. // })
  153. this.beginGame();
  154. },
  155. beginGame: function () {//开始游戏
  156. app.wxRequest(app.globalData.urlRoot + "dollGame/beginGame", {}, res => {
  157. if (res.code == 200) {
  158. this.data.gameSign = res.data.sign;
  159. this.setData({
  160. operationExampleShow: true,
  161. operationExampleNum: 1
  162. })
  163. var setInt = setInterval(() => {
  164. if (!this.data.operationExampleShow) {
  165. clearInterval(setInt);
  166. this.setData({
  167. operationExampleNum: 0
  168. })
  169. }
  170. if (this.data.operationExampleNum == 4) {
  171. this.setData({
  172. operationExampleNum: 1
  173. })
  174. } else {
  175. this.setData({
  176. operationExampleNum: this.data.operationExampleNum += 1
  177. })
  178. }
  179. }, 800)
  180. }else{
  181. this.setData({
  182. isChanceShow:false
  183. })
  184. }
  185. },this)
  186. },
  187. endGame:function(){//结束游戏
  188. app.wxRequest(app.globalData.urlRoot + "dollGame/endGame", { sign:this.data.gameSign}, res => {
  189. if(res.code=200){
  190. this.setData({
  191. endGameData: res.data
  192. })
  193. }else{
  194. console.log(res);
  195. }
  196. }, this,"POST")
  197. },
  198. startClaw:function(e){//开始控制爪子方向
  199. if(!this.data.gameState){
  200. return;
  201. }
  202. let direction = e.currentTarget.dataset.direction;
  203. if (direction == "L") {//向左
  204. this.data.btnGroup.left = true;
  205. this.setData({
  206. btnGroup: this.data.btnGroup
  207. })
  208. if (this.data.clawLeft <= 110) {
  209. return;
  210. }
  211. this.data.setGroup.left = setInterval(() => {
  212. this.setData({
  213. clawLeft: this.data.clawLeft-=2
  214. })
  215. if (this.data.clawLeft <= 110) {
  216. clearInterval(this.data.setGroup.left);
  217. }
  218. },20);
  219. } else if (direction == "R") {//向右
  220. this.data.btnGroup.right = true;
  221. this.setData({
  222. btnGroup: this.data.btnGroup
  223. })
  224. if (this.data.clawLeft >= 415) {
  225. return;
  226. }
  227. this.data.setGroup.right = setInterval(() => {
  228. this.setData({
  229. clawLeft: this.data.clawLeft += 2
  230. })
  231. if (this.data.clawLeft >= 415) {
  232. clearInterval(this.data.setGroup.right);
  233. }
  234. }, 20);
  235. } else if (direction == "T") {//向后
  236. this.data.btnGroup.top = true;
  237. this.setData({
  238. btnGroup: this.data.btnGroup
  239. })
  240. if (this.data.clawScale <= 0.8) {
  241. return;
  242. }
  243. this.data.setGroup.top = setInterval(() => {
  244. this.setData({
  245. clawScale: this.data.clawScale -= 0.01
  246. })
  247. if (this.data.clawScale <= 0.8) {
  248. clearInterval(this.data.setGroup.top);
  249. }
  250. }, 20);
  251. } else if (direction == "B") {//向前
  252. this.data.btnGroup.bottom = true;
  253. this.setData({
  254. btnGroup: this.data.btnGroup
  255. })
  256. if (this.data.clawScale >= 1.2) {
  257. return;
  258. }
  259. this.data.setGroup.bottom = setInterval(() => {
  260. this.setData({
  261. clawScale: this.data.clawScale += 0.01
  262. })
  263. if (this.data.clawScale >= 1.2) {
  264. clearInterval(this.data.setGroup.bottom);
  265. }
  266. }, 20);
  267. }
  268. },
  269. endClaw: function (e) {//结束爪子动作
  270. if (!this.data.gameState) {
  271. return;
  272. }
  273. let direction = e.currentTarget.dataset.direction;
  274. if (direction == "L") {//向左
  275. this.data.btnGroup.left = false;
  276. this.setData({
  277. btnGroup: this.data.btnGroup
  278. })
  279. clearInterval(this.data.setGroup.left);
  280. } else if (direction == "R") {//向右
  281. this.data.btnGroup.right = false;
  282. this.setData({
  283. btnGroup: this.data.btnGroup
  284. })
  285. clearInterval(this.data.setGroup.right);
  286. } else if (direction == "T") {//向后
  287. this.data.btnGroup.top = false;
  288. this.setData({
  289. btnGroup: this.data.btnGroup
  290. })
  291. clearInterval(this.data.setGroup.top);
  292. } else if (direction == "B") {//向前
  293. this.data.btnGroup.bottom = false;
  294. this.setData({
  295. btnGroup: this.data.btnGroup
  296. })
  297. clearInterval(this.data.setGroup.bottom);
  298. }
  299. },
  300. getClaw: function () {//抓取
  301. clearInterval(this.data.setGroup.top);
  302. clearInterval(this.data.setGroup.left);
  303. clearInterval(this.data.setGroup.right);
  304. clearInterval(this.data.setGroup.bottom);
  305. this.setData({
  306. clawType:true
  307. })
  308. this.setData({
  309. clawTop: this.data.clawScale > 1 ? -100 - (2 * (this.data.clawScale - 1) * 440) : -100 + (2 * (1 - this.data.clawScale) * 440 )
  310. })
  311. this.closeSetInt();
  312. setTimeout(() => {
  313. this.setData({
  314. clawType: false,
  315. gameState: false
  316. })
  317. if (this.data.endGameData) {
  318. this.setData({
  319. pizeTip: 1
  320. })
  321. } else {
  322. this.setData({
  323. pizeTip: 2
  324. })
  325. }
  326. },800)
  327. },
  328. downTimeFun: function () {//游戏倒计时
  329. this.data.setInt = setInterval(()=>{
  330. this.data.downNum -= 1;
  331. if (this.data.downNum<10){
  332. this.data.downNum = '0' + this.data.downNum;
  333. }
  334. this.setData({
  335. downNum: this.data.downNum
  336. })
  337. if (this.data.downNum < 1) {
  338. this.getClaw();
  339. }
  340. },1000);
  341. },
  342. closeSetInt: function () {//关闭倒计时
  343. clearInterval(this.data.setInt);
  344. this.setData({
  345. downNum: 15,
  346. clawTop: this.data.clawScale > 1 ? -100 - (2 * (this.data.clawScale - 1) * 440) : -100 + (2 * (1 - this.data.clawScale) * 440)
  347. })
  348. setTimeout(() => {
  349. this.setData({
  350. gameEnd:false
  351. })
  352. this.setData({
  353. downNum: 15,
  354. clawScale: 1
  355. })
  356. setTimeout(() => {
  357. this.setData({
  358. clawTop: -440,
  359. })
  360. }, 800)
  361. setTimeout(()=>{
  362. this.setData({
  363. clawLeft: 268
  364. })
  365. },1600)
  366. setTimeout(()=>{
  367. this.setData({
  368. gameEnd: true
  369. })
  370. },2400)
  371. }, 800);
  372. },
  373. prizeLook:function(){//活动奖品
  374. if(!this.data.gameState){
  375. wx.navigateTo({
  376. url: '../prizes/prizes'
  377. })
  378. }
  379. },
  380. getAddress: function () {//获取地址
  381. app.wxRequest(app.globalData.urlRoot + "address/getAddress", {}, res => {
  382. if (res.code == 200) {
  383. if (res.data) {
  384. this.setData({
  385. isAddress:true
  386. })
  387. }
  388. }
  389. }, this)
  390. },
  391. receive:function(){//立即领取
  392. wx.redirectTo({
  393. url: '../myCenter/myCenter',
  394. })
  395. },
  396. // userRegister: function () {//立即注册,探索更多星探好礼
  397. // wx.navigateTo({
  398. // url: '../address/address',
  399. // })
  400. // },
  401. closeWindow:function(){//关闭中奖
  402. this.setData({
  403. pizeTip:0,
  404. // ruleShow:true
  405. })
  406. },
  407. getGameAwardList: function () {//获取游戏中奖数据
  408. app.wxRequest(app.globalData.urlRoot + "award/getGameAwardList", this.data.configure,res=>{
  409. if(res.code==200){
  410. if(res.data){
  411. var stringContent = "";//字符串内容
  412. for (let i = 0; i < res.data.length; i++) {//内容整合
  413. res.data[i].content = "恭喜" + (res.data[i].nickName ? res.data[i].nickName : '***') + "获得" + res.data[i].awardName+" ";
  414. stringContent += res.data[i].content;
  415. }
  416. this.data.gameAwardListArr += stringContent;
  417. stringContent = stringContent.substring(0, stringContent.length - 2);
  418. this.setData({
  419. gameAwardList: stringContent
  420. })
  421. query.select('.textFrame').boundingClientRect();
  422. query.select('.tipContent').boundingClientRect();
  423. var duration = 0;//动画时常
  424. query.exec((option) => {
  425. duration = option[1].width < option[0].width ? 10 : option[1].width / option[0].width * 10;
  426. this.aniFun(duration * 1000, -option[1].width);
  427. if (res.data.length >= this.data.configure.count) {
  428. console.log("还有更多数据");
  429. setTimeout(() => {
  430. this.aniFun(0, '100%');
  431. this.data.configure.page += 1;
  432. this.getGameAwardList();
  433. }, duration * 1000)
  434. } else {
  435. console.log("没有更多数据了");
  436. setTimeout(() => {
  437. this.aniFun(0, '100%');
  438. this.data.gameAwardListArr = this.data.gameAwardListArr.substring(0, this.data.gameAwardListArr.length - 2);
  439. this.setData({
  440. gameAwardList: this.data.gameAwardListArr
  441. })
  442. query.select('.textFrame').boundingClientRect();
  443. query.select('.tipContent').boundingClientRect();
  444. query.exec((option) => {
  445. duration = option[1].width < option[0].width ? 10 : option[1].width / option[0].width * 10;
  446. this.noMoreData(duration * 1000, -option[1].width);
  447. })
  448. },duration * 1000);
  449. }
  450. })
  451. }
  452. }
  453. },this)
  454. },
  455. noMoreData: function (duration,left){
  456. console.log(1);
  457. this.aniFun(duration, left);
  458. setTimeout(() => {
  459. this.aniFun(0, '100%');
  460. setTimeout(() => {
  461. this.noMoreData(duration, left);
  462. },50);
  463. }, duration)
  464. },
  465. aniFun(duration,left){
  466. var animation = wx.createAnimation({
  467. duration: duration
  468. });
  469. animation.left(left).step();
  470. this.setData({
  471. ani: animation.export()
  472. })
  473. },
  474. getUserWxMsg: function (e) {//通过微信获取用户信息
  475. if (e.detail.errMsg == "getUserInfo:ok") {
  476. this.gameStart();
  477. this.setData({
  478. userData: e.detail.userInfo
  479. })
  480. app.submitUserMsg(e.detail.userInfo.avatarUrl, e.detail.userInfo.nickName);
  481. }else{
  482. this.gameStart();
  483. }
  484. },
  485. cutPage:function(){//500元待领取
  486. if (!this.data.gameState) {
  487. wx.redirectTo({
  488. url: '/pages/star/star',
  489. })
  490. }
  491. },
  492. openClaw:function(){
  493. if (!this.data.gameState) {
  494. return;
  495. }
  496. this.data.btnGroup.claw = true;
  497. this.setData({
  498. btnGroup: this.data.btnGroup
  499. })
  500. setTimeout(()=>{
  501. this.data.btnGroup.claw = false;
  502. this.setData({
  503. btnGroup: this.data.btnGroup
  504. })
  505. this.getClaw();
  506. },200);
  507. },
  508. getCertificationInfo:function(){
  509. app.wxRequest(app.globalData.urlRoot + "userInfo/getCertificationInfo", {}, res => {
  510. if(res.code==200){
  511. this.setData({
  512. certificationInfo:true
  513. })
  514. app.globalData.certificationInfo = true;
  515. wx.setStorageSync("certificationInfo", true);
  516. }else{
  517. certificationInfoValue = res.code;
  518. }
  519. }, this);
  520. },
  521. enterStar:function(){//
  522. if (certificationInfoValue == -307) {
  523. wx.navigateTo({
  524. url: '/pages/mobileVerification/mobileVerification'
  525. })
  526. } else if (certificationInfoValue == -308) {
  527. wx.navigateTo({
  528. url: '/pages/scout/register/register'
  529. })
  530. }
  531. },
  532. enterIndex:function(){
  533. wx.reLaunch({
  534. url: '/pages/index/index'
  535. })
  536. },
  537. getBuyState: function () {//查询是否已下订
  538. app.wxRequest(app.globalData.urlRoot + "wxPay/getBuyState", {}, res => {
  539. if (res.code == 200) {
  540. if (res.data) {
  541. this.setData({
  542. buyState: res.data.success
  543. })
  544. }
  545. }
  546. }, this);
  547. },
  548. addressControl: function () {//跳转到地址管理
  549. this.setData({
  550. addressShow: !this.data.addressShow
  551. })
  552. if (this.data.addressShow) {
  553. app.globalData.skipType = 'mycenter';
  554. }
  555. },
  556. chanceShowControl:function(){
  557. this.setData({
  558. isChanceShow:true
  559. })
  560. },
  561. operationControl:function(){
  562. this.setData({
  563. operationExampleShow: !this.data.operationExampleShow
  564. })
  565. this.setData({
  566. startDown: 3
  567. })
  568. this.setData({
  569. gameState: true
  570. })
  571. var setInt2 = setInterval(() => {
  572. if (this.data.startDown > -1) {
  573. this.data.startDown -= 1;
  574. this.setData({
  575. startDown: this.data.startDown
  576. })
  577. if (this.data.startDown == -1) {
  578. clearInterval(setInt2);
  579. this.endGame();
  580. if (this.data.gameSign) {
  581. this.downTimeFun();
  582. }
  583. }
  584. }
  585. }, 1000);
  586. }
  587. })