300 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			300 lines
		
	
	
		
			6.3 KiB
		
	
	
	
		
			Vue
		
	
	
	
| <template>
 | |
| 	<view class="width-auto">
 | |
| 		<view class="flexs">
 | |
| 			<view class="select-flexs">
 | |
| 				<picker :range="selYearList" :value="index" range-key="label" @change="changeYear">
 | |
| 					<view style="display: flex;	align-items: center;justify-content: space-between;">
 | |
| 						<view style="margin-right:40rpx;">{{whatYear}}年</view>
 | |
| 						<u-icon name="arrow-down" color="#999"></u-icon>
 | |
| 					</view>
 | |
| 				
 | |
| 				</picker>
 | |
| 			
 | |
| 			</view>
 | |
| 			<view class="select-flexs">
 | |
| 				<picker :range="selMounthList" :value="index" range-key="label" @change="bindPickerChange">
 | |
| 					<view style="display: flex;	align-items: center;justify-content: space-between;">
 | |
| 						<view style="margin-right:40rpx;">{{whatMounth}}月</view>
 | |
| 						<u-icon name="arrow-down" color="#999"></u-icon>
 | |
| 					</view>
 | |
| 
 | |
| 				</picker>
 | |
| 
 | |
| 			</view>
 | |
| 			<view class="select-flexs" style="margin-left: 20rpx;" @click="showType=true">
 | |
| 				<view style="display: flex;	align-items: center;justify-content: space-between;">
 | |
| 					<view style="margin-right:40rpx;">{{yjName}}</view>
 | |
| 					<u-icon name="arrow-down" color="#999"></u-icon>
 | |
| 				</view>
 | |
| 				<!-- <picker :range="yjTypeList" :value="index2" range-key="label" @confirm="bindType"></picker> -->
 | |
| 				<u-picker @cancel='showType=false' :show="showType" ref="uPicker" :columns="yjTypeList"
 | |
| 					@confirm="bindType" keyName='label'></u-picker>
 | |
| 			</view>
 | |
| 			<!-- <view class="title">
 | |
| 				导出明细
 | |
| 			</view> -->
 | |
| 		</view>
 | |
| 		<view class="listrefor bg2">
 | |
| 
 | |
| 			<view class="flex_item">
 | |
| 				<view class="text1">左区业绩</view>
 | |
| 				<view class="text2">{{ achieveData.leftAchieve || 0 }}</view>
 | |
| 			</view>
 | |
| 			<view class="flex_item" style="cursor: pointer;" @click="goDetail(1)">
 | |
| 				<view class="text1">左区血缘业绩</view>
 | |
| 				<view class="text2">{{ achieveData.leftDirectAchieve  || 0 }}</view>
 | |
| 			</view>
 | |
| 			<view class="flex_item">
 | |
| 				<view class="text1">左区人数</view>
 | |
| 				<view class="text2">{{ achieveData.leftCoun || 0 }}</view>
 | |
| 			</view>
 | |
| 		</view>
 | |
| 
 | |
| 		<view class="listrefor bg3">
 | |
| 			<view>
 | |
| 				<view class="text1">血缘业绩</view>
 | |
| 				<view class="text2">{{ achieveData.directAchieve || 0 }}</view>
 | |
| 			</view>
 | |
| 		</view>
 | |
| 		<view class="listrefor bg2">
 | |
| 
 | |
| 			<view class="flex_item">
 | |
| 				<view class="text1">右区业绩</view>
 | |
| 				<view class="text2">{{ achieveData.rightAchieve || 0 }}</view>
 | |
| 			</view>
 | |
| 
 | |
| 			<view class="flex_item" style="cursor: pointer;" @click="goDetail(2)">
 | |
| 				<view class="text1">右区血缘业绩</view>
 | |
| 				<view class="text2">{{ achieveData.rightDirectAchieve  || 0 }}</view>
 | |
| 			</view>
 | |
| 			<view class="flex_item">
 | |
| 				<view class="text1">右区人数</view>
 | |
| 				<view class="text2">{{ achieveData.rightCount || 0 }}</view>
 | |
