From e7dc44ceb2ff81b4a2d5e701a1a652c8ffe67742 Mon Sep 17 00:00:00 2001 From: no99 <17663930442@163.com> Date: Tue, 22 Jul 2025 11:27:42 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=9F=BA=E7=A1=80?= =?UTF-8?q?=E8=B7=AF=E5=BE=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 2 +- .env.production | 2 +- src/views/choujiang/hxl-cj/cj.vue | 64 +++++++++++++++++++++++++++++++++------ 3 files changed, 56 insertions(+), 12 deletions(-) diff --git a/.env.development b/.env.development index c5a8ac9..000a42d 100644 --- a/.env.development +++ b/.env.development @@ -2,7 +2,7 @@ VITE_ENV = 'development' VITE_OUTPUT_DIR = 'dev' # public path -VITE_PUBLIC_PATH = / +VITE_PUBLIC_PATH = /test #新数据接口 VITE_APP_API_BASE_URL = "https://dbqb.nfdxy.net/devLotApi" diff --git a/.env.production b/.env.production index 7a810b2..f5fc3a9 100644 --- a/.env.production +++ b/.env.production @@ -2,7 +2,7 @@ VITE_ENV = 'production' VITE_OUTPUT_DIR = 'dist' # public path -VITE_PUBLIC_PATH = /aixiaocaishen +VITE_PUBLIC_PATH = / # VITE_PUBLIC_PATH = / # Whether to open mock diff --git a/src/views/choujiang/hxl-cj/cj.vue b/src/views/choujiang/hxl-cj/cj.vue index d85794a..7b51918 100644 --- a/src/views/choujiang/hxl-cj/cj.vue +++ b/src/views/choujiang/hxl-cj/cj.vue @@ -375,7 +375,7 @@ const initAll = async () => { prizes.value.forEach((item, index) => { item.type = index; item.count = item.amount; - item.leftCount = item.amount; //剩余次数(用于计算奖品下方的进度条的百分比) + item.leftCount = item.remainNum; //剩余次数(用于计算奖品下方的进度条的百分比) item.hasCount = item.amount; //已抽次数(用于计算出奖) item.isLook = false; // EACH_COUNT.push(item.perWin); @@ -916,7 +916,7 @@ function switchPage(direction) { const object = threeDCards[cardIndex]; const cardPage = Math.floor(index / cardsPerPage); const isVisible = cardPage === newPage; - + const wasVisible = cardPage === pageIndex.value; // 计算在当前页中的索引 const pageNowIndex = index % cardsPerPage; const pageLocate = pageLocates[cardPage][pageNowIndex]; @@ -929,11 +929,53 @@ function switchPage(direction) { // "pageLocate", // pageLocate // ); + + // 根据切换方向决定动画效果 + let targetY; + if (isVisible) { + // 当前页要显示的卡片 + if (direction === "next") { + // 索引增大:从下方飞出 + targetY = pageLocate.y; + } else { + // 索引减少:从上方飞出 + targetY = pageLocate.y; + } + } else { + // 当前页要隐藏的卡片 + if (direction === "next") { + // 索引增大:向上飞走 + targetY = pageLocate.y + 1000; + } else { + // 索引减少:向下飞走 + targetY = pageLocate.y - 1000; + } + } + + // 设置起始位置 + let startY; + if (wasVisible) { + // 当前页的卡片从当前位置开始 + startY = object.position.y; + } else { + // 非当前页的卡片从隐藏位置开始 + if (direction === "next") { + // 索引增大:从下方开始 + startY = pageLocate.y - 1000; + } else { + // 索引减少:从上方开始 + startY = pageLocate.y + 1000; + } + } + + // 先设置起始位置 + object.position.y = startY; + new TWEEN.Tween(object.position) .to( { x: pageLocate.x, - y: isVisible ? pageLocate.y : pageLocate.y + 1000, + y: targetY, z: 2100, }, duration @@ -1072,16 +1114,17 @@ const lotteryBtn = () => { getPrizeUsers.value = []; let params = { - gradeName: currentPrize.value.gradeName, - prizeName: currentPrize.value.prizeName, + gradeId: currentPrize.value.gradeId, + prizeId: currentPrize.value.prizeId, perWin: currentPrize.value.perWin, + remainNum: currentPrize.value.leftCount, }; // 异步调用API,不阻塞后续代码执行 startLotteryApi(params) .then((res) => { // API返回结果时赋值 - getPrizeUsers.value = res.data || []; - console.log("API返回结果:", res.data); + getPrizeUsers.value = res.data.data || []; + console.log("API返回结果:", res.data.data); }) .catch((err) => { console.error("API调用失败:", err); @@ -1113,7 +1156,8 @@ const lottery = () => { selectedCardIndex = []; // 当前同时抽取的数目,当前奖品抽完还可以继续抽,但是不记录数据 - for (let i = 0; i < getPrizeUsers.value; i++) { + for (let i = 0; i < getPrizeUsers.value.length; i++) { + console.log("111", getPrizeUsers.value[i]); currentLuckys.push(getPrizeUsers.value[i]); currentPrize.value.hasCount--; @@ -1163,7 +1207,7 @@ function random(num) { */ function changeCard(cardIndex, user) { let card = threeDCards[cardIndex].element; - + // console.log("user", user); card.innerHTML = `
${user.jwcode}
`; } @@ -1175,7 +1219,7 @@ function changeSelectedCard(cardIndex, user) { let card = threeDCards[cardIndex].element; - card.innerHTML = `
${user[1]}
`; + card.innerHTML = `
${user.jwcode}
`; } /** * 切换名牌背景 From 9053349e7c41800800b6484fce25b146ea2eac93 Mon Sep 17 00:00:00 2001 From: Ethereal <3432649580@qq.com> Date: Tue, 22 Jul 2025 13:49:14 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=A5=96=E5=93=81?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/choujiang/lottery/PrizePanel.vue | 171 +++++++++++++++-------------- 1 file changed, 88 insertions(+), 83 deletions(-) diff --git a/src/views/choujiang/lottery/PrizePanel.vue b/src/views/choujiang/lottery/PrizePanel.vue index e0df76c..ccc7052 100644 --- a/src/views/choujiang/lottery/PrizePanel.vue +++ b/src/views/choujiang/lottery/PrizePanel.vue @@ -36,9 +36,6 @@ {{ getLeftCount(prize) }}/{{ prize.count }} - - - @@ -55,16 +52,16 @@
- + + @@ -111,62 +108,61 @@ prizes[lastRevealedIdx].count }} - + + - - @@ -175,7 +171,6 @@ import { ref, computed, nextTick, watch, onMounted } from "vue"; import { useLotteryStore } from "../../../store/lottery"; import { useDataManager } from "../lottery/dataManager"; - const props = defineProps({ prizes: Array, }); @@ -242,7 +237,10 @@ function canRevealPrize(idx) { // 卡片点击事件 function handleReveal(idx) { // 检查是否可以揭秘这个奖品 - if (idx !== nextRevealIdx.value ) {alert("请按顺序揭秘奖品!"); return;} + if (idx !== nextRevealIdx.value) { + alert("请按顺序揭秘奖品!"); + return; + } if (idx === nextRevealIdx.value && canRevealPrize(idx)) { revealedCount.value++; lastRevealedIdx.value = idx; // 记录最新揭秘的索引 @@ -279,7 +277,9 @@ console.log("fakeWinners", fakeWinners.value); import { getGetPrizeUserListApi } from "../../../api/API"; const updateWinners = async () => { try { - const response = await getGetPrizeUserListApi({}) + const response = await getGetPrizeUserListApi({ + + }); console.log("updatePrizeList response", response); fakeWinners.value = response.data.list; console.log("updateWinners fakeWinners", fakeWinners.value); @@ -288,7 +288,6 @@ const updateWinners = async () => { } }; async function openWinnerList() { - // showWinnerList.value = true; if (!showWinnerList.value) { if (revealedCount.value === 0) { @@ -361,39 +360,35 @@ function getProgressPercent(prize) { // onMounted(() => { // updateWinners(); // }); -