525 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			525 lines
		
	
	
		
			14 KiB
		
	
	
	
		
			Vue
		
	
	
	
<template>
 | 
						||
	<view class="content">
 | 
						||
		<view class="header_top">
 | 
						||
			<view class="top_text1">
 | 
						||
				{{userInfo.memberName}}
 | 
						||
			</view>
 | 
						||
			<view class="header_top_right">
 | 
						||
				<image class="header_img" v-if="userInfo.awardsIcon" :src="userInfo.awardsIcon"></image>
 | 
						||
				<image class="header_img" v-else src="@/static/images/avatar.png" mode=""></image>
 | 
						||
				<view class="top_text2">{{userInfo.pkAwardsVal}}</view>
 | 
						||
			</view>
 | 
						||
		</view>
 | 
						||
		<view class="top_card">
 | 
						||
			<view class="card_flex">
 | 
						||
				<view class="card_text1" v-if="dataList.memberAwardsUnderVO">
 | 
						||
					{{ '左区' }}:{{ dataList.memberAwardsUnderVO.aSumRealPv }} {{ '万' }}
 | 
						||
				</view>
 | 
						||
				<view class="card_text2" v-if="dataList.memberAwardsUnderVO.targetPv == '-1.00'">
 | 
						||
					{{ dataList.memberAwardsUnderVO.aSumRealPv }}/{{
 | 
						||
					                dataList.memberAwardsUnderVO.aSumRealPv
 | 
						||
					              }}
 | 
						||
				</view>
 | 
						||
				<view class="card_text2" v-else>
 | 
						||
					<span v-if="dataList.memberAwardsUnderVO.aSumRealPv > '0.00'">
 | 
						||
						{{ dataList.memberAwardsUnderVO.aSumRealPv }}/{{
 | 
						||
                  dataList.memberAwardsUnderVO.targetPv}}
 | 
						||
					</span>
 | 
						||
					<span v-else>
 | 
						||
						{{ dataList.memberAwardsUnderVO.aSumRealPv }}
 | 
						||
					</span>
 | 
						||
 | 
						||
				</view>
 | 
						||
			</view>
 | 
						||
			<view class="process">
 | 
						||
				<view class="process-s" style="width: 100%" v-if="dataList.memberAwardsUnderVO.targetPv == '-1.00'">
 | 
						||
					<view class="image-icon" v-if="dataList.memberAwardsUnderVO.aSumRealPv > '0.00'">
 | 
						||
						<image class="c_img" src="@/static/images/awards-1.png" mode=""></image>
 | 
						||
					</view>
 | 
						||
				</view>
 | 
						||
				<view class="process-s" style="width: 100%" v-else :style="{
 | 
						||
                width: `${
 | 
						||
                  dataList.memberAwardsUnderVO.aSumRealPv > '0.00'
 | 
						||
                    ? GetPercent(
 | 
						||
                        dataList.memberAwardsUnderVO.aSumRealPv,
 | 
						||
                        dataList.memberAwardsUnderVO.targetPv
 | 
						||
                      ) >= 100
 | 
						||
                      ? '100%'
 | 
						||
                      : GetPercent(
 | 
						||
                          dataList.memberAwardsUnderVO.aSumRealPv,
 | 
						||
                          dataList.memberAwardsUnderVO.targetPv
 | 
						||
                        ) + '%'
 | 
						||
                    : '0%'
 | 
						||
                }`,
 | 
						||
              }">
 | 
						||
					<view class="image-icon" v-if="dataList.memberAwardsUnderVO.aSumRealPv > '0.00'">
 | 
						||
						<image class="c_img" src="@/static/images/awards-1.png" mode=""></image>
 | 
						||
					</view>
 | 
						||
				</view>
 | 
						||
			</view>
 | 
						||
			<view class="card_flex">
 | 
						||
				<view class="card_text1" v-if="dataList.memberAwardsUnderVO"> {{ '右区' }}:{{ dataList.memberAwardsUnderVO.bSumRealPv
 | 
						||
            }}{{ '万' }}</view>
 | 
						||
				<view class="card_text2" v-if="dataList.memberAwardsUnderVO.targetPv == '-1.00'">
 | 
						||
					<span v-if="dataList.memberAwardsUnderVO.bSumRealPv > '0.00'">
 | 
						||
						{{ dataList.memberAwardsUnderVO.bSumRealPv }}/{{
 | 
						||
						dataList.memberAwardsUnderVO.bSumRealPv}}
 | 
						||
					</span>
 | 
						||
					<span v-else> {{ dataList.memberAwardsUnderVO.bSumRealPv }}</span>
 | 
						||
				</view>
 | 
						||
				<view class="card_text2" v-else>
 | 
						||
					{{ dataList.memberAwardsUnderVO.bSumRealPv }}/{{
 | 
						||
					              dataList.memberAwardsUnderVO.targetPv
 | 
						||
					            }}
 | 
						||
				</view>
 | 
						||
			</view>
 | 
						||
			<view class="process" v-if="dataList.memberAwardsUnderVO.targetPv == '-1.00'">
 | 
						||
				<view class="process-s oran" style="width: 100%"></view>
 | 
						||
			</view>
 | 
						||
			<view class="process" v-else>
 | 
						||
				<view class="process-s oran" :style="{
 | 
						||
                width: `${
 | 
						||
                  dataList.memberAwardsUnderVO.bSumRealPv > '0.00'
 | 
						||
                    ? GetPercent(
 | 
						||
                        dataList.memberAwardsUnderVO.bSumRealPv,
 | 
						||
                        dataList.memberAwardsUnderVO.targetPv
 | 
						||
                      ) >= 100
 | 
						||
                      ? '100%'
 | 
						||
                      : GetPercent(
 | 
						||
                          dataList.memberAwardsUnderVO.bSumRealPv,
 | 
						||
                          dataList.memberAwardsUnderVO.targetPv
 | 
						||
                        ) + '%'
 | 
						||
                    : '0%'
 | 
						||
                }`,
 | 
						||
              }">
 | 
						||
					<view class="image-icon" v-if="dataList.memberAwardsUnderVO.bSumRealPv > '0.00'">
 | 
						||
						<image class="c_img" src="@/static/images/awards-1.png" mode=""></image>
 | 
						||
					</view>
 | 
						||
				</view>
 | 
						||
			</view>
 | 
						||
		</view>
 | 
						||
		<view class="main_box">
 | 
						||
			<view class="tab">
 | 
						||
				<view v-for="(item, index) in tabList" :key="index" @click="isTab = item.value" class="tab_i"
 | 
						||
					:class="[isTab===item.value?'heng':'heng1']">
 | 
						||
					{{ item.label }}
 | 
						||
				</view>
 | 
						||
			</view>
 | 
						||
			<template v-if="isTab==0">
 | 
						||
				<view class="main_item" v-for="(item,index) in dataList.leftMemberAwardsUnderList" :key="index">
 | 
						||
					<view class="main_top">
 | 
						||
						<view class="main_top_left">
 | 
						||
							<image class="headerimg" v-if="item.memberPath" :src="item.memberPath" mode=""></image>
 | 
						||
							<image class="headerimg" v-else src="@/static/images/avatar.png" mode=""></image>
 | 
						||
							<view class="">
 | 
						||
								<view class="header_text1">NO.0{{index+1}}</view>
 | 
						||
								<view class="header_text2">{{ item.memberName }}</view>
 | 
						||
							</view>
 | 
						||
						</view>
 | 
						||
						<view class="main_top_right">
 | 
						||
							<image class="awards_img" :src="item.image" mode=""></image>
 | 
						||
							<view class="awards_name">
 | 
						||
								{{item.pkTransactionVal}}
 | 
						||
							</view>
 | 
						||
						</view>
 | 
						||
					</view>
 | 
						||
					<view class="main_content">
 | 
						||
						<view class="main_content_flex">
 | 
						||
							<view class="main_content_text">{{ '左区' }}</view>
 | 
						||
							<view class="main_process">
 | 
						||
								<view class="process-s" v-if="item.targetPv == '-1.00'" style="width: 100%">
 | 
						||
									<view class="image-icon" v-if="item.aSumRealPv > '0.00'">
 | 
						||
										<image class="c_img" src="@/static/images/awards-1.png" mode=""></image>
 | 
						||
									</view>
 | 
						||
								</view>
 | 
						||
								<view class="process-s" v-else :style="{
 | 
						||
									width: `${
 | 
						||
									item.aSumRealPv > '0.00'
 | 
						||
									? GetPercent(item.aSumRealPv, item.targetPv) >= 100
 | 
						||
										? '100%'
 | 
						||
									: GetPercent(item.aSumRealPv, item.targetPv) + '%'
 | 
						||
								: '0%'
 | 
						||
									}`,
 | 
						||
										}">
 | 
						||
									<view class="image-icon" v-if="item.aSumRealPv > '0.00'">
 | 
						||
										<image class="c_img" src="@/static/images/awards-1.png" mode=""></image>
 | 
						||
									</view>
 | 
						||
								</view>
 | 
						||
							</view>
 | 
						||
				
 | 
						||
						</view>
 | 
						||
						<view class="main_content_flex">
 | 
						||
							<view class="main_content_text">{{ '右区' }}</view>
 | 
						||
							<view class="main_process">
 | 
						||
								<view class="process-s" v-if="item.targetPv == '-1.00'"
 | 
						||
									style="background: #ffae36; width: 100%">
 | 
						||
				
 | 
						||
								</view>
 | 
						||
								<view class="process-s" v-else style="background: #ffae36" :style="{
 | 
						||
				          width: `${
 | 
						||
				            item.bSumRealPv > '0.00'
 | 
						||
				              ? GetPercent(item.bSumRealPv, item.targetPv) >= 100
 | 
						||
				                ? '100%'
 | 
						||
				                : GetPercent(item.bSumRealPv, item.targetPv) + '%'
 | 
						||
				              : '0%'
 | 
						||
				          }`,
 | 
						||
				        }">
 | 
						||
									<view class="image-icon" v-if="item.bSumRealPv > '0.00'">
 | 
						||
										<image class="c_img" src="@/static/images/awards-1.png" mode=""></image>
 | 
						||
									</view>
 | 
						||
								</view>
 | 
						||
							</view>
 | 
						||
						</view>
 | 
						||
					</view>
 | 
						||
				</view>
 | 
						||
			</template>
 | 
						||
			<template v-if="isTab==1">
 | 
						||
				<view class="main_item" v-for="(item,index) in dataList.rightMemberAwardsUnderList" :key="index">
 | 
						||
					<view class="main_top">
 | 
						||
						<view class="main_top_left">
 | 
						||
							<image class="headerimg" v-if="item.memberPath" :src="item.memberPath" mode=""></image>
 | 
						||
							<image class="headerimg" v-else src="@/static/images/avatar.png" mode=""></image>
 | 
						||
							<view class="">
 | 
						||
								<view class="header_text1">NO.0{{index+1}}</view>
 | 
						||
								<view class="header_text2">{{ item.memberName }}</view>
 | 
						||
							</view>
 | 
						||
						</view>
 | 
						||
						<view class="main_top_right">
 | 
						||
							<image class="awards_img" :src="item.image" mode=""></image>
 | 
						||
							<view class="awards_name">
 | 
						||
								{{item.pkTransactionVal}}
 | 
						||
							</view>
 | 
						||
						</view>
 | 
						||
					</view>
 | 
						||
					<view class="main_content">
 | 
						||
						<view class="main_content_flex">
 | 
						||
							<view class="main_content_text">{{ '左区' }}</view>
 | 
						||
							<view class="main_process">
 | 
						||
								<view class="process-s" v-if="item.targetPv == '-1.00'" style="width: 100%">
 | 
						||
									<view class="image-icon" v-if="item.aSumRealPv > '0.00'">
 | 
						||
										<image class="c_img" src="@/static/images/awards-1.png" mode=""></image>
 | 
						||
									</view>
 | 
						||
								</view>
 | 
						||
								<view class="process-s" v-else :style="{
 | 
						||
									width: `${
 | 
						||
									item.aSumRealPv > '0.00'
 | 
						||
									? GetPercent(item.aSumRealPv, item.targetPv) >= 100
 | 
						||
										? '100%'
 | 
						||
									: GetPercent(item.aSumRealPv, item.targetPv) + '%'
 | 
						||
								: '0%'
 | 
						||
									}`,
 | 
						||
										}">
 | 
						||
									<view class="image-icon" v-if="item.aSumRealPv > '0.00'">
 | 
						||
										<image class="c_img" src="@/static/images/awards-1.png" mode=""></image>
 | 
						||
									</view>
 | 
						||
								</view>
 | 
						||
							</view>
 | 
						||
				
 | 
						||
						</view>
 | 
						||
						<view class="main_content_flex">
 | 
						||
							<view class="main_content_text">{{ '右区' }}</view>
 | 
						||
							<view class="main_process">
 | 
						||
								<view class="process-s" v-if="item.targetPv == '-1.00'"
 | 
						||
									style="background: #ffae36; width: 100%">
 | 
						||
				
 | 
						||
								</view>
 | 
						||
								<view class="process-s" v-else style="background: #ffae36" :style="{
 | 
						||
				          width: `${
 | 
						||
				            item.bSumRealPv > '0.00'
 | 
						||
				              ? GetPercent(item.bSumRealPv, item.targetPv) >= 100
 | 
						||
				                ? '100%'
 | 
						||
				                : GetPercent(item.bSumRealPv, item.targetPv) + '%'
 | 
						||
				              : '0%'
 | 
						||
				          }`,
 | 
						||
				        }">
 | 
						||
									<view class="image-icon" v-if="item.bSumRealPv > '0.00'">
 | 
						||
										<image class="c_img" src="@/static/images/awards-1.png" mode=""></image>
 | 
						||
									</view>
 | 
						||
								</view>
 | 
						||
							</view>
 | 
						||
						</view>
 | 
						||
					</view>
 | 
						||
				</view>
 | 
						||
			</template>
 | 
						||
		</view>
 | 
						||
	</view>
 | 
						||