| 			</view>
 | |
| 		</view>
 | |
| 
 | |
| 
 | |
| 	</view>
 | |
| 
 | |
| </template>
 | |
| 
 | |
| <script>
 | |
| 	import {
 | |
| 		getPlaceNewAddAchieve,
 | |
| 		getYjList
 | |
| 	} from "@/config/distribute.js";
 | |
| 	export default {
 | |
| 		
 | |
| 		data() {
 | |
| 			return {
 | |
| 				index: 0,
 | |
| 				show: false,
 | |
| 				achieveData: {},
 | |
| 
 | |
| 				whatMounth: '',
 | |
| 				yjType: 1,
 | |
| 				yjName: "全部",
 | |
| 				showType: false,
 | |
| 				selMounthList: [],
 | |
| 				yjTypeList: [],
 | |
| 				yearShow:false,
 | |
| 				whatYear:"",
 | |
| 				selYearList:[{
 | |
| 					value: 0,
 | |
| 					label: new Date().getFullYear()-1,
 | |
| 				},{
 | |
| 					value: 1,
 | |
| 					label: new Date().getFullYear(),
 | |
| 				}],
 | |
| 				mounthList: [{
 | |
| 						value: 1,
 | |
| 						label: 1 + '月',
 | |
| 					},
 | |
| 					{
 | |
| 						value: 2,
 | |
| 						label: 2 + '月',
 | |
| 					},
 | |
| 					{
 | |
| 						value: 3,
 | |
| 						label: 3 + '月',
 | |
| 					},
 | |
| 					{
 | |
| 						value: 4,
 | |
| 						label: 4 + '月',
 | |
| 					},
 | |
| 					{
 | |
| 						value: 5,
 | |
| 						label: 5 + '月',
 | |
| 					},
 | |
| 					{
 | |
| 						value: 6,
 | |
| 						label: 6 + '月',
 | |
| 					},
 | |
| 					{
 | |
| 						value: 7,
 | |
| 						label: 7 + '月',
 | |
| 					},
 | |
| 					{
 | |
| 						value: 8,
 | |
| 						label: 8 + '月',
 | |
| 					},
 | |
| 					{
 | |
| 						value: 9,
 | |
| 						label: 9 + '月',
 | |
| 					},
 | |
| 					{
 | |
| 						value: 10,
 | |
| 						label: 10 + '月',
 | |
| 					},
 | |
| 					{
 | |
| 						value: 11,
 | |
| 						label: 11 + '月',
 | |
| 					},
 | |
| 					{
 | |
| 						value: 12,
 | |
| 						label: 12 + '月'
 | |
| 					},
 | |
| 				],
 | |
| 			}
 | |
| 		},
 | |
| 		created() {
 | |
| 			
 | |
| 			this.getMounth()
 | |
| 			this.getYjList()
 | |
| 			setTimeout(() => {
 | |
| 				this.getPlaceNewAddAchieve()
 | |
| 			}, 50)
 | |
| 		},
 | |
| 		methods: {
 | |
| 			
 | |
| 			goDetail(index) {
 | |
| 				uni.navigateTo({
 | |
| 					url:'/pages/performanceEchart/index?ifDetail='+index
 | |
| 				})
 | |
| 			},
 | |
| 			getYjList() {
 | |
| 				getYjList().then(res => {
 | |
| 					this.yjTypeList = [res.data]
 | |
| 				})
 | |
| 			},
 | |
| 			changeYear(e){
 | |
| 				this.whatYear =  this.selYearList[e.detail.value].label
 | |
| 				this.getPlaceNewAddAchieve()
 | |
| 			},
 | |
| 			bindPickerChange(e) {
 | |
| 				this.whatMounth = e.detail.value + 1
 | |
| 				this.getPlaceNewAddAchieve()
 | |
| 			},
 | |
| 			bindType(e) {
 | |
| 				this.yjType = e.value[0].value
 | |
| 				this.yjName = e.value[0].label
 | |
| 				this.showType = false
 | |
| 				this.getPlaceNewAddAchieve()
 | |
| 			},
 | |
| 			// 获取当前年/月
 | |
| 			getMounth() {
 | |
| 				this.whatMounth = new Date().getMonth() + 1
 | |
| 				let selMounth = []
 | |
| 				this.mounthList.forEach((item) => {
 | |
| 					// if (item.value <= this.whatMounth) {
 | |
| 						// selMounth.push(item)
 | |
| 					// }
 | |
| 					selMounth.push(item)
 | |
| 				})
 | |
| 				this.selMounthList = selMounth
 | |
| 				this.whatYear = new Date().getFullYear()
 | |
| 				
 | |
| 			},
 | |
| 			getPlaceNewAddAchieve() {
 | |
| 				getPlaceNewAddAchieve({
 | |
| 					monthType: this.whatMounth,
 | |
| 					achievementType: this.yjType,
 | |
| 					year:this.whatYear
 | |
| 				}).then((res) => {
 | |
| 					this.achieveData = res.data;
 | |
| 				});
 | |
| 			}
 | |
| 
 | |
| 		},
 | |
| 	}
 | |
