|
|
- <template>
- <view class="rank-item">
- <view class="rank-left">
- <image v-if="rankIcon" :src="rankIcon" class="rank-icon" />
- <image v-else-if="rankNumImg" :src="rankNumImg" class="rank-num-img" />
- <slot name="rankNum" v-else />
- <image v-if="medal" :src="medal" class="medal" />
- <image class="avatar" :src="avatar" mode="aspectFill" />
- <view class="name">{{ name }}</view>
- </view>
- <view class="rank-right">
- <view class="score">{{ score }} 亲密值</view>
- <view class="level">{{ level }}</view>
- </view>
- </view>
- </template>
-
- <script>
- export default {
- name: 'RankListItem',
- props: {
- rankIcon: String, // 排名图片(前3名)
- rankNumImg: String, // 排名数字图片(4-10名)
- medal: String, // 勋章图片
- avatar: String,
- name: String,
- score: [String, Number],
- level: {
- type: String,
- default: '护书使者 五级'
- }
- }
- }
- </script>
-
- <style lang="scss" scoped>
- .rank-item {
- display: flex;
- align-items: center;
- justify-content: space-between;
- background: #fffbe6;
- border-radius: 16rpx;
- margin-bottom: 18rpx;
- box-shadow: 0 2rpx 8rpx 0 rgba(184, 110, 59, 0.06);
- padding: 0 24rpx;
- height: 100rpx;
-
- .rank-left {
- display: flex;
- align-items: center;
-
- .rank-icon,
- .rank-num-img {
- width: 38rpx;
- height: 38rpx;
- margin-right: 10rpx;
- }
-
- .medal {
- width: 44rpx;
- height: 44rpx;
- margin-right: 10rpx;
- }
-
- .avatar {
- width: 44rpx;
- height: 44rpx;
- border-radius: 50%;
- margin-right: 14rpx;
- border: 2rpx solid #ffd700;
- object-fit: cover;
- }
-
- .name {
- font-size: 26rpx;
- color: #222;
- font-weight: 500;
- }
- }
-
- .rank-right {
- display: flex;
- flex-direction: column;
- align-items: flex-end;
-
- .score {
- font-size: 22rpx;
- color: #b86e3b;
- }
-
- .level {
- font-size: 20rpx;
- color: #fff;
- background: #e6b07c;
- border-radius: 8rpx;
- padding: 2rpx 10rpx;
- margin-top: 6rpx;
- font-weight: 500;
- }
- }
- }
- </style>
|