From 9f762b1d48eb51aca7df36ca9e0bc83852d0bff8 Mon Sep 17 00:00:00 2001 From: hzj <1304805162@qq.com> Date: Sat, 11 Oct 2025 15:49:29 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=8E=92=E8=A1=8C=E6=A6=9C):=20=E5=AF=B9?= =?UTF-8?q?=E6=8E=A5=E6=88=91=E7=9A=84=E6=8E=92=E5=90=8D=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/ranking.js | 4 +- src/views/Ranking/Ranking.vue | 104 ++++++++++++++++++++++++---------- 2 files changed, 75 insertions(+), 33 deletions(-) diff --git a/src/api/ranking.js b/src/api/ranking.js index 2c31155..447f9f4 100644 --- a/src/api/ranking.js +++ b/src/api/ranking.js @@ -37,9 +37,9 @@ export const getRoomRanking = async () => { } // 获取我的排名 -export const getMyRanking = async () => { +export const getMyRanking = async (type, dateType) => { try { - const response = await get(`/activity/leaderboard/my-rank`) + const response = await get(`/activity/leaderboard/my-rank?type=${type}&dateType=${dateType}`) return response } catch (error) { console.error('Failed to fetch get my ranking:', error) diff --git a/src/views/Ranking/Ranking.vue b/src/views/Ranking/Ranking.vue index 9c37464..a8066dc 100644 --- a/src/views/Ranking/Ranking.vue +++ b/src/views/Ranking/Ranking.vue @@ -23,7 +23,7 @@
@@ -31,7 +31,7 @@
@@ -39,7 +39,7 @@
@@ -73,28 +73,28 @@
Hourly
Daily
Weekly
Monthly
@@ -157,7 +157,7 @@
{{ index + 4 }}
-
999
+
{{ myRanking.rank || 0 }}
- aaaaaaaaaaaa + {{ myRanking.nickname || '' }}
@@ -260,7 +261,7 @@ text-overflow: ellipsis; " > - 123456789 + {{ myRanking.quantityFormat || 0 }}
@@ -287,6 +288,10 @@ const isInAppEnvironment = ref(false) // 检测是否在APP环境中 const rankingType = ref('Wealth') //榜单类型 const selectedTimeTab = ref('Hourly') //时间标签 +// 接口参数 +const params_type = ref('GIFTS_SEND') //排行榜类型 +const params_dateType = ref('HOUR') //时间类型 + const totalRanking = ref({}) const showRanking = ref([]) const myRanking = ref({}) //我的排名 @@ -306,25 +311,48 @@ const updateTimeRanking = () => { } } -watch( - () => rankingType.value, - () => { - console.log('监听到rankingType.value变化') +// 改变排行榜类型 +const changeType = (type) => { + if (rankingType.value != type) { + console.log('改变rankingType') + rankingType.value = type + selectedTimeTab.value = 'Hourly' + params_dateType.value = 'HOUR' + if (type == 'Wealth') { + params_type.value = 'GIFTS_SEND' + } else if (type == 'Charm') { + params_type.value = 'GIFTS_RECEIVED' + } else if (type == 'Room') { + params_type.value = 'ROOM_GIFTS' + } totalRanking.value = {} showRanking.value = [] - // 获取榜单 - getRanking() + myRanking.value = {} + getRanking() // 获取榜单 + getMyRankingInfo() //获取我的排名 } -) +} -watch( - () => selectedTimeTab.value, - () => { - console.log('监听到selectedTimeTab.value变化') +// 改变时间类型 +const changeDateType = (dateType) => { + if (selectedTimeTab.value != dateType) { + console.log('改变rankingType') + selectedTimeTab.value = dateType + if (dateType == 'Hourly') { + params_dateType.value = 'HOUR' + } else if (dateType == 'Daily') { + params_dateType.value = 'DAY' + } else if (dateType == 'Weekly') { + params_dateType.value = 'WEEK' + } else if (dateType == 'Monthly') { + params_dateType.value = 'MONTH' + } showRanking.value = [] + myRanking.value = {} updateTimeRanking() //刷新展示榜单 + getMyRankingInfo() //获取我的排名 } -) +} // 前三名榜单 const RankingTop3 = computed(() => { @@ -348,15 +376,17 @@ const RankingFromTop4 = computed(() => { }) // 动态样式 -const backgroundColor = ref('') //页面 -const backgroundImage = ref('') //页面 +const backgroundColor = ref('') //页面样式 +const backgroundImage = ref('') //页面样式 +const border = ref('') //时间标签样式 +const background = ref('') //时间标签样式 +const rankItemBackground = ref('') //排名项背景 +const rankItemBorder = ref('') //排名项边框 + const topBorderBg = ref('') //top1头像框 const top2BorderBg = ref('') //top2头像框 const top3BorderBg = ref('') //top3头像框 -const border = ref('') //时间标签 -const background = ref('') //时间标签 -const rankItemBackground = ref('') //排名项背景 -const rankItemBorder = ref('') //排名项边框 + const sentinel = ref(null) const stickyHeader = ref(null) @@ -422,6 +452,7 @@ const observer = new IntersectionObserver((entries) => { }) }) +// 获取榜单 const getRanking = async () => { console.log('获取榜单') @@ -439,13 +470,24 @@ const getRanking = async () => { } } +//获取我的排名 +const getMyRankingInfo = async () => { + console.log('获取我的排名') + const resMyRanking = await getMyRanking(params_type.value, params_dateType.value) + if (resMyRanking.status && resMyRanking.body) { + myRanking.value = resMyRanking.body + } else { + myRanking.value = {} + } +} + onMounted(() => { isInAppEnvironment.value = isInApp() observer.observe(sentinel.value) getRanking() // 获取榜单 - getMyRanking() //获取我的排名 + getMyRankingInfo() //获取我的排名 })