From 67d8b4bb44b4aa3e93aedbc96e878a5462d19442 Mon Sep 17 00:00:00 2001
From: xy <271556543@qq.com>
Date: Thu, 14 Sep 2023 14:43:23 +0800
Subject: [PATCH] 2023.9.14
---
src/views/page/MidAutumnLotteryDraw.vue | 98 +++++++++++++++++++------
1 file changed, 76 insertions(+), 22 deletions(-)
diff --git a/src/views/page/MidAutumnLotteryDraw.vue b/src/views/page/MidAutumnLotteryDraw.vue
index e9e4820..e51e08d 100644
--- a/src/views/page/MidAutumnLotteryDraw.vue
+++ b/src/views/page/MidAutumnLotteryDraw.vue
@@ -22,28 +22,29 @@
-
奖品: {{ config.draw_prize.name }}
+
奖品: {{ 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="item"
+ :key="$route.query.result ? index : item"
>
- {{ item }}
+ {{ isEnd ? config.numbers_list[Math.floor(Math.random() * 36)] : item }}
{
let set = new Set();
@@ -117,7 +122,7 @@ export default {
let num = Math.floor(
Math.random() * this.config.numbers_list.length
);
- set.add(this.config.numbers_list[num]);
+ set.add(num);
}
this.resultNumbers = Array.from(set);
@@ -126,15 +131,18 @@ export default {
clearInterval(this.timer);
setTimeout(() => {
this.resultNumbers = result.draw_numbers;
- }, 500);
+ this.isEnd = false;
+ }, 150);
}
- }, 500);
+ }, 150);
+
+ setTimeout(() => {
+ this.flag = false;
+ console.log("结束抽奖");
+ }, 3000)
} catch (err) {
console.log(err);
}
- } else {
- this.flag = false;
- console.log("结束抽奖");
}
}),
},
@@ -144,7 +152,16 @@ export default {
return this.resultNumbers;
}
if (this.config.numbers_list) {
- return this.config.numbers_list.sort(() => Math.random() - 0.5);
+ 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)])
+ }
+
+ return Array.from(set).sort(() => Math.random() - 0.5)
+ }
+ return this.config.numbers_list.sort(() => Math.random() - 0.5).slice(0, 36);
} else {
return [];
}
@@ -227,19 +244,33 @@ export default {
.right {
flex: 1;
- max-height: 39.5vh;
- overflow-y: scroll;
-
- &::-webkit-scrollbar {
- width: 0px;
- }
+ overflow: hidden;
.numbers {
display: grid;
grid-template-columns: repeat(6, 1fr);
+ 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+2) {
+ animation: blur .15s infinite linear reverse;
+ }
+ }
+ @keyframes blur {
+ from {
+ filter: blur(1.5px);
+ }
+ to {
+ filter: blur(1.5px);
+ transform: translateY(-100%);
+ }
+ }
&__item {
color: #ebd1a8;
text-align: center;
@@ -247,10 +278,32 @@ export default {
font-family: PingFang SC, sans-serif;
font-weight: 800;
border-radius: 2.8em;
- transition: all 0.2s ease-out;
+ transition: all 0.3s ease-out;
+ position: relative;
+ & > span {
+ position: relative;
+ }
&--active {
- animation: filter 0.3s ease-out forwards;
+ color: #a9262c;
+ &::before {
+ content: "";
+ transition: all .5s ease-out;
+ border-radius: 2.8em;
+ color: #a9262c;
+ background: linear-gradient(
+ 264deg,
+ #f8eacc,
+ #e0c48a,
+ #f5e0b8,
+ #edddac,
+ #e1b872
+ );
+
+ z-index: 0;
+ position: absolute;
+ inset: 0 0 0 0;
+ }
}
}
}
@@ -258,7 +311,7 @@ export default {
}
@keyframes filter {
from {
- filter: blur(6px);
+ filter: blur(5px);
}
to {
filter: blur(0);
@@ -278,6 +331,7 @@ export default {
width: 46.67%;
display: flex;
justify-content: center;
+ transition: all .2s;
margin: 4.5vh auto 0 auto;
}