5 Commits

  1. 10
      src/views/choujiang/index.vue
  2. 55
      src/views/choujiang/lottery/PrizePanel.vue

10
src/views/choujiang/index.vue

@ -101,13 +101,15 @@ const lotteryEngine = useLotteryEngine(dataManager, {
}); });
onMounted(async () => { onMounted(async () => {
await dataManager.getBasicData();
await dataManager.getUsers();
isDisabled.value = true; isDisabled.value = true;
setTimeout(() => { setTimeout(() => {
isDisabled.value = false; isDisabled.value = false;
}, 4000);
}, 3800);
await dataManager.getBasicData();
await dataManager.getUsers();
// dataManager window 使 // dataManager window 使
window.dataManager = dataManager; window.dataManager = dataManager;
@ -159,7 +161,7 @@ async function handleLotteryClick() {
break; break;
case "ready": case "ready":
if (waitingForNextReveal.value) {
if (waitingForNextReveal.value || lastRevealed.value === 0) {
console.log("waitingForNextReveal.value", waitingForNextReveal.value); console.log("waitingForNextReveal.value", waitingForNextReveal.value);
// //
showPrizeExhaustedModal.value = true; showPrizeExhaustedModal.value = true;

55
src/views/choujiang/lottery/PrizePanel.vue

@ -51,14 +51,11 @@
/> />
</div> </div>
</div> </div>
</div>
</div>
<div class="prize-panel-footer"> <div class="prize-panel-footer">
<div class="arrow-up" @click="openWinnerList"></div> <div class="arrow-up" @click="openWinnerList"></div>
<button
ref="winnerBtnRef"
class="winner-btn"
@click="toggleWinnerList"
>
<button ref="winnerBtnRef" class="winner-btn" @click="toggleWinnerList">
获奖名单 获奖名单
</button> </button>
</div> </div>
@ -289,9 +286,7 @@ console.log("fakeWinners", fakeWinners.value);
import { getGetPrizeUserListApi } from "../../../api/API"; import { getGetPrizeUserListApi } from "../../../api/API";
const updateWinners = async () => { const updateWinners = async () => {
try { try {
const response = await getGetPrizeUserListApi({
});
const response = await getGetPrizeUserListApi({});
console.log("updatePrizeList response", response); console.log("updatePrizeList response", response);
fakeWinners.value = response.data.list; fakeWinners.value = response.data.list;
console.log("updateWinners fakeWinners", fakeWinners.value); console.log("updateWinners fakeWinners", fakeWinners.value);
@ -373,9 +368,9 @@ function getProgressPercent(prize) {
return Math.round((left / total) * 100); return Math.round((left / total) * 100);
} }
// onMounted(() => {
// updateWinners();
// });
onMounted(() => {
updateWinners();
});
</script> </script>
<style scoped> <style scoped>
@ -394,7 +389,7 @@ function getProgressPercent(prize) {
background: none; background: none;
z-index: 10; z-index: 10;
min-width: 300px; min-width: 300px;
max-width: 342px;
max-width: 362px;
text-align: left; text-align: left;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
@ -403,6 +398,7 @@ function getProgressPercent(prize) {
overflow-x: hidden !important; overflow-x: hidden !important;
overflow-y: auto; overflow-y: auto;
padding-right: 10px; padding-right: 10px;
padding-left: 10px;
scrollbar-width: thin; scrollbar-width: thin;
scrollbar-color: #ffd283 rgba(255, 210, 131, 0.3); /* Firefox */ scrollbar-color: #ffd283 rgba(255, 210, 131, 0.3); /* Firefox */
} }
@ -412,6 +408,8 @@ function getProgressPercent(prize) {
z-index: 10; z-index: 10;
min-width: 320px; min-width: 320px;
max-width: 342px; max-width: 342px;
padding-right: 10px;
padding-left: 10px;
text-align: left; text-align: left;
display: flex; display: flex;
} }
@ -490,17 +488,10 @@ function getProgressPercent(prize) {
color: #d84315; color: #d84315;
font-weight: 500; font-weight: 500;
} }
/* .prize-row-bottom {
background: linear-gradient(90deg, #ff9800 0%, #ff5722 100%);
background: #8a3500;
border-radius: 16px;
color: #fff;
font-size: 20px;
font-weight: bold;
padding: 2px 0 2px 0;
justify-content: center;
min-width: 80px;
} */
.prize-row-bottom {
/* margin-bottom: 8px; */
/* border: 1px solid #ea2b0a; */
}
.custom-arrow-icon { .custom-arrow-icon {
font-size: 24px; /* 图标大小 */ font-size: 24px; /* 图标大小 */
color: #d84315; /* 图标颜色,使用项目主题橙色 */ color: #d84315; /* 图标颜色,使用项目主题橙色 */
@ -531,14 +522,14 @@ function getProgressPercent(prize) {
background: none; background: none;
z-index: 10; z-index: 10;
min-width: 320px; min-width: 320px;
max-width: 342px;
max-width: 362px;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
} }
.prize-panel-footer { .prize-panel-footer {
position: relative; position: relative;
width: 100%;
/* width: 100%; */
display: flex; display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
@ -654,8 +645,8 @@ function getProgressPercent(prize) {
} }
.progress-bar-bg { .progress-bar-bg {
position: relative; position: relative;
width: 220px;
height: 28px;
width: 228px;
height: 30px;
background: #e9620e; background: #e9620e;
border-radius: 16px; border-radius: 16px;
overflow: hidden; overflow: hidden;
@ -668,6 +659,7 @@ function getProgressPercent(prize) {
position: absolute; position: absolute;
left: 0; left: 0;
top: 0; top: 0;
/* width: 100%; */
height: 100%; height: 100%;
/* background: linear-gradient(90deg, #ff9800 0%, #8a3500 100%); */ /* background: linear-gradient(90deg, #ff9800 0%, #8a3500 100%); */
background: #8a3500; background: #8a3500;
@ -708,9 +700,14 @@ function getProgressPercent(prize) {
.prize-panel-item.revealed-highlight { .prize-panel-item.revealed-highlight {
/* border: 3px solid #ff9800; */ /* border: 3px solid #ff9800; */
box-shadow: 0 0 16px 4px #ff9800aa; box-shadow: 0 0 16px 4px #ff9800aa;
transform: scale(1.05);
transform: scale(1.03);
z-index: 2; z-index: 2;
transition: all 0.3s; transition: all 0.3s;
/* 确保放大的元素不被遮挡 */
position: relative;
/* margin: 8px 0; */
/* 为放大的元素留出空间 */
transform-origin: center center;
} }
.prize-panel-item.disabled { .prize-panel-item.disabled {

Loading…
Cancel
Save