|
@ -18,6 +18,11 @@ |
|
|
<p class="modal-text">{{ modalConfig.text }}</p> |
|
|
<p class="modal-text">{{ modalConfig.text }}</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div v-if="yonghuyichouwan" class="yonghuyichouwan-modal"> |
|
|
|
|
|
<div class="yonghuyichouwan-modal-content"> |
|
|
|
|
|
<p class="yonghuyichouwan-modal-text">恭喜所有中奖用户!</p> |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
<!-- <UserList |
|
|
<!-- <UserList |
|
|
:lucky-users=" |
|
|
:lucky-users=" |
|
@ -179,6 +184,7 @@ const playing = ref(false); |
|
|
const musicSrc1 = musicFile1; |
|
|
const musicSrc1 = musicFile1; |
|
|
const audioRef1 = ref(null); |
|
|
const audioRef1 = ref(null); |
|
|
const playing1 = ref(false); |
|
|
const playing1 = ref(false); |
|
|
|
|
|
const yonghuyichouwan = ref(false); |
|
|
|
|
|
|
|
|
async function toggleMusic() { |
|
|
async function toggleMusic() { |
|
|
if (!audioRef.value) return; |
|
|
if (!audioRef.value) return; |
|
@ -319,7 +325,10 @@ async function handleLotteryClick() { |
|
|
if(res.data.round === false && res.data.data.length === 0){ |
|
|
if(res.data.round === false && res.data.data.length === 0){ |
|
|
isDisabled.value = true; |
|
|
isDisabled.value = true; |
|
|
console.log("isDisabled.value是", isDisabled.value); |
|
|
console.log("isDisabled.value是", isDisabled.value); |
|
|
showModal("用户已抽完",100000); |
|
|
|
|
|
|
|
|
// showModal("用户已抽完",100000); |
|
|
|
|
|
yonghuyichouwan.value = true; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
break; |
|
|
break; |
|
|
} |
|
|
} |
|
@ -480,4 +489,118 @@ function handleNextPrize() { |
|
|
opacity: 0; |
|
|
opacity: 0; |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* 用户已抽完弹窗样式 - 从下方飞入到中央 */ |
|
|
|
|
|
.yonghuyichouwan-modal { |
|
|
|
|
|
position: fixed; |
|
|
|
|
|
top: 0; |
|
|
|
|
|
left: 0; |
|
|
|
|
|
width: 100%; |
|
|
|
|
|
height: 100%; |
|
|
|
|
|
display: flex; |
|
|
|
|
|
justify-content: center; |
|
|
|
|
|
align-items: center; |
|
|
|
|
|
z-index: 10000; |
|
|
|
|
|
background: rgba(0, 0, 0, 0.7); |
|
|
|
|
|
animation: modalFadeIn 0.5s ease-out; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.yonghuyichouwan-modal-content { |
|
|
|
|
|
background: linear-gradient(135deg, #e68907 0%, #b01717 100%); |
|
|
|
|
|
border-radius: 20px; |
|
|
|
|
|
padding: 40px 60px; |
|
|
|
|
|
box-shadow: 0 20px 40px rgba(0, 0, 0, 0.3); |
|
|
|
|
|
text-align: center; |
|
|
|
|
|
min-width: 800px; |
|
|
|
|
|
min-height: 600px; |
|
|
|
|
|
display: flex; |
|
|
|
|
|
align-items: center; |
|
|
|
|
|
justify-content: center; |
|
|
|
|
|
animation: cardFlyIn 0.8s ease-out; |
|
|
|
|
|
border: 3px solid #fff; |
|
|
|
|
|
position: relative; |
|
|
|
|
|
overflow: hidden; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.yonghuyichouwan-modal-content::before { |
|
|
|
|
|
content: ''; |
|
|
|
|
|
position: absolute; |
|
|
|
|
|
top: 0; |
|
|
|
|
|
left: 0; |
|
|
|
|
|
right: 0; |
|
|
|
|
|
bottom: 0; |
|
|
|
|
|
background: linear-gradient(45deg, transparent 30%, rgba(255, 255, 255, 0.1) 50%, transparent 70%); |
|
|
|
|
|
animation: shimmer 2s infinite; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.yonghuyichouwan-modal-text { |
|
|
|
|
|
color: #fbff11; |
|
|
|
|
|
font-size: 80px; |
|
|
|
|
|
font-weight: bold; |
|
|
|
|
|
margin: 0; |
|
|
|
|
|
text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5); |
|
|
|
|
|
position: relative; |
|
|
|
|
|
z-index: 1; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* 弹窗淡入动画 */ |
|
|
|
|
|
@keyframes modalFadeIn { |
|
|
|
|
|
0% { |
|
|
|
|
|
opacity: 0; |
|
|
|
|
|
} |
|
|
|
|
|
100% { |
|
|
|
|
|
opacity: 1; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* 卡牌从下方飞入动画 */ |
|
|
|
|
|
@keyframes cardFlyIn { |
|
|
|
|
|
0% { |
|
|
|
|
|
transform: translateY(100vh) scale(0.3); |
|
|
|
|
|
opacity: 0; |
|
|
|
|
|
} |
|
|
|
|
|
50% { |
|
|
|
|
|
transform: translateY(-20px) scale(1.1); |
|
|
|
|
|
opacity: 0.8; |
|
|
|
|
|
} |
|
|
|
|
|
100% { |
|
|
|
|
|
transform: translateY(0) scale(1); |
|
|
|
|
|
opacity: 1; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* 闪光效果 */ |
|
|
|
|
|
@keyframes shimmer { |
|
|
|
|
|
0% { |
|
|
|
|
|
transform: translateX(-100%); |
|
|
|
|
|
} |
|
|
|
|
|
100% { |
|
|
|
|
|
transform: translateX(100%); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/* 响应式设计 */ |
|
|
|
|
|
@media (max-width: 768px) { |
|
|
|
|
|
.yonghuyichouwan-modal-content { |
|
|
|
|
|
min-width: 300px; |
|
|
|
|
|
min-height: 150px; |
|
|
|
|
|
padding: 30px 40px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.yonghuyichouwan-modal-text { |
|
|
|
|
|
font-size: 24px; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
@media (max-width: 480px) { |
|
|
|
|
|
.yonghuyichouwan-modal-content { |
|
|
|
|
|
min-width: 250px; |
|
|
|
|
|
min-height: 120px; |
|
|
|
|
|
padding: 20px 30px; |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.yonghuyichouwan-modal-text { |
|
|
|
|
|
font-size: 20px; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
</style> |
|
|
</style> |