308 lines
		
	
	
		
			7.0 KiB
		
	
	
	
		
			Vue
		
	
	
	
			
		
		
	
	
			308 lines
		
	
	
		
			7.0 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>
 | 
						|
				<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>
 |