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>
|