128 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			128 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Vue
		
	
	
	
<template>
 | 
						||
  <view class="example-page">
 | 
						||
    <view class="header">
 | 
						||
      <text class="title">排行榜弹窗组件示例</text>
 | 
						||
    </view>
 | 
						||
 | 
						||
    <view class="content">
 | 
						||
      <view class="button-group">
 | 
						||
        <u-button
 | 
						||
          type="primary"
 | 
						||
          size="large"
 | 
						||
          @click="showRanking"
 | 
						||
          :loading="loading"
 | 
						||
        >
 | 
						||
          显示排行榜
 | 
						||
        </u-button>
 | 
						||
      </view>
 | 
						||
 | 
						||
      <view class="info-section">
 | 
						||
        <text class="info-title">使用说明:</text>
 | 
						||
        <text class="info-text"
 | 
						||
          >1. 点击按钮将依次显示直推人数和直推金额排行榜</text
 | 
						||
        >
 | 
						||
        <text class="info-text">2. 前三名会特殊展示在顶部</text>
 | 
						||
        <text class="info-text">3. 4-30名可在下方滚动查看</text>
 | 
						||
        <text class="info-text">4. 关闭人数排行后自动显示金额排行</text>
 | 
						||
      </view>
 | 
						||
    </view>
 | 
						||
 | 
						||
    <!-- 排行榜弹窗组件 -->
 | 
						||
    <RankingPopup ref="rankingPopup" @onRankingComplete="onRankingComplete" />
 | 
						||
  </view>
 | 
						||
</template>
 | 
						||
 | 
						||
<script>
 | 
						||
import RankingPopup from './RankingPopup.vue'
 | 
						||
 | 
						||
export default {
 | 
						||
  name: 'RankingPopupExample',
 | 
						||
  components: {
 | 
						||
    RankingPopup,
 | 
						||
  },
 | 
						||
  data() {
 | 
						||
    return {
 | 
						||
      loading: false,
 | 
						||
    }
 | 
						||
  },
 | 
						||
  methods: {
 | 
						||
    // 显示排行榜
 | 
						||
    async showRanking() {
 | 
						||
      this.loading = true
 | 
						||
      try {
 | 
						||
        await this.$refs.rankingPopup.showRankingPopups()
 | 
						||
      } catch (error) {
 | 
						||
        console.error('显示排行榜失败:', error)
 | 
						||
      } finally {
 | 
						||
        this.loading = false
 | 
						||
      }
 | 
						||
    },
 | 
						||
 | 
						||
    // 排行榜展示完成回调
 | 
						||
    onRankingComplete() {
 | 
						||
      console.log('排行榜展示完成')
 | 
						||
      uni.showToast({
 | 
						||
        title: '排行榜展示完成',
 | 
						||
        icon: 'success',
 | 
						||
      })
 | 
						||
    },
 | 
						||
  },
 | 
						||
}
 | 
						||
</script>
 | 
						||
 | 
						||
<style lang="scss" scoped>
 | 
						||
.example-page {
 | 
						||
  min-height: 100vh;
 | 
						||
  background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
 | 
						||
  padding: 40rpx;
 | 
						||
}
 | 
						||
 | 
						||
.header {
 | 
						||
  text-align: center;
 | 
						||
  margin-bottom: 60rpx;
 | 
						||
 | 
						||
  .title {
 | 
						||
    font-size: 36rpx;
 | 
						||
    font-weight: bold;
 | 
						||
    color: #333;
 | 
						||
  }
 | 
						||
}
 | 
						||
 | 
						||
.content {
 | 
						||
  max-width: 600rpx;
 | 
						||
  margin: 0 auto;
 | 
						||
}
 | 
						||
 | 
						||
.button-group {
 | 
						||
  text-align: center;
 | 
						||
  margin-bottom: 60rpx;
 | 
						||
}
 | 
						||
 | 
						||
.info-section {
 | 
						||
  background: rgba(255, 255, 255, 0.9);
 | 
						||
  padding: 40rpx;
 | 
						||
  border-radius: 20rpx;
 | 
						||
  box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1);
 | 
						||
 | 
						||
  .info-title {
 | 
						||
    display: block;
 | 
						||
    font-size: 28rpx;
 | 
						||
    font-weight: bold;
 | 
						||
    color: #333;
 | 
						||
    margin-bottom: 20rpx;
 | 
						||
  }
 | 
						||
 | 
						||
  .info-text {
 | 
						||
    display: block;
 | 
						||
    font-size: 24rpx;
 | 
						||
    color: #666;
 | 
						||
    line-height: 1.6;
 | 
						||
    margin-bottom: 12rpx;
 | 
						||
 | 
						||
    &:last-child {
 | 
						||
      margin-bottom: 0;
 | 
						||
    }
 | 
						||
  }
 | 
						||
}
 | 
						||
</style>
 |