From 92230c9a97dc9ce9df3313d11d26999c04bb6b26 Mon Sep 17 00:00:00 2001 From: gaoluyang <2820782392@qq.com> Date: 星期二, 15 七月 2025 13:12:48 +0800 Subject: [PATCH] 项目初始化 --- src/pages_qiun/components/ranking-list/ranking-list.vue | 93 ++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 93 insertions(+), 0 deletions(-) diff --git a/src/pages_qiun/components/ranking-list/ranking-list.vue b/src/pages_qiun/components/ranking-list/ranking-list.vue new file mode 100644 index 0000000..cc3eb93 --- /dev/null +++ b/src/pages_qiun/components/ranking-list/ranking-list.vue @@ -0,0 +1,93 @@ +<template> + <view> + <view class="ranking"> + <view class="ranking-item" v-for="(content,index) in content" :key="index"> + <view class="name">{{content.name}}</view> + <view class="progress" > + <text :style="{backgroundImage:'linear-gradient(to top right,'+getColor(0,index)+','+getColor(1,index)+')',width:content.width + '%'}"></text> + </view> + <view class="num">{{content.num}}</view> + </view> + </view> + </view> +</template> + +<script> + export default{ + name:'ranking-list', + props:{ + content:{ + type: Array, + default() { + return [] + } + } + }, + methods:{ + init(){ + if(this.content && this.content.length >0){ + this.content = this.content.sort((a,b) => b.num - a.num); + let max = this.content[0].num; + this.content.map((item,index) =>{ + item.width = this.computeWidth(max,item.num); + }); + this.$emit("updateRanking",this.content) + } + }, + computeWidth(max,current){ + let num = (current / max) * 100; + return num.toFixed(2); + }, + getColor(id,index){ + let color = ""; + switch(index){ + case 0: + color = id == 0 ? "#fff":"#A80BFC"; + break; + case 1: + color = id == 0 ? "#fff":"#740CFF"; + break; + case 2: + color = id == 0 ? "#fff":"#4A08DC"; + break; + default : + color = id == 0 ? "#fff":"#1936DA"; + break; + } + return color; + }, + }, + mounted() { + this.init(); + } + } +</script> + +<style scoped lang="scss"> + .ranking-item{ + display: flex; + margin-bottom: 13rpx; + padding: 10rpx; + align-content: center; + + .name{ + padding-right: 10rpx; + color: #868688; + } + .progress{ + flex:5; + text-align: left; + padding-right: 10rpx; + + text{ + display: inline-block; + height: 100%; + } + + } + .num{ + font-size: 26rpx; + color: #3EB2F5; + } + } +</style> -- Gitblit v1.9.3