123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332 |
- const util = require('../../utils/util.js');
- const app = getApp();
- Page({
- data: {
- prizeId:'', //填写地址,奖品id
- wheelId:'',//大转盘id
- winThePrize:{},//中奖奖品信息
- PrizeList:[],
- winPrizeList:[],
- tablePageInfo:{},
- tableSize:'',
- awardsList:[],
- pageIndex:1,
- runDegs:0,
- animationData:{},
- showAwardPopup:false, //奖品详情弹窗
- showRulesPopup:false, // 活动规则
- showPrizePopup:false, //中奖弹窗
- showtableStatus:false, //转盘状态
- showAddress:false, //地址弹窗
- prizeInfo:{}, //奖品详情页
- shareTitle:'',
- theam:'redContent', //redContent --0 blueContent --1 greenContent --2
- scrollTop:0,
- scrollIndex:'view0',
- timer:''//定时器
- },
- onLoad: function (options) {
- console.log('options',options)
- if (!util.isEmpty(options.id)) {
- this.setData({wheelId:options.id})
- }
- // 通过二维码进入
- if (!util.isEmpty(options.scene)) {
- console.log('scene',options.scene)
- this.setData({wheelId:options.scene})
- }
- this.setData({
- tableSize: wx.getSystemInfoSync().windowWidth - 40
- })
- },
- onReady: function () {
- },
- onShow: function () {
- this.getTableView()
- },
- // 再来一次
- tryAgain(){
- this.setData({
- showPrizePopup:false
- })
- setTimeout(() => {
- this.getPrize()
- }, 500);
- },
- // 填写地址
- inputAddress(e){
- this.setData({
- showPrizePopup:false,
- showAddress:true,
- prizeId:e.detail.id
- })
- },
- // 获取更多机会
- getMoreChange(){
- this.setData({showtableStatus:false})
- wx.navigateTo({
- url: '/pages/turntable/getPrizeTimes/index?wheelId='+this.data.wheelId+'&theam='+this.data.theam,
- })
- },
- // 获取分享标题
- getShareTitle(){
- let that=this;
- util.ajax({
- func: "v2/market/wheel/info",
- data: {wheelId:this.data.wheelId}
- }, function (res) {
- if (res.code==0) {
- that.setData({
- shareTitle:res.data.shareTitle
- })
- } else {
- util.showTips(res.reason)
- }
- })
- },
- // 滚动条滚动
- scrollTopBar(){
- let timer = setInterval(() => {
- let viewNum=this.data.scrollIndex.slice(4);
- this.setData({scrollIndex:parseInt(viewNum)>=this.data.winPrizeList.length-1?('view0'):('view'+(parseInt(viewNum)+2))})
- }, 2000);
- this.setData({timer})
- },
- // 获取大转盘页面显示信息
- getTableView(){
- let id = this.data.wheelId,that=this;
- util.ajax({
- func: "v2/market/wheel/index",
- data: {wheelId:id}
- }, function (res) {
- if (res.code==0) {
- that.setData({
- tablePageInfo:res.data,
- theam:that.selectTheme(res.data.theme)
- })
- that.initialization();
- that.getPrizeList();
- that.getWinprizeList();
- that.getShareTitle()
- } else {
- util.showTips(res.reason);
- }
- })
- },
- // 判定标题
- selectTheme(theme){
- let str=''
- switch (theme) {
- case 0:
- str='redContent'
- break;
- case 1:
- str='blueContent'
- break;
- case 2:
- str='greenContent'
- break;
- }
- return str;
- },
- // 初始化大转盘
- initialization(){
- let awardsConfig = this.data.tablePageInfo,
- len = awardsConfig.itemList.length,
- rotateDeg = 360 / len / 2 + 90,
- turnNum = 1 / len,
- html = [];
- // var ctx = wx.createContext()
- for (var i = 0; i < len; i++) {
- // 奖项列表
- html.push({turn: i * turnNum + 'turn', lineTurn: i * turnNum + turnNum / 2 + 'turn', award: awardsConfig.itemList[i].title,url:awardsConfig.itemList[i].logo,showWheelLogo: awardsConfig.itemList[i].showWheelLogo});
- }
- this.setData({
- awardsList: html,
- btnDisabled: ''
- });
- },
- // 点击抽奖
- getPrize(){
- this.setData({btnDisabled: 'disabled'})
- let that=this,wheelId=this.data.wheelId,peopleId=this.data.tablePageInfo.peopleId;
- util.ajax({
- func: `v2/market/wheel/${wheelId}/draw`,
- data: {
- peopleId:peopleId,
- wheelId:wheelId
- }
- }, function (res) {
- if (res.code==0) {
- if (res.data.status==1) {
- that.setData({winThePrize:res.data.item})
- let index=0,prize={};
- that.data.tablePageInfo.itemList.forEach((el,i) => {
- if (el.itemId==res.data.item.id) {
- index=i;
- prize=res.data;
- }
- });
- that.getLottery(index,prize)
- } else {
- if (res.data.status!=5) {
- that.setData({
- showtableStatus:true,
- status:res.data.status
- })
- }else{
- that.setData({btnDisabled: ''})
- util.showTips(res.data.message);
- }
- }
- }else{
- util.showTips(res.reason);
- }
- })
- },
- getLottery(index,info) {
- var that = this
- var awardIndex =index;
- var awardsConfig = this.data.tablePageInfo, // 获取奖品配置
- runNum = 6 //旋转圈数
- // 旋转抽奖
- this.data.tablePageInfo.actnum=this.data.tablePageInfo.actnum <=0 ? 0:this.data.tablePageInfo.actnum-1;
- let len =360/awardsConfig.itemList.length/2;
- let random = this.random(-len+1,len-1)
- this.data.runDegs = this.data.runDegs || 0
- this.data.runDegs = this.data.runDegs + (360 - this.data.runDegs % 360) + (360 * runNum - awardIndex * (360 / awardsConfig.itemList.length))+random
- var animationRun = wx.createAnimation({
- duration: 6000,
- timingFunction: 'cubic-bezier(.42,.05,.2,.97)'
- })
- that.animationRun = animationRun
- animationRun.rotate(that.data.runDegs).step()
- that.setData({
- animationData: animationRun.export(),
- 'tablePageInfo.actnum':this.data.tablePageInfo.actnum
- })
- // 中奖提示
- setTimeout(function() {
- that.setData({
- showPrizePopup:true,
- winPrizeInfo:info
- })
- if (awardsConfig.chance) {
- that.setData({
- btnDisabled: ''
- })
- }
- }, 6500);
- },
- // 随机转动度数
- random(m,n) {
- return Math.floor(Math.random() * (n - m)) + m
- },
- // 跳转至中奖记录页面
- jumpRecord(){
- wx.navigateTo({
- url: '/pages/turntable/winRecord/index?wheelId='+this.data.wheelId+'&theam='+this.data.theam,
- })
- },
- // 奖品详情页弹窗
- openPrizeDetail(e){
- let data=e.currentTarget.dataset
- switch (data.name) {
- case 'rules':
- this.setData({
- showRulesPopup:true
- })
- break;
- case 'award':
- this.setData({
- showAwardPopup:true,
- prizeInfo:data.item
- })
- break;
- }
- },
- // 关闭上拉弹窗
- closeTip(e){
- let data = e.detail;
- switch (data.type) {
- case 'award':
- this.setData({
- showAwardPopup:data.status
- })
- break;
- case 'rules':
- this.setData({
- showRulesPopup:data.status
- })
- break;
- case 'notice':
- this.setData({
- showPrizePopup:data.status,
- btnDisabled: '',
- })
- break;
- case 'table':
- this.setData({
- showtableStatus:data.status,
- btnDisabled: '',
- })
- break;
- case 'address':
- this.setData({
- showAddress:data.status,
- btnDisabled: '',
- })
- break;
- }
- },
- // 获取奖品列表
- getPrizeList(){
- let that =this;
- util.ajax({
- func: `v2/market/wheel/item/list`,
- data: { wheelId:that.data.wheelId}
- }, function (res) {
- if (res.code==0) {
- that.setData({PrizeList:res.data})
- }else{
- util.showTips(res.reason);
- }
- })
- },
- // 获取中奖名单列表
- getWinprizeList(bol){
- let that =this;
- util.ajax({
- func: `v2/market/wheel/winning/list`,
- data: {
- wheelId:that.data.wheelId,
- }
- }, function (res) {
- if (res.code==0) {
- if (res.data.length>0) {
- that.setData({
- winPrizeList:res.data
- })
- that.scrollTopBar()
- }
- }else{util.showTips(res.reason);}
- })
- },
- // 用户点击右上角分享
- onShareAppMessage: function () {
- return {
- title:this.data.shareTitle,
- path:'/pages/turntable/index?id='+this.data.wheelId,
- }
- },
- onHide: function () {
- let e = this;
- clearInterval(e.data.timer);
- },
- // 页面卸载关闭定时器
- onUnload: function () {
- let e = this;
- clearInterval(e.data.timer);
- },
- })
|