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() //获取我的排名
})