diff --git a/frontend/pages/support-activity/components/ActivityRankingModal.vue b/frontend/pages/support-activity/components/ActivityRankingModal.vue new file mode 100644 index 0000000..b014ce5 --- /dev/null +++ b/frontend/pages/support-activity/components/ActivityRankingModal.vue @@ -0,0 +1,1038 @@ + + + + + \ No newline at end of file diff --git a/frontend/pages/support-activity/components/ThemeBanner.vue b/frontend/pages/support-activity/components/ThemeBanner.vue index 2f5d0c3..613ac42 100644 --- a/frontend/pages/support-activity/components/ThemeBanner.vue +++ b/frontend/pages/support-activity/components/ThemeBanner.vue @@ -10,7 +10,7 @@ /> - @@ -118,6 +129,7 @@ import ThemeBanner from './components/ThemeBanner.vue' import ContributionList from './components/ContributionList.vue' import StageArea from './components/StageArea.vue' import FloatingBubbles from './components/FloatingBubbles.vue' +import ActivityRankingModal from './components/ActivityRankingModal.vue' import ActionBar from './components/ActionBar.vue' const activityType = ref('birthday') @@ -139,10 +151,35 @@ const navExpanded = ref(false) // ActionBar 弹出框状态 const actionBarVisible = ref(false) +// 排行榜弹窗状态 +const rankingModalVisible = ref(false) +const currentActivityTitle = ref('') + function toggleActionBar() { actionBarVisible.value = !actionBarVisible.value } +// 打开排行榜弹窗 +function openRankingModal() { + currentActivityTitle.value = config.value?.title || '活动排名' + rankingModalVisible.value = true +} + +// 处理拜访用户 +function handleVisitUser(data) { + console.log('拜访用户:', data) +} + +// 处理查看用户资料 +function handleViewUserProfile(data) { + console.log('查看用户资料:', data) +} + +// 处理查看作品 +function handleViewArtwork(data) { + console.log('查看作品:', data) +} + let progressManager = null const isCompleted = computed(() => progressData.value.current >= progressData.value.target)