暂存code
This commit is contained in:
+112
-104
@@ -1,147 +1,155 @@
|
||||
"use strict";
|
||||
const common_vendor = require("../../common/vendor.js");
|
||||
const api_raffle = require("../../api/raffle.js");
|
||||
const common_assets = require("../../common/assets.js");
|
||||
const _sfc_main = {
|
||||
data() {
|
||||
return {
|
||||
deg: 0,
|
||||
singleAngle: "",
|
||||
// 每片扇形的角度
|
||||
isStart: false,
|
||||
areaNumber: 6,
|
||||
speed: 16,
|
||||
award: 1,
|
||||
awardList: [
|
||||
{
|
||||
title: "特等奖"
|
||||
},
|
||||
{
|
||||
title: "一等奖"
|
||||
},
|
||||
{
|
||||
title: "二等奖"
|
||||
},
|
||||
{
|
||||
title: "三等奖"
|
||||
},
|
||||
{
|
||||
title: "四等奖"
|
||||
},
|
||||
{
|
||||
title: "啥也没有"
|
||||
}
|
||||
]
|
||||
// 顺时针对应每个奖项
|
||||
lightImages: ["/static/turntable/bg_bs.png", "/static/turntable/bg_hs.png"],
|
||||
prizesObj: {},
|
||||
prizes: [],
|
||||
lotteryList: []
|
||||
// 中奖的列表ID
|
||||
};
|
||||
},
|
||||
onLoad() {
|
||||
this.getActivityList();
|
||||
},
|
||||
methods: {
|
||||
jumpMine() {
|
||||
common_vendor.index.switchTab({
|
||||
url: "/pages/mine/mine"
|
||||
});
|
||||
},
|
||||
init() {
|
||||
},
|
||||
// 点击开始抽奖
|
||||
start() {
|
||||
let { areaNumber } = this;
|
||||
common_vendor.index.__f__("log", "at pages/turntable/turntable.vue:92", "areaNumber", areaNumber);
|
||||
const singleAngle = 360 / areaNumber;
|
||||
common_vendor.index.__f__("log", "at pages/turntable/turntable.vue:94", "singleAngle", singleAngle);
|
||||
this.singleAngle = singleAngle;
|
||||
let index = Math.floor(Math.random() * 6 + 1);
|
||||
this.award = index;
|
||||
common_vendor.index.__f__("log", "at pages/turntable/turntable.vue:98", "index", index);
|
||||
this.begin(index);
|
||||
},
|
||||
begin(awardNumer) {
|
||||
var deg = this.deg;
|
||||
var singleAngle = this.singleAngle;
|
||||
var speed = this.speed;
|
||||
var isStart = this.isStart;
|
||||
if (isStart)
|
||||
return;
|
||||
this.isStart = true;
|
||||
let endAddAngle = 0;
|
||||
common_vendor.index.__f__("log", "at pages/turntable/turntable.vue:110", "awardNumer", awardNumer);
|
||||
common_vendor.index.__f__("log", "at pages/turntable/turntable.vue:111", "singleAngle", singleAngle);
|
||||
endAddAngle = 360 - ((awardNumer - 1) * singleAngle + singleAngle / 2);
|
||||
const rangeAngle = (Math.floor(Math.random() * 4) + 4) * 360;
|
||||
common_vendor.index.__f__("log", "at pages/turntable/turntable.vue:116", endAddAngle);
|
||||
let cAngle;
|
||||
deg = 0;
|
||||
this.timer = setInterval(() => {
|
||||
if (deg < rangeAngle) {
|
||||
deg += speed;
|
||||
} else {
|
||||
cAngle = (endAddAngle + rangeAngle - deg) / speed;
|
||||
cAngle = cAngle > speed ? speed : cAngle < 1 ? 1 : cAngle;
|
||||
deg += cAngle;
|
||||
if (deg >= endAddAngle + rangeAngle) {
|
||||
deg = endAddAngle + rangeAngle;
|
||||
this.isStart = false;
|
||||
clearInterval(this.timer);
|
||||
this.turntableSuccess();
|
||||
}
|
||||
}
|
||||
this.deg = deg;
|
||||
}, 1e3 / 60);
|
||||
},
|
||||
// 抽奖完成后操作
|
||||
turntableSuccess() {
|
||||
const index = this.award - 1;
|
||||
common_vendor.index.__f__("log", "at pages/turntable/turntable.vue:144", "bind:success", this.awardList[index]);
|
||||
common_vendor.index.showToast({
|
||||
title: `恭喜你获得${this.awardList[index].title}`,
|
||||
icon: "none"
|
||||
});
|
||||
},
|
||||
/**
|
||||
* 开始多次抽奖
|
||||
*/
|
||||
drawsFun(count) {
|
||||
common_vendor.index.__f__("log", "at pages/turntable/turntable.vue:154", "开始多次抽奖。。count", count);
|
||||
this.start();
|
||||
// 查询活动详情
|
||||
async getActivityList() {
|
||||
const resp = await api_raffle.getActivityList();
|
||||
if (resp && resp.bizcode === 100) {
|
||||
this.prizesObj = resp.data;
|
||||
this.prizes = resp.data.prizes || [];
|
||||
}
|
||||
},
|
||||
/**
|
||||
* 跳转到中奖记录
|
||||
*/
|
||||
jumpWinningRecord() {
|
||||
common_vendor.index.navigateTo({
|
||||
url: "/pages/mine_winning_record/mine_winning_record"
|
||||
});
|
||||
},
|
||||
// 用户点击开始,需要请求后台,去算出抽奖的选中的哪个
|
||||
async startClick(num) {
|
||||
const count = this.prizesObj.times;
|
||||
if (!count || count === 0) {
|
||||
common_vendor.index.showToast({
|
||||
title: `您当前未获取到抽奖次数,快去获取吧~`,
|
||||
icon: "none"
|
||||
});
|
||||
return;
|
||||
}
|
||||
if (count < num) {
|
||||
return;
|
||||
}
|
||||
const params = {
|
||||
id: this.prizesObj.id,
|
||||
times: num
|
||||
};
|
||||
const result = await api_raffle.raffleExecute(params);
|
||||
let runCount = null;
|
||||
if (result && result.bizcode === 100) {
|
||||
const total = this.prizesObj.times;
|
||||
const data = result.data;
|
||||
this.lotteryList = data;
|
||||
this.prizesObj.times = total - num;
|
||||
const prizes = this.prizes;
|
||||
const lastData = data[data.length - 1];
|
||||
for (let i = 0; i < prizes.length; i++) {
|
||||
common_vendor.index.__f__("log", "at pages/turntable/turntable.vue:123", "prizes[i]", prizes[i]);
|
||||
if (prizes[i].id === lastData.prizeId) {
|
||||
runCount = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (!runCount && runCount !== 0) {
|
||||
common_vendor.index.showToast({
|
||||
title: `系统异常【抱歉,抽奖失败】~`,
|
||||
icon: "none"
|
||||
});
|
||||
return;
|
||||
}
|
||||
this.$refs.luckyWheel.run(runCount);
|
||||
},
|
||||
//prize
|
||||
Done() {
|
||||
const lotteryList = this.lotteryList;
|
||||
if (lotteryList && lotteryList.length !== 0) {
|
||||
const data = lotteryList.map((item) => item.prizeName);
|
||||
common_vendor.index.showToast({
|
||||
title: `恭喜你获得【${data.join(",")}】`,
|
||||
icon: "none",
|
||||
duration: lotteryList.length > 1 ? 4e3 : 2e3
|
||||
// 持续时长,单位ms
|
||||
});
|
||||
} else {
|
||||
common_vendor.index.showToast({
|
||||
title: `抱歉,抽奖失败`,
|
||||
icon: "none"
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
if (!Array) {
|
||||
const _easycom_up_image2 = common_vendor.resolveComponent("up-image");
|
||||
_easycom_up_image2();
|
||||
const _easycom_dengbo_lotteryWheel2 = common_vendor.resolveComponent("dengbo-lotteryWheel");
|
||||
(_easycom_up_image2 + _easycom_dengbo_lotteryWheel2)();
|
||||
}
|
||||
const _easycom_up_image = () => "../../uni_modules/uview-plus/components/u-image/u-image.js";
|
||||
const _easycom_dengbo_lotteryWheel = () => "../../uni_modules/dengbo-lotteryWheel/components/dengbo-lotteryWheel/dengbo-lotteryWheel.js";
|
||||
if (!Math) {
|
||||
_easycom_up_image();
|
||||
(_easycom_up_image + _easycom_dengbo_lotteryWheel)();
|
||||
}
|
||||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||||
return {
|
||||
a: common_vendor.o($options.jumpMine),
|
||||
b: common_vendor.p({
|
||||
a: common_vendor.p({
|
||||
src: "/static/common/left_b.png",
|
||||
width: "22",
|
||||
height: "22",
|
||||
bgColor: "#f1f6ff00"
|
||||
}),
|
||||
c: common_assets._imports_0,
|
||||
d: common_vendor.s("-webkit-transform:rotate(" + $data.deg + "deg) translateZ(0);transform:rotate(" + $data.deg + "deg) translateZ(0)"),
|
||||
b: common_vendor.o((...args) => $options.jumpMine && $options.jumpMine(...args)),
|
||||
c: common_vendor.t($data.prizesObj.title || "幸运转盘百亿补贴"),
|
||||
d: common_assets._imports_0,
|
||||
e: common_assets._imports_1,
|
||||
f: common_vendor.o((...args) => $options.start && $options.start(...args)),
|
||||
g: common_vendor.o(($event) => $options.drawsFun(1)),
|
||||
h: common_vendor.o(($event) => $options.drawsFun(10)),
|
||||
i: common_vendor.o(($event) => $options.drawsFun(100)),
|
||||
j: common_vendor.o(($event) => $options.drawsFun(365)),
|
||||
k: common_vendor.o($options.jumpWinningRecord),
|
||||
l: common_vendor.p({
|
||||
f: common_vendor.o(($event) => $options.startClick(1)),
|
||||
g: common_vendor.sr("luckyWheel", "573c7e2f-1"),
|
||||
h: common_vendor.o(($event) => $options.startClick(1)),
|
||||
i: common_vendor.o($options.Done),
|
||||
j: common_vendor.p({
|
||||
prizes: $data.prizes,
|
||||
size: 626,
|
||||
duration: 5e3,
|
||||
lightImgs: $data.lightImages,
|
||||
customStyle: "borderRadius: 50%;"
|
||||
}),
|
||||
k: common_vendor.t($data.prizesObj.times || 0),
|
||||
l: common_vendor.n($data.prizesObj.times < 1 ? "draws_item_warp draws_item_warp_no" : "draws_item_warp"),
|
||||
m: common_vendor.o(($event) => $options.startClick(1)),
|
||||
n: common_vendor.n($data.prizesObj.times < 10 ? "draws_item_warp draws_item_warp_no" : "draws_item_warp"),
|
||||
o: common_vendor.o(($event) => $options.startClick(10)),
|
||||
p: common_vendor.n($data.prizesObj.times < 20 ? "draws_item_warp draws_item_warp_no" : "draws_item_warp"),
|
||||
q: common_vendor.o(($event) => $options.startClick(20)),
|
||||
r: common_vendor.n($data.prizesObj.times < 50 ? "draws_item_warp draws_item_warp_no" : "draws_item_warp"),
|
||||
s: common_vendor.o(($event) => $options.startClick(50)),
|
||||
t: $data.prizesObj.ruleDescr,
|
||||
v: common_vendor.p({
|
||||
src: "/static/turntable/record.png",
|
||||
width: "14",
|
||||
height: "14",
|
||||
bgColor: "#f1f6ff00"
|
||||
})
|
||||
}),
|
||||
w: common_vendor.o((...args) => $options.jumpWinningRecord && $options.jumpWinningRecord(...args))
|
||||
};
|
||||
}
|
||||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render]]);
|
||||
|
||||
Reference in New Issue
Block a user