</template>
 | 
						||
 | 
						||
<script>
 | 
						||
	import * as api from '@/config/login.js'
 | 
						||
	export default {
 | 
						||
		data() {
 | 
						||
			return {
 | 
						||
				userInfo: {},
 | 
						||
				dataList: [],
 | 
						||
				tabList: [{
 | 
						||
					value: 0,
 | 
						||
					label: '左区'
 | 
						||
				}, {
 | 
						||
					value: 1,
 | 
						||
					label:  '右区'
 | 
						||
				}],
 | 
						||
				isTab: 0,
 | 
						||
			}
 | 
						||
		},
 | 
						||
		onShow() {
 | 
						||
			this.getInfo()
 | 
						||
			this.getIndexAwardsData()
 | 
						||
		},
 | 
						||
		methods: {
 | 
						||
			getIndexAwardsData() {
 | 
						||
				api.getIndexAwards().then((res) => {
 | 
						||
					if (res.code == "200") {
 | 
						||
						this.dataList = res.data;
 | 
						||
					}
 | 
						||
				});
 | 
						||
			},
 | 
						||
			GetPercent(num, total) {
 | 
						||
				num = parseFloat(num);
 | 
						||
				total = parseFloat(total);
 | 
						||
				if (total < 0) {
 | 
						||
					return 100 + "%";
 | 
						||
				}
 | 
						||
				if (isNaN(num) || isNaN(total)) {
 | 
						||
					return "-";
 | 
						||
				}
 | 
						||
				return total <= 0 ? 0 : (num / total) * 100;
 | 
						||
			},
 | 
						||
			getInfo() {
 | 
						||
				api.getInfo().then(res => {
 | 
						||
					if (res) {
 | 
						||
						this.userInfo = res.data
 | 
						||
					}
 | 
						||
				}).catch(error => {
 | 
						||
					reject(error)
 | 
						||
				})
 | 
						||
			}
 | 
						||
		}
 | 
						||
	}
 | 
						||