| </script>
 | |
| 
 | |
| <style lang="scss" scoped>
 | |
| 	::v-deep .uni-picker {
 | |
| 		width: 100%;
 | |
| 	}
 | |
| 
 | |
| 	.select-flexs {
 | |
| 
 | |
| 		border: 1rpx solid #EEEEEE;
 | |
| 		border-radius: 15rpx;
 | |
| 		// width: 232rpx;
 | |
| 		padding: 20rpx 19rpx;
 | |
| 		display: flex;
 | |
| 		align-items: center;
 | |
| 		justify-content: space-between;
 | |
| 	}
 | |
| 
 | |
| 	.flexs {
 | |
| 		display: flex;
 | |
| 		// justify-content: space-between;
 | |
| 		border-radius: 30rpx 30rpx 0 0;
 | |
| 		background-color: #fff;
 | |
| 	}
 | |
| 
 | |
| 	.title {
 | |
| 		padding: 10rpx 0;
 | |
| 		margin-top: 10rpx;
 | |
| 	}
 | |
| 
 | |
| 	.width-auto {
 | |
| 		background-color: #fff;
 | |
| 		padding: 0 22rpx;
 | |
| 		width: 690rpx;
 | |
| 		margin: 0 auto;
 | |
| 		padding-bottom: 20rpx;
 | |
| 	}
 | |
| 
 | |
| 	.listrefor {
 | |
| 		color: #FFFFFF;
 | |
| 		border-radius: 10rpx;
 | |
| 		padding: 32rpx 21rpx;
 | |
| 		margin-top: 25rpx;
 | |
| 		display: flex;
 | |
| 		justify-content: space-between;
 | |
| 
 | |
| 		.flex_item:nth-child(1) {
 | |
| 			width: 40%;
 | |
| 		}
 | |
| 
 | |
| 		.flex_item:nth-child(2) {
 | |
| 			width: 35%;
 | |
| 		}
 | |
| 
 | |
| 		.flex_item:nth-child(3) {
 | |
| 			width: 25%;
 | |
| 		}
 | |
| 
 | |
| 		.text1 {
 | |
| 			font-size: 28rpx;
 | |
| 		}
 | |
| 
 | |
| 		.text2 {
 | |
| 			font-size: 30rpx;
 | |
| 			font-weight: bold;
 | |
| 			margin-top: 30rpx;
 | |
| 		}
 | |
| 	}
 | |
| 
 | |
| 	.bg1 {
 | |
| 		background: linear-gradient(180deg, #FC7C7C 0%, #F65757 100%);
 | |
| 	}
 | |
| 
 | |
| 	.bg2 {
 | |
| 		background: linear-gradient(180deg, #FF9354 0%, #FF7F36 100%);
 | |
| 	}
 | |
| 
 | |
| 	.bg3 {
 | |
| 		background: linear-gradient(180deg, #677AF9 0%, #697BF2 100%);
 | |
| 	}
 | |
| </style> |