From d147d7a03c8395cac807f2c4fa50c317bf39e4b3 Mon Sep 17 00:00:00 2001
From: xy <271556543@qq.com>
Date: Thu, 14 Sep 2023 17:30:57 +0800
Subject: [PATCH] 2023.9.14
---
src/views/page/MidAutumnLotteryDraw.vue | 109 +++++++++++++++++-------
1 file changed, 78 insertions(+), 31 deletions(-)
diff --git a/src/views/page/MidAutumnLotteryDraw.vue b/src/views/page/MidAutumnLotteryDraw.vue
index e51e08d..2b95767 100644
--- a/src/views/page/MidAutumnLotteryDraw.vue
+++ b/src/views/page/MidAutumnLotteryDraw.vue
@@ -22,29 +22,58 @@
-
奖品: {{ config.draw_prize.name }} ✕ {{ config.draw_prize.has_total }}(个)
+
+ 奖品: {{ config.draw_prize.name }} ✕
+ {{ config.draw_prize.has_total }}(个)
+
赞助商: {{ config.draw_prize.apply }}
-
-
+
+
i === index)
+ : !!resultNumbers.find((i) => i === item),
+ }"
v-for="(item, index) in numbers"
:key="$route.query.result ? index : item"
>
- {{ isEnd ? config.numbers_list[Math.floor(Math.random() * 36)] : item }}
+ {{
+ isEnd ? config.numbers_list[Math.floor(Math.random() * 36)] : item
+ }}
+
+
+
+ {{
+ isEnd ? config.numbers_list[Math.floor(Math.random() * 36)] : item
+ }}
{
+ this.maxHeight = this.$refs['numbers'].getBoundingClientRect().height + 'px'
+ })
},
async getConfig() {
const res = await drawConfig({
id: this.$route.params.id,
});
+ res.numbers_list = res.numbers_list.map(i => i.toString().padStart(3,'0'))
this.config = res;
+
+ this.$nextTick(() => {
+ this.maxHeight = this.$refs['numbers'].getBoundingClientRect().height + 'px'
+ })
},
async getResult() {
const res = await drawLog(
@@ -101,7 +140,7 @@ export default {
this.resultNumbers = res.data
.filter((i) => i.draw_prize_id == this.$route.params.id)
- .map((i) => Number(i.mobile));
+ .map((i) => i.mobile.padStart(3, "0"));
},
draw: throttle(async function () {
@@ -112,6 +151,9 @@ export default {
id: this.$route.params.id,
});
console.log(result);
+ result.draw_numbers = result.draw_numbers.map((i) =>
+ i.toString().padStart(3, "0")
+ );
this.result = result.draw_numbers;
this.flag = true;
this.isEnd = true;
@@ -139,7 +181,7 @@ export default {
setTimeout(() => {
this.flag = false;
console.log("结束抽奖");
- }, 3000)
+ }, 3000);
} catch (err) {
console.log(err);
}
@@ -154,14 +196,20 @@ export default {
if (this.config.numbers_list) {
if (this.result.length > 0) {
let set = new Set();
- this.result.forEach(i => set.add(i))
- while ((set.size < 36) && (set.size < this.config.numbers_list.length)) {
- set.add(this.config.numbers_list[Math.floor(Math.random() * this.config.numbers_list.length)])
+ this.result.forEach((i) => set.add(i));
+ while (set.size < 36 && set.size < this.config.numbers_list.length) {
+ set.add(
+ this.config.numbers_list[
+ Math.floor(Math.random() * this.config.numbers_list.length)
+ ]
+ );
}
- return Array.from(set).sort(() => Math.random() - 0.5)
+ return Array.from(set).sort(() => Math.random() - 0.5);
}
- return this.config.numbers_list.sort(() => Math.random() - 0.5).slice(0, 36);
+ return this.config.numbers_list
+ .sort(() => Math.random() - 0.5)
+ .slice(0, 36);
} else {
return [];
}
@@ -252,23 +300,22 @@ export default {
grid-template-rows: repeat(6, 1fr);
grid-column-gap: 2.8em;
grid-row-gap: 0.93vh;
- overflow: hidden;
&-active {
- & > div:nth-child(2n+1) {
- animation: blur .15s infinite linear;
+ & > div:nth-child(2n + 1) {
+ animation: blur 0.15s infinite linear;
}
- & > div:nth-child(2n+2) {
- animation: blur .15s infinite linear reverse;
+ & > div:nth-child(2n + 2) {
+ animation: blur 0.15s infinite linear reverse;
}
}
@keyframes blur {
from {
- filter: blur(1.5px);
+ filter: blur(1.5px) drop-shadow(0 0 4px #00000055) drop-shadow(0 0 8px #00000033);
}
to {
- filter: blur(1.5px);
- transform: translateY(-100%);
+ filter: blur(1.5px) drop-shadow(0 0 4px #00000055) drop-shadow(0 0 8px #00000033);
+ transform: translateY(-300%);
}
}
&__item {
@@ -288,16 +335,16 @@ export default {
color: #a9262c;
&::before {
content: "";
- transition: all .5s ease-out;
+ transition: all 0.5s ease-out;
border-radius: 2.8em;
color: #a9262c;
background: linear-gradient(
- 264deg,
- #f8eacc,
- #e0c48a,
- #f5e0b8,
- #edddac,
- #e1b872
+ 264deg,
+ #f8eacc,
+ #e0c48a,
+ #f5e0b8,
+ #edddac,
+ #e1b872
);
z-index: 0;
@@ -331,7 +378,7 @@ export default {
width: 46.67%;
display: flex;
justify-content: center;
- transition: all .2s;
+ transition: all 0.2s;
margin: 4.5vh auto 0 auto;
}