forked from angelo/web-retail-h5
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> |