266 lines
6.7 KiB
Vue
266 lines
6.7 KiB
Vue
<template>
|
||
<view class="">
|
||
<image class="award-bg" src="/static/bg/bg-award.png" mode=""></image>
|
||
<view class="d-b-c userinfo">
|
||
<view class="f32 white fb flex-1">{{ userInfo.memberName }}</view>
|
||
<view class="d-c d-c-c">
|
||
<image class="grad-img" :src="userInfo.image" mode=""></image>
|
||
<view class="f24 white fb">{{ userInfo.awardsName }}</view>
|
||
</view>
|
||
</view>
|
||
<view class="userinfo-content">
|
||
<view class="d-b-c mb20">
|
||
<view class="gray3 ">
|
||
{{ $t('S_C_18') }}:
|
||
<text>{{ userInfo.aSumRealPv }}</text>
|
||
{{ $t('S_C_58') }}
|
||
</view>
|
||
<view class="gray9">{{ userInfo.aSumRealPv }}/{{ userInfo.targetPv }}</view>
|
||
</view>
|
||
<view class="award-slider mb30">
|
||
<view :style="'width: ' + getSlider(userInfo.aSumRealPv, userInfo.targetPv) + '%;'" class="award-slider-active red">
|
||
<image v-if="userInfo.aSumRealPv * 1 > 0" class="award-simg" src="/static/icon/award-slider.png" mode=""></image>
|
||
</view>
|
||
</view>
|
||
<view class="d-b-c mb20">
|
||
<view class="gray3 ">
|
||
{{ $t('S_C_19') }}:
|
||
<text>{{ userInfo.bSumRealPv }}</text>
|
||
{{ $t('S_C_58') }}
|
||
</view>
|
||
<view class="gray9">{{ userInfo.bSumRealPv }}/{{ userInfo.targetPv }}</view>
|
||
</view>
|
||
<view class="award-slider">
|
||
<view :style="'width: ' + getSlider(userInfo.bSumRealPv, userInfo.targetPv) + '%;'" class="award-slider-active yellow">
|
||
<image v-if="userInfo.bSumRealPv * 1 > 0" class="award-simg" src="/static/icon/award-slider.png" mode=""></image>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="award-content">
|
||
<view class="d-b-c award-nav">
|
||
<view @click="changeType(0)" class="award-nav-item" :class="{ active: listType == 0 }">{{ $t('S_C_18') }}</view>
|
||
<view @click="changeType(1)" class="award-nav-item" :class="{ active: listType == 1 }">{{ $t('S_C_19') }}</view>
|
||
</view>
|
||
<view class="awardTilte-list">
|
||
<view class="awardTitle-item" v-for="(item, index) in listData" :key="index">
|
||
<view class="awarditem-top d-b-c">
|
||
<image class="user-ava" :src="item.memberPath || '/static/default.png'" mode=""></image>
|
||
<view class="flex-1">
|
||
<view class="fb domation f22">NO.{{ index + 1 > 10 ? index + 1 : '0' + (index + 1) }}</view>
|
||
<view class="f28 gray3">{{ item.memberName || $t('ESTORE_LEVEL_0') }}</view>
|
||
</view>
|
||
<view class="d-c d-c-c">
|
||
<image class="user-gradeimg" :src="item.image" mode=""></image>
|
||
<view class="f20 gray6">{{ item.awardsName }}</view>
|
||
</view>
|
||
</view>
|
||
<view class="d-b-c mb20">
|
||
<view style="white-space: nowrap;" class="mr10">{{ $t('S_C_18') }}</view>
|
||
<view class="award-slider flex-1 bg-white">
|
||
<view :style="'width: ' + getSlider(item.aSumRealPv, item.targetPv) + '%;'" class="award-slider-active red">
|
||
<image v-if="item.aSumRealPv * 1 > 0" class="award-simg" src="/static/icon/award-slider.png" mode=""></image>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
<view class="d-b-c">
|
||
<view style="white-space: nowrap;" class="mr10">{{ $t('S_C_19') }}</view>
|
||
<view class="award-slider flex-1 bg-white">
|
||
<view :style="'width: ' + getSlider(item.bSumRealPv, item.targetPv) + '%;'" class="award-slider-active yellow">
|
||
<image v-if="item.bSumRealPv * 1 > 0" class="award-simg" src="/static/icon/award-slider.png" mode=""></image>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</view>
|
||
</template>
|
||
|
||
<script>
|
||
export default {
|
||
data() {
|
||
return {
|
||
userInfo: {
|
||
aSumRealPv: '0',
|
||
bSumRealPv: '0',
|
||
memberName: '',
|
||
targetPv: '0',
|
||
awardsName: '',
|
||
image: '',
|
||
pkAwards: 0,
|
||
pkTransaction: 0,
|
||
pkTransactionVal: '',
|
||
asumRealPv: '0',
|
||
bsumRealPv: '0'
|
||
},
|
||
listType: 0,
|
||
listData: [],
|
||
leftMemberAwardsUnderList: [],
|
||
rightMemberAwardsUnderList: [],
|
||
isFist: true
|
||
};
|
||
},
|
||
onShow() {
|
||
this.getData();
|
||
},
|
||
methods: {
|
||
getSlider(a, b) {
|
||
if (b * 1 != 0 && !b) {
|
||
return 0;
|
||
} else if (b * 1 > 0) {
|
||
return ((a * 1) / (b * 1)) * 100;
|
||
} else {
|
||
return 100;
|
||
}
|
||
},
|
||
changeType(n) {
|
||
this.listType = n;
|
||
if (n == 0) {
|
||
this.listData = this.leftMemberAwardsUnderList;
|
||
} else {
|
||
this.listData = this.rightMemberAwardsUnderList;
|
||
}
|
||
},
|
||
getData() {
|
||
let self = this;
|
||
self._get('member/api/member/index-awards', {}, res => {
|
||
self.userInfo = res.data.memberAwardsUnderVO;
|
||
self.leftMemberAwardsUnderList = res.data.leftMemberAwardsUnderList;
|
||
self.rightMemberAwardsUnderList = res.data.rightMemberAwardsUnderList;
|
||
if (this.isFist) {
|
||
self.listData = self.leftMemberAwardsUnderList;
|
||
this.isFist = false;
|
||
}
|
||
});
|
||
}
|
||
}
|
||
};
|
||
</script>
|
||
|
||
<style lang="scss">
|
||
.award-bg {
|
||
width: 750rpx;
|
||
height: 287rpx;
|
||
position: absolute;
|
||
left: 0;
|
||
top: 0;
|
||
z-index: 0;
|
||
}
|
||
.userinfo {
|
||
position: relative;
|
||
z-index: 1;
|
||
padding: 30rpx 43rpx 20rpx 43rpx;
|
||
.grad-img {
|
||
width: 72rpx;
|
||
height: 66rpx;
|
||
margin-bottom: 7rpx;
|
||
}
|
||
}
|
||
|
||
.award-slider {
|
||
width: 100%;
|
||
height: 18rpx;
|
||
background: #eeeeee;
|
||
border-radius: 9rpx;
|
||
position: relative;
|
||
.award-slider-active {
|
||
position: absolute;
|
||
max-width: 100%;
|
||
left: 0;
|
||
top: 0;
|
||
height: 18rpx;
|
||
border-radius: 9rpx;
|
||
.award-simg {
|
||
width: 82rpx;
|
||
height: 64rpx;
|
||
position: absolute;
|
||
top: 0;
|
||
right: -22rpx;
|
||
bottom: 0;
|
||
margin: auto;
|
||
}
|
||
}
|
||
.award-slider-active.red {
|
||
background: #fb3024;
|
||
}
|
||
.award-slider-active.yellow {
|
||
background: #ffae36;
|
||
}
|
||
}
|
||
.award-slider.bg-white {
|
||
background: #fff;
|
||
}
|
||
.userinfo-content {
|
||
width: 706rpx;
|
||
box-sizing: border-box;
|
||
margin: 0 auto;
|
||
padding: 28rpx 24rpx;
|
||
background: #ffffff;
|
||
border-radius: 20rpx;
|
||
position: relative;
|
||
z-index: 1;
|
||
margin-bottom: 20rpx;
|
||
}
|
||
.award-content {
|
||
width: 706rpx;
|
||
background-color: #fff;
|
||
border-radius: 20rpx;
|
||
padding: 0 20rpx 24rpx 20rpx;
|
||
box-sizing: border-box;
|
||
margin: 0 auto;
|
||
.award-nav {
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
border-bottom: 1rpx solid #eeeeee;
|
||
.award-nav-item {
|
||
height: 97rpx;
|
||
flex: 1;
|
||
font-size: 28rpx;
|
||
font-weight: bold;
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
position: relative;
|
||
}
|
||
.award-nav-item.active::after {
|
||
content: '';
|
||
position: absolute;
|
||
bottom: 0;
|
||
left: 0;
|
||
right: 0;
|
||
margin: auto;
|
||
width: 80rpx;
|
||
height: 5rpx;
|
||
background: #fb3024;
|
||
}
|
||
}
|
||
}
|
||
.awardTilte-list {
|
||
padding-top: 18rpx;
|
||
.awardTitle-item {
|
||
padding: 23rpx 20rpx 32rpx 20rpx;
|
||
background: #f2f2f2;
|
||
border-radius: 20rpx;
|
||
margin-bottom: 20rpx;
|
||
.awarditem-top {
|
||
margin-bottom: 40rpx;
|
||
.user-ava {
|
||
width: 98rpx;
|
||
height: 98rpx;
|
||
margin-right: 15rpx;
|
||
display: block;
|
||
flex-shrink: 0;
|
||
}
|
||
.user-gradeimg {
|
||
width: 65rpx;
|
||
height: 60rpx;
|
||
display: block;
|
||
flex-shrink: 0;
|
||
margin-bottom: 9rpx;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
</style>
|