web-africa-h5/pages/user/awardTitle/index.vue

266 lines
6.7 KiB
Vue
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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