</script>
 | 
						||
 | 
						||
<style lang="scss" scoped>
 | 
						||
	.content {
 | 
						||
		padding: 10rpx 22rpx 50rpx 22rpx;
 | 
						||
		min-height: 100vh;
 | 
						||
		background: linear-gradient(to bottom, #e85244 0%, #e85244 20%, #eee 20%, #eee 100%);
 | 
						||
		font-size: 24rpx;
 | 
						||
 | 
						||
		.header_top {
 | 
						||
			padding: 20rpx;
 | 
						||
			display: flex;
 | 
						||
			justify-content: space-between;
 | 
						||
			align-items: center;
 | 
						||
			font-weight: bold;
 | 
						||
			color: #FFFFFF;
 | 
						||
 | 
						||
			.top_text1 {
 | 
						||
				font-size: 32rpx;
 | 
						||
			}
 | 
						||
 | 
						||
			.header_top_right {
 | 
						||
				text-align: center;
 | 
						||
 | 
						||
				.header_img {
 | 
						||
					width: 72rpx;
 | 
						||
					height: 66rpx;
 | 
						||
 | 
						||
				}
 | 
						||
 | 
						||
				.top_text2 {
 | 
						||
					font-size: 24rpx;
 | 
						||
					margin-top: 10rpx;
 | 
						||
				}
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		.top_card {
 | 
						||
			background: #FFFFFF;
 | 
						||
			border-radius: 20rpx;
 | 
						||
			padding: 28rpx 22rpx;
 | 
						||
 | 
						||
			.card_flex {
 | 
						||
				display: flex;
 | 
						||
				justify-content: space-between;
 | 
						||
				align-items: center;
 | 
						||
 | 
						||
				.card_text1 {
 | 
						||
					color: #333333;
 | 
						||
				}
 | 
						||
 | 
						||
				.card_text2 {
 | 
						||
					color: #999999;
 | 
						||
				}
 | 
						||
			}
 | 
						||
 | 
						||
			.process {
 | 
						||
				width: 665rpx;
 | 
						||
				height: 18rpx;
 | 
						||
				background: #ededed;
 | 
						||
				border-radius: 10rpx;
 | 
						||
				margin: 22rpx 0;
 | 
						||
 | 
						||
				.process-s {
 | 
						||
					background: #fe4c4b;
 | 
						||
					border-radius: 10rpx;
 | 
						||
					height: 18rpx;
 | 
						||
					position: relative;
 | 
						||
 | 
						||
					.image-icon {
 | 
						||
						.c_img {
 | 
						||
							width: 79rpx;
 | 
						||
							height: 62rpx;
 | 
						||
							position: absolute;
 | 
						||
							right: -21rpx;
 | 
						||
							top: -23rpx;
 | 
						||
						}
 | 
						||
					}
 | 
						||
				}
 | 
						||
 | 
						||
				.oran {
 | 
						||
					background: #ffae36
 | 
						||
				}
 | 
						||
			}
 | 
						||
		}
 | 
						||
 | 
						||
		.main_box {
 | 
						||
			padding: 42rpx 20rpx 24rpx 20rpx;
 | 
						||
			background: #FFFFFF;
 | 
						||
			border-radius: 20rpx;
 | 
						||
			margin-top: 20rpx;
 | 
						||
 | 
						||
			.tab {
 | 
						||
				display: flex;
 | 
						||
				align-items: center;
 | 
						||
				justify-content: space-around;
 | 
						||
				margin-bottom: 6rpx;
 | 
						||
				background-color: #FFFFFF;
 | 
						||
 | 
						||
				.tab_i {
 | 
						||
					text-align: center;
 | 
						||
					font-family: Source Han Sans CN;
 | 
						||
					font-weight: bold;
 | 
						||
					color: #333333;
 | 
						||
					white-space: nowrap;
 | 
						||
					display: flex;
 | 
						||
					flex-direction: column;
 | 
						||
					align-items: center;
 | 
						||
					padding-bottom: 24rpx;
 | 
						||
					font-size: 28rpx;
 | 
						||
 | 
						||
				}
 | 
						||
 | 
						||
				.heng {
 | 
						||
					border-bottom: 6rpx solid #005BAC;
 | 
						||
					color: #005BAC;
 | 
						||
 | 
						||
				}
 | 
						||
 | 
						||
				.heng {
 | 
						||
					color: #333333;
 | 
						||
				}
 | 
						||
 | 
						||
			}
 | 
						||
 | 
						||
			.main_item {
 | 
						||
				background: #F2F2F2;
 | 
						||
				border-radius: 20rpx;
 | 
						||
				padding: 23rpx 20rpx 35rpx 20rpx;
 | 
						||
				margin-top: 20rpx;
 | 
						||
 | 
						||
				.main_top {
 | 
						||
					display: flex;
 | 
						||
					justify-content: space-between;
 | 
						||
					align-items: center;
 | 
						||
 | 
						||
					.main_top_left {
 | 
						||
						display: flex;
 | 
						||
						align-items: center;
 | 
						||
 | 
						||
						.headerimg {
 | 
						||
							width: 98rpx;
 | 
						||
							height: 98rpx;
 | 
						||
							border-radius: 50%;
 | 
						||
							margin-right: 15rpx;
 | 
						||
						}
 | 
						||
 | 
						||
						.header_text1 {
 | 
						||
							font-weight: bold;
 | 
						||
							color: #005BAC;
 | 
						||
							font-size: 20rpx;
 | 
						||
							font-family: Microsoft YaHei UI;
 | 
						||
						}
 | 
						||
 | 
						||
						.header_text2 {
 | 
						||
							font-size: 28rpx;
 | 
						||
							font-family: Source Han Sans CN;
 | 
						||
							font-weight: 400;
 | 
						||
							color: #030219;
 | 
						||
							margin-top: 8rpx;
 | 
						||
						}
 | 
						||
					}
 | 
						||
 | 
						||
					.main_top_right {
 | 
						||
						.awards_img {
 | 
						||
							width: 65rpx;
 | 
						||
							height: 60rpx;
 | 
						||
						}
 | 
						||
 | 
						||
						.awards_name {
 | 
						||
							margin-top: 10rpx;
 | 
						||
							font-size: 20rpx;
 | 
						||
							font-family: Source Han Sans CN;
 | 
						||
							font-weight: 400;
 | 
						||
							color: #666666;
 | 
						||
						}
 | 
						||
					}
 | 
						||
				}
 | 
						||
 | 
						||
				.main_content {
 | 
						||
					.main_content_flex {
 | 
						||
						display: flex;
 | 
						||
						align-items: center;
 | 
						||
						margin-top: 20rpx;
 | 
						||
 | 
						||
						.main_content_text {
 | 
						||
							font-size: 24rpx;
 | 
						||
							font-family: Source Han Sans CN;
 | 
						||
							font-weight: 400;
 | 
						||
							color: #333333;
 | 
						||
							margin-right: 7rpx;
 | 
						||
						}
 | 
						||
 | 
						||
						.main_process {
 | 
						||
							width: 560rpx;
 | 
						||
							height: 18rpx;
 | 
						||
							background: #ffffff;
 | 
						||
							border-radius: 10rpx;
 | 
						||
							margin: 22rpx 0;
 | 
						||
 | 
						||
							.process-s {
 | 
						||
								background: #fe4c4b;
 | 
						||
								border-radius: 10rpx;
 | 
						||
								height: 18rpx;
 | 
						||
								position: relative;
 | 
						||
 | 
						||
								.image-icon {
 | 
						||
									.c_img {
 | 
						||
										width: 79rpx;
 | 
						||
										height: 62rpx;
 | 
						||
										position: absolute;
 | 
						||
										right: -21rpx;
 | 
						||
										top: -23rpx;
 | 
						||
									}
 | 
						||
								}
 | 
						||
							}
 | 
						||
 | 
						||
							.oran {
 | 
						||
								background: #ffae36
 | 
						||
							}
 | 
						||
						}
 | 
						||
					}
 | 
						||
				}
 | 
						||
			}
 | 
						||
		}
 | 
						||
	}
 | 
						||
</style> |