lancer 2 jaren geleden
bovenliggende
commit
34bf78180d
3 gewijzigde bestanden met toevoegingen van 1040 en 94 verwijderingen
  1. +300
    -22
      pages/center/Piabodata/StaffAnalysis.vue
  2. +738
    -70
      pages/center/Piabodata/Theteamcompared.vue
  3. +2
    -2
      utils/http.js

+ 300
- 22
pages/center/Piabodata/StaffAnalysis.vue Bestand weergeven

@@ -2,13 +2,13 @@
<view>
<view class="boxtittab">
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 0 }" @click="tabtimetap(0)">今日</view>
<view :class="{ activecllasscet: activeTotal == 4 }" @click="tabtimetap(4)">近七天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 1 }" @click="tabtimetap(1)">昨日</view>
<view :class="{ activecllasscet: activeTotal == 5 }" @click="tabtimetap(5)">近15天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 2 }" @click="tabtimetap(2)">近一周</view>
<view :class="{ activecllasscet: activeTotal == 6 }" @click="tabtimetap(6)">近30天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3)">自定义</view>
@@ -16,8 +16,8 @@
</view>
<view class="timepick">
<view class="timepicktime">
<view>毛丫丫</view>
<view class="timepicktime" @click="chiocStaff(0)">
<view>{{staff1.label}}</view>
<view>
<image class="Underimg" src="../../../static/images/Underimg.png" mode=""></image>
</view>
@@ -28,8 +28,8 @@
</view>
<view style="font-size:26rpx;text-indent: 12rpx;">对比</view>
</view>
<view class="timepicktime" v-if="timepickpickisshow">
<view>毛丫丫2</view>
<view class="timepicktime" v-if="timepickpickisshow" @click="chiocStaff(1)">
<view>{{staff2.label}}</view>
<view>
<image class="Underimg" src="../../../static/images/Underimg.png" mode=""></image>
</view>
@@ -42,8 +42,8 @@
<view class="title1" style="flex: 1;">接待量</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
<view class="heji" v-if="timepickpickisshow">{{staff2.label}}:50</view>
<view class="heji">{{staff1.label}}:25</view>
</view>
<view class="danwei">来访(人)</view>
<view class="uchaserbox">
@@ -63,23 +63,23 @@
<view class="title">
<view class="title1" style="flex: 1;">接待客户</view>
<view class="title3" style="flex: 1;">
<view class="title3-box" style="width: 40%;">
<!-- <view class="title3-box" style="width: 40%;" @click="tabtimetap1(0)">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 0 }">有效录音</view>
</view>
<view class="title3-box" style="width: 40%;">
<view class="title3-box" style="width: 40%;"@click="tabtimetap1(1)">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 1 }">录音时长</view>
</view>
</view> -->
</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
<view class="heji" v-if="timepickpickisshow">{{staff2.label}}:50</view>
<view class="heji">{{staff1.label}}:25</view>
</view>
<view class="danwei">来访(人)</view>
<view class="uchaserbox">
<qiun-data-charts
type="line"
:chartData="lineOptsect"
:chartData="lineOptsect1"
background="none"
:ontouch="true"
canvasId="wangxiaohuaerlingeryilingwuyibhh"
@@ -104,9 +104,12 @@
</view>
</view>
<!-- <u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar> -->
<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>
<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>
<!-- 选择客户的选择框 -->
<u-select v-model="staffShow" :list="staffList" @confirm="staffSelectCallback" :default-value='selindex'></u-select>
<u-select v-model="staffShow1" :list="staffList1" @confirm="staffSelectCallback" :default-value='selindex'></u-select>
</view>
</template>
<script>
@@ -115,8 +118,26 @@
return {
timepickpickisshow:false,
totalTimeShow: false,
activeTotal:0,
activeTotal2:0,
activeTotal:4,
activeTotal2:1,
// 楼盘id
houseId:'',
staffList:[],
staffList1:[],
staffShow:false,
staffShow1:false,
staff1:{
value:'',
label:''
},
staff2:{
value:'',
label:'平均'
},
lastStartDate:'',
lastEndDate :'',
selindex:[0],
choseStaffFlag:false,
lineOptsect:{
"categories": ["2016","2017","2018","2019","2020","2021"],
"series": [
@@ -130,6 +151,19 @@
}
]
},
lineOptsect1:{
"categories": ["2016","2017","2018","2019","2020","2021"],
"series": [
{
"name": "成交量1",
"data": [35,8,25,37,4,20]
},
{
"name": "成交量2",
"data": [40,18,45,44,10,60]
}
]
},
chartData:{
"categories": ["维度1","维度2","维度3","维度4","维度5","维度6"],
"series": [
@@ -143,25 +177,269 @@
},
onLoad: function(options) { },
onLoad: function(options) {
// 获取楼盘id
this.houseId = uni.getStorageSync('buildingID').id;
// this.buildingname = uni.getStorageSync('buildingID').name;
// 请求接口获取所有置业顾问员工的列表
this.getStaffList()
},
methods: {
//是否对比
checkboxChange(){
this.timepickpickisshow=!this.timepickpickisshow;
this.staff2.value=''
this.staff2.label='平均'
this.getreception()
this.getRecordList()
this.getAwardList()
},
// 点击员工对比
chiocStaff(idx){
if(idx==0){
// 当选择了第一个的时候
this.choseStaffFlag=false
this.staffShow=true
}else{
this.choseStaffFlag=true
this.staffShow1=true
}
},
// 获取员工列表
getStaffList(){
this.$u.post('/cusLvStatistics/selectAllAccountIdByHouseId',{houseId:this.houseId})
.then(res=>{
// console.log(res,'123')
this.staffList=[]
this.staffList1=[]
res.map(item=>{
let obj={}
obj.value=item.accountId
obj.label=item.name
this.staffList.push(obj)
})
this.staffList1=[...this.staffList]
this.staffList1.unshift({
value:'',
label:'平均'
})
this.staff1=this.staffList[0]
this.getreception()
this.getRecordList()
this.getAwardList()
})
},
// 获取接待量数据
getreception(){
this.$u.post('/cusLvStatistics/employeeAnalysisReception',{
userA:this.staff1.value,
userB:this.staff2.value,
houseId:this.houseId,
timeType:this.lastEndDate?null:this.activeTotal+'',
lastEndDate:this.lastEndDate,
lastStartDate:this.lastStartDate
})
.then(res=>{
console.log(res)
let first=res.first
let second=res.second
this.lineOptsect.categories=[]
if(!this.timepickpickisshow){
this.lineOptsect.series=[
{
name:'成交量',
data:[]
}
]
first.map(item=>{
this.lineOptsect.categories.push(item.statDate.slice(5,10))
this.lineOptsect.series[0].data.push(item.sumCustomer)
})
}else{
this.lineOptsect.series=[
{
name:'成交量1',
data:[]
},
{
"name": "成交量2",
"data": []
}
]
first.map(item=>{
this.lineOptsect.categories.push(item.statDate.slice(5,10))
this.lineOptsect.series[0].data.push(item.sumCustomer)
})
second.map(item=>{
this.lineOptsect.series[1].data.push(item.sumCustomer)
})
}

})
},
// 获取有效录音
async getRecordList(){
// 当选择有效录音时
let res=null
if(this.activeTotal2==0){
res= await this.$u.post('/cusLvStatistics/employeeAnalysisEffectiveRecording',{
userA:this.staff1.value,
userB:this.staff2.value,
houseId:this.houseId,
timeType:this.lastEndDate?null:this.activeTotal+'',
lastEndDate:this.lastEndDate,
lastStartDate:this.lastStartDate
})
}else{
res= await this.$u.post('/cusLvStatistics/employeeAnalysisRecordingTime',{
userA:this.staff1.value,
userB:this.staff2.value,
houseId:this.houseId,
timeType:this.lastEndDate?null:this.activeTotal+'',
lastEndDate:this.lastEndDate,
lastStartDate:this.lastStartDate
})
}
// console.log(res)
let first=res.first
let second=res.second
this.lineOptsect1.categories=[]
if(!this.timepickpickisshow){
this.lineOptsect1.series=[
{
name:'成交量',
data:[]
}
]
first.map(item=>{
this.lineOptsect1.categories.push(item.statDate.slice(5,10))
this.lineOptsect1.series[0].data.push(item.sumDuration)
})
}else{
this.lineOptsect1.series=[
{
name:'成交量1',
data:[]
},
{
"name": "成交量2",
"data": []
}
]
first.map(item=>{
this.lineOptsect1.categories.push(item.statDate.slice(5,10))
this.lineOptsect1.series[0].data.push(item.sumDuration)
})
second.map(item=>{
this.lineOptsect1.series[1].data.push(item.sumDuration)
})
}
},
// 获取销奖能力
getAwardList(){
this.$u.post('/cusLvStatistics/employeeAnalysisLevel1Fraction',{
userA:this.staff1.value,
userB:this.staff2.value,
houseId:this.houseId,
timeType:this.lastEndDate?null:this.activeTotal+'',
lastEndDate:this.lastEndDate,
lastStartDate:this.lastStartDate
})
.then(res=>{
console.log(res)
let first=res.first
let second=res.second
this.chartData.categories=[]
if(!this.timepickpickisshow){
this.chartData.series=[
{
name:'分数',
data:[]
}
]
first.map(item=>{
this.chartData.categories.push(item.name)
this.chartData.series[0].data.push(item.sumCustomer)
})
}else{
this.chartData.series=[
{
name:'分数1',
data:[]
},
{
"name": "分数2",
"data": []
}
]
first.map(item=>{
this.chartData.categories.push(item.name)
this.chartData.series[0].data.push(item.sumCustomer)
})
second.map(item=>{
this.chartData.series[1].data.push(item.sumCustomer)
})
}
})
},
tabtimetap(index){
// console.log(idx)
// this.activeTotal=idx
if (index == 3) {
this.totalTimeShow = true;
} else {
this.activeTotal = index;
this.lastEndDate=''
this.lastStartDate=''
// 获取数据
this.getreception()
this.getRecordList()
this.getAwardList()
}
},
tabtimetap1(index){
this.activeTotal2 = index;
// 调用方法
this.getRecordList()
},
//自定义时间
totalTimeChange(e) {
console.log(e.startDate, e.endDate)
this.activeTotal=3;
this.lastEndDate=e.endDate
this.lastStartDate=e.startDate
// 获取数据
this.getreception()
this.getRecordList()
this.getAwardList()
},
staffSelectCallback(e){
if(this.choseStaffFlag){
// 第二个客户
// console.log(e,'第二个')
this.staff2=e[0]
}else{
// 第一个客户
// console.log(e,'第一个')
this.staff1=e[0]
}
if(this.staff1.label==this.staff2.label){
uni.showToast({
title:'请勿选择重复',
icon:'none'
})
this.staff2.label='请选择'
// this.staff2.label='平均'
// this.staff2.value=''
return
}else{
// 获取数据
this.getreception()
this.getRecordList()
this.getAwardList()
}

},
},
}


+ 738
- 70
pages/center/Piabodata/Theteamcompared.vue Bestand weergeven

@@ -2,31 +2,75 @@
<view class="box">
<view class="boxtittab">
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 0 }" @click="tabtimetap(0)">今日</view>
<view :class="{ activecllasscet: activeTotal == 4 }" @click="tabtimetap(4)">近七天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 1 }" @click="tabtimetap(1)">昨日</view>
<view :class="{ activecllasscet: activeTotal == 5 }" @click="tabtimetap(5)">近15天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 2 }" @click="tabtimetap(2)">近一周</view>
<view :class="{ activecllasscet: activeTotal == 6 }" @click="tabtimetap(6)">近30天</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3)">自定义</view>
</view>
</view>
<view class="timepick">
<view class="timepicktime" @click="chiocStaff(0)">
<view>{{staff1.label}}</view>
<view>
<image class="Underimg" src="../../../static/images/Underimg.png" mode=""></image>
</view>
</view>
<view class="timepickpick" v-if="staff1.value">
<view @click="checkboxChange()" style="width: 40rpx;height:40rpx;border: 1rpx solid #E0E0E0;">
<image v-if="timepickpickisshow" style="width: 40rpx;height: 40rpx;" src="../../../static/images/xuanzhong.png" mode=""></image>
</view>
<view style="font-size:26rpx;text-indent: 12rpx;">对比</view>
</view>
<view class="timepicktime" v-if="timepickpickisshow" @click="chiocStaff(1)">
<view>{{staff2.label}}</view>
<view>
<image class="Underimg" src="../../../static/images/Underimg.png" mode=""></image>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1">接待量(TOP10)</view>
<view class="title1" style="flex: 1;">接待量</view>
<view class="title3" style="flex: 1;">
<view class="title3-box" @click="tabtimetap1(0)">
<view style="height: 42rpx;" :class="{ activecltab: eharTab.active1 == 0 }">排名</view>
</view>
<view class="title3-box" @click="tabtimetap1(1)">
<view style="height: 42rpx;" :class="{ activecltab: eharTab.active1 == 1 }">趋势</view>
</view>
<!-- <view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 2 }">表格</view>
</view> -->
</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
<view class="heji">{{!staff1.value?'团队':staff1.label}}:{{newTeam1||0}}</view>
<view class="heji">{{!staff2.value?'均值':staff2.label}}:{{newAvg1||0}}</view>
</view>
<view class="jindu">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="" v-if=" eharTab.active1 == 1 ">
<view class="danwei">来访(人)</view>
<view class="uchaserbox">
<qiun-data-charts
type="line"
:chartData="lineOptsect1"
background="none"
:ontouch="true"
canvasId="wangxiaohuaerlingeryilingwuyibbb"
:canvas2d="true"
/>
</view>
</view>
<view class="jindu" v-if=" eharTab.active1 == 0 ">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo1" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
@@ -40,59 +84,98 @@
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1">接待时长(TOP10)</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="jindu">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#4FC78F" :percent="item.zxl"></u-line-progress>
<view class="title">
<view class="title1" style="flex: 1;">接待时长</view>
<view class="title3" style="flex: 1;">
<view class="title3-box" @click="tabtimetap2(0)">
<view style="height: 42rpx;" :class="{ activecltab: eharTab.active2 == 0 }">排名</view>
</view>
<view class="title3-box" @click="tabtimetap2(1)">
<view style="height: 42rpx;" :class="{ activecltab: eharTab.active2 == 1 }">趋势</view>
</view>
<!-- <view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 2 }">表格</view>
</view> -->
</view>
</view>
<view class="hejibox">
<view class="heji">{{!staff1.value?'团队':staff1.label}}:{{newTeam2||0}}</view>
<view class="heji">{{!staff2.value?'均值':staff2.label}}:{{newAvg2||0}}</view>
</view>
<view class="" v-if=" eharTab.active2 == 1 ">
<view class="danwei">来访(人)</view>
<view class="uchaserbox">
<qiun-data-charts
type="line"
:chartData="lineOptsect2"
background="none"
:ontouch="true"
canvasId="wangxiaohuaerlingeryilingwuyibb"
:canvas2d="true"
/>
</view>
</view>
<view class="jindu" v-if=" eharTab.active2 == 0 ">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo2" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#FBA448" :percent="item.zxl"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1" style="flex: 1;">销讲排名(TOP10)</view>
<view class="title3" style="flex: 1;">
<view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 0 }">执行率</view>
<view class="title">
<view class="title1" style="flex: 1;">销奖执行率</view>
<view class="title3" style="flex: 1;">
<view class="title3-box" @click="tabtimetap3(0)">
<view style="height: 42rpx;" :class="{ activecltab: eharTab.active3 == 0 }">排名</view>
</view>
<view class="title3-box" @click="tabtimetap3(1)">
<view style="height: 42rpx;" :class="{ activecltab: eharTab.active3 == 1 }">趋势</view>
</view>
<!-- <view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 2 }">表格</view>
</view> -->
</view>
</view>
<view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 1 }">得分</view>
<view class="hejibox">
<view class="heji">{{!staff1.value?'团队':staff1.label}}:{{newTeam3||0}}</view>
<view class="heji">{{!staff2.value?'均值':staff2.label}}:{{newAvg3||0}}</view>
</view>
</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="jindu">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#9B6BDF" :percent="item.zxl"></u-line-progress>
<view class="" v-if=" eharTab.active3 == 1 ">
<view class="danwei">来访(人)</view>
<view class="uchaserbox">
<qiun-data-charts
type="line"
:chartData="lineOptsect4"
background="none"
:ontouch="true"
canvasId="wangxiaohuaerlingeryilingwuyib"
:canvas2d="true"
/>
</view>
</view>
<view class="jindu" v-if=" eharTab.active3 == 0 ">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo3" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#FBA448" :percent="item.zxl"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<!-- <view class="single">
<view class="title">
<view class="title1" style="flex: 1;">顾问排名(TOP10)</view>
<view class="title3" style="flex: 1;">
@@ -120,7 +203,7 @@
</view>
</view>
</view>
</view>
</view> -->
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
@@ -152,25 +235,49 @@
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="title">
<view class="title1">禁忌执行率(TOP10)</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
</view>
<view class="jindu">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#E6625B" :percent="item.zxl"></u-line-progress>
<view class="title">
<view class="title1" style="flex: 1;">禁忌执行率</view>
<view class="title3" style="flex: 1;">
<view class="title3-box" @click="tabtimetap4(0)">
<view style="height: 42rpx;" :class="{ activecltab: eharTab.active4 == 0 }">排名</view>
</view>
<view class="title3-box" @click="tabtimetap4(1)">
<view style="height: 42rpx;" :class="{ activecltab: eharTab.active4 == 1 }">趋势</view>
</view>
<!-- <view class="title3-box">
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 2 }">表格</view>
</view> -->
</view>
</view>
<view class="hejibox">
<view class="heji">{{!staff1.value?'团队':staff1.label}}:{{newTeam4||0}}</view>
<view class="heji">{{!staff2.value?'均值':staff2.label}}:{{newAvg4||0}}</view>
</view>
<view class="" v-if=" eharTab.active4 == 1 ">
<view class="danwei">来访(人)</view>
<view class="uchaserbox">
<qiun-data-charts
type="line"
:chartData="lineOptsect4"
background="none"
:ontouch="true"
canvasId="wangxiaohuaerlingeryilingwuyi"
:canvas2d="true"
/>
</view>
</view>
<view class="jindu" v-if=" eharTab.active4 == 0 ">
<view class="jindu-box" v-for="(item,index) in newlisttabinfo4" :key="index">
<view class="jindu-boxche">
<view class="jindu-name">{{item.name.substring(0, 4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
<u-line-progress height="24" :show-percent="false" active-color="#FBA448" :percent="item.zxl"></u-line-progress>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}%</view>
</view>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
@@ -198,6 +305,10 @@
</view>
<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>
<!-- 选择部门的选择框 -->
<u-select v-model="staffShow" :list="staffList" @confirm="staffSelectCallback" :default-value='selindex'></u-select>
<u-select v-model="staffShow1" :list="staffList1" @confirm="staffSelectCallback" :default-value='selindex'></u-select>
</view>
</template>

@@ -208,15 +319,114 @@
export default {
data() {
return {
activeTotal: 2,
activeTotal2: 0,
activeTotal: 4,
eharTab:{
active1: 0,
active2:0,
active3:0,
active4:0,
},
bocindex:0,
timepickpickisshow:false,
totalTimeShow: false,
newlisttabinfo:[
// 楼盘id
houseId:'',
staffList:[],
staffList1:[],
staffShow:false,
staffShow1:false,
staff1:{
value:'',
label:''
},
staff2:{
value:'',
label:'平均'
},
lastStartDate:'',
lastEndDate :'',
selindex:[0],
choseStaffFlag:false,
lineOptsect1:{
"categories": ["2016","2017","2018","2019","2020","2021"],
"series": [
{
"name": "成交量1",
"data": [35,8,25,37,4,20]
},
{
"name": "成交量2",
"data": [40,18,45,44,10,60]
}
]
},
lineOptsect2:{
"categories": ["2016","2017","2018","2019","2020","2021"],
"series": [
{
"name": "成交量1",
"data": [35,8,25,37,4,20]
},
{
"name": "成交量2",
"data": [40,18,45,44,10,60]
}
]
},
lineOptsect3:{
"categories": ["2016","2017","2018","2019","2020","2021"],
"series": [
{
"name": "成交量1",
"data": [35,8,25,37,4,20]
},
{
"name": "成交量2",
"data": [40,18,45,44,10,60]
}
]
},
lineOptsect4:{
"categories": ["2016","2017","2018","2019","2020","2021"],
"series": [
{
"name": "成交量1",
"data": [35,8,25,37,4,20]
},
{
"name": "成交量2",
"data": [40,18,45,44,10,60]
}
]
},
newlisttabinfo1:[
{name:'接待量',zxl:'10'},
{name:'平均执行率',zxl:'50'},
{name:'接待客户',zxl:'80'},
],
newlisttabinfo2:[
{name:'接待量',zxl:'10'},
{name:'平均执行率',zxl:'50'},
{name:'接待客户',zxl:'80'},
],
newlisttabinfo3:[
{name:'接待量',zxl:'10'},
{name:'平均执行率',zxl:'50'},
{name:'接待客户',zxl:'80'},
],
newlisttabinfo4:[
{name:'接待量',zxl:'10'},
{name:'平均执行率',zxl:'50'},
{name:'接待客户',zxl:'80'},
],
newTeam1:'',
newAvg1:'',
newTeam2:'',
newAvg2:'',
newTeam3:'',
newAvg3:'',
newTeam4:'',
newAvg4:'',
chartData:{
"categories": ["维度1","维度2","维度3","维度4","维度5","维度6"],
"series": [
@@ -225,26 +435,125 @@
"data": [90,110,165,195,187,172]
}
]
},
chartData2:{
"categories": ["维度1","维度2","维度3","维度4","维度5","维度6"],
"series": [
{
"name": "成交量",
"data": [90,110,165,195,187,172]
}
]
}
};
},
onLoad() {
// 获取楼盘id
this.houseId = uni.getStorageSync('buildingID').id;
// this.buildingname = uni.getStorageSync('buildingID').name;
// 请求接口获取所有置业顾问员工的列表
this.getSectionList()
},
methods: {
//是否对比
checkboxChange(){
this.timepickpickisshow=!this.timepickpickisshow;
this.staff2.label='平均'
this.staff2.value=''
// this.getreception()
// this.getRecordList()
// this.getAwardList()
},
// 获取部门列表
getSectionList(){
this.$u.post('/cusLvStatistics/findAllDeptIdByHouseId',{houseId:this.houseId})
.then(res=>{
// console.log(res,'123')
this.staffList=[]
this.staffList1=[]
res.map(item=>{
let obj={}
obj.value=item.deptId
obj.label=item.deptName
this.staffList.push(obj)
})
this.staffList1=[...this.staffList]
this.staffList.unshift({
value:'',
label:'全部'
})
this.staffList1.unshift({
value:'',
label:'平均'
})
this.staff1=this.staffList[0]
// 团队对比接待量
this.receptionCountList(0,1)
})
},
// 点击部门对比
chiocStaff(idx){
if(idx==0){
// 当选择了第一个的时候
this.choseStaffFlag=false
this.staffShow=true
}else{
this.choseStaffFlag=true
this.staffShow1=true
}
},
//时间切换
tabtimetap(index) {
if (index == 3) {
this.totalTimeShow = true;
} else {
this.activeTotal = index;
this.lastEndDate=''
this.lastStartDate=''
// 获取数据
// this.getreception()
// this.getRecordList()
// this.getAwardList()
}
},
// 接待量
tabtimetap1(idx){
this.eharTab.active1=idx
// 调用方法
this.receptionCountList(idx,1)
// this.getRecordList()
},
// 接待时长
tabtimetap2(idx){
this.eharTab.active2=idx
console.log(2,idx)
// 调用方法
// this.getRecordList()
},
tabtimetap3(idx){
this.eharTab.active3=idx
console.log(3,idx)
// 调用方法
// this.getRecordList()
},
tabtimetap4(idx){
console.log(4,idx)
this.eharTab.active4=idx
// 调用方法
// this.getRecordList()
},
//自定义时间
totalTimeChange(e) {
console.log(e.startDate, e.endDate)
this.activeTotal=3;
this.lastEndDate=e.endDate
this.lastStartDate=e.startDate
// 获取数据
// this.getreception()
// this.getRecordList()
// this.getAwardList()
},
//指标执行率分析tab
tapspagek2(index) {
@@ -261,7 +570,325 @@
uni.navigateTo({
url:'/pages/center/Piabodata/selectTeam'
})
}
},
staffSelectCallback(e){
if(this.choseStaffFlag){
// 第二个客户
// console.log(e,'第二个')
this.staff2=e[0]
}else{
// 第一个客户
// console.log(e,'第一个')
// 当选择全部时
if(!e.value){
this.timepickpickisshow=false
this.staff2.label='平均'
this.staff2.value=''
}
this.staff1=e[0]
}
if(this.staff1.label==this.staff2.label){
uni.showToast({
title:'请勿选择重复',
icon:'none'
})
this.staff2.label='请选择'
// this.staff2.label='平均'
// this.staff2.value=''
return
}else{
// 获取数据
// this.getreception()
// this.getRecordList()
// this.getAwardList()
}
},
// 团队对比接待量
// receptionCountList(idx){
// this.$u.post('/cusLvStatistics/teamAnalysisReception',{
// // userA:this.staff1.value,
// // userB:this.staff2.value,
// deptIds:[this.staff1.value,this.staff2.value].filter(item=>item).join(','),
// showRank:idx,
// houseId:this.houseId,
// timeType:this.lastEndDate?null:this.activeTotal+'',
// lastEndDate:this.lastEndDate,
// lastStartDate:this.lastStartDate
// })
// .then(res=>{
// // console.log(res)
// let result=res.result
// this.newTeam=res.avg[0]
// this.newAvg=res.avg[1]
// if(idx==0){
// // 当选择的是牌名时
// // 处理数据
// // 先处理牌名数据,需要进行判断全部还是单个
// // 当为全部时
// this.newlisttabinfo=[]
// // 当选择全部时
// if(!this.staff1.value&&!this.staff2.value){
// // console.log(1)
// result[0].map(item=>{
// let obj={}
// obj.name=item.deptName
// obj.zxl=item.receptionCount
// this.newlisttabinfo.push(obj)
// })
// }
// // 当选择只有一个时
// else if(this.staff1.value&&!this.staff2.value){
// // console.log(2)
// result[0].map(item=>{
// let obj={}
// obj.name=item.deptName
// obj.zxl=item.receptionCount
// this.newlisttabinfo.push(obj)
// })
// // 判断是否显示平均
// // 如果显示对比
// if(this.timepickpickisshow){
// result[1].map(item=>{
// let obj={}
// obj.name='平均'
// obj.zxl=item.receptionCount
// this.newlisttabinfo.push(obj)
// })
// }
// }else{
// // console.log(3)
// // 当两个都选择的时候
// result[0].map(item=>{
// let obj={}
// obj.name=item.deptName
// obj.zxl=item.receptionCount
// this.newlisttabinfo.push(obj)
// })
// result[1].map(item=>{
// let obj={}
// obj.name=item.deptName
// obj.zxl=item.receptionCount
// this.newlisttabinfo.push(obj)
// })
// }
// }else{
// // 当选择趋势时
// // this.lineOptsect={
// // categories:[],
// // series:[]
// // }
// let allobj={
// categories:[],
// series:[]
// }
// // 先处理时间
// // 当选择全部时
// if(!this.staff1.value&&!this.staff2.value){
// // console.log(1)
// result.map((item,idx)=>{
// let obj={}
// obj.name=item[0].deptName
// obj.data=[]
// item.map(item1=>{
// // 时间的处理
// if(idx==0){
// allobj.categories.push(item1.statDate.slice(5,10))
// }
// obj.data.push(item1.receptionCount)
// })
// allobj.series.push(obj)
// })
// }
// // 当选择只有一个时
// else if(this.staff1.value&&!this.staff2.value){
// // console.log(2)
// let obj={}
// obj.data=[]
// obj.name=result[0][0].deptName
// result[0].map(item=>{
// allobj.categories.push(item.statDate.slice(5,10))
// obj.data.push(item.receptionCount)
// })
// allobj.series.push(obj)
// // 判断是否显示平均
// // 如果显示对比
// if(this.timepickpickisshow){
// let obj={}
// obj.data=[]
// obj.name='平均'
// result[1].map(item=>{
// obj.data.push(item.receptionCount)
// })
// allobj.series.push(obj)
// }
// }else{
// // console.log(3)
// // 当两个都选择的时候
// let obj={}
// let obj1={}
// obj.data=[]
// obj1.data=[]
// obj.name=result[0][0].deptName
// obj1.name=result[1][0].deptName
// result[0].map(item=>{
// allobj.categories.push(item.statDate.slice(5,10))
// obj.data.push(item.receptionCount)
// })
// result[1].map(item=>{
// obj1.data.push(item.receptionCount)
// })
// allobj.series.push(obj)
// allobj.series.push(obj1)
// }
// this.lineOptsect=allobj
// }
// })
// },
// 接待时长
receptionCountList(idx,index){
this.$u.post('/cusLvStatistics/teamAnalysisReception',{
// userA:this.staff1.value,
// userB:this.staff2.value,
deptIds:[this.staff1.value,this.staff2.value].filter(item=>item).join(','),
showRank:idx,
houseId:this.houseId,
timeType:this.lastEndDate?null:this.activeTotal+'',
lastEndDate:this.lastEndDate,
lastStartDate:this.lastStartDate
})
.then(res=>{
// console.log(res)
let result=res.result
this['newTeam'+index]=res.avg[0]
this['newAvg'+index]=res.avg[1]
if(idx==0){
// 当选择的是牌名时
// 处理数据
// 先处理牌名数据,需要进行判断全部还是单个
// 当为全部时
this['newlisttabinfo'+index]=[]
// 当选择全部时
if(!this.staff1.value&&!this.staff2.value){
// console.log(1)
result[0].map(item=>{
let obj={}
obj.name=item.deptName
obj.zxl=item.receptionCount
this['newlisttabinfo'+index].push(obj)
})
}
// 当选择只有一个时
else if(this.staff1.value&&!this.staff2.value){
// console.log(2)
result[0].map(item=>{
let obj={}
obj.name=item.deptName
obj.zxl=item.receptionCount
this['newlisttabinfo'+index].push(obj)
})
// 判断是否显示平均
// 如果显示对比
if(this.timepickpickisshow){
result[1].map(item=>{
let obj={}
obj.name='平均'
obj.zxl=item.receptionCount
this['newlisttabinfo'+index].push(obj)
})
}
}else{
// console.log(3)
// 当两个都选择的时候
result[0].map(item=>{
let obj={}
obj.name=item.deptName
obj.zxl=item.receptionCount
this['newlisttabinfo'+index].push(obj)
})
result[1].map(item=>{
let obj={}
obj.name=item.deptName
obj.zxl=item.receptionCount
this['newlisttabinfo'+index].push(obj)
})
}
}else{
// 当选择趋势时
this['lineOptsect'+index]={}
// this.lineOptsect={
// categories:[],
// series:[]
// }
let allobj={
categories:[],
series:[]
}
// 先处理时间
// 当选择全部时
if(!this.staff1.value&&!this.staff2.value){
// console.log(1)
result.map((item,idx)=>{
let obj={}
obj.name=item[0].deptName
obj.data=[]
item.map(item1=>{
// 时间的处理
if(idx==0){
allobj.categories.push(item1.statDate.slice(5,10))
}
obj.data.push(item1.receptionCount)
})
allobj.series.push(obj)
})
}
// 当选择只有一个时
else if(this.staff1.value&&!this.staff2.value){
// console.log(2)
let obj={}
obj.data=[]
obj.name=result[0][0].deptName
result[0].map(item=>{
allobj.categories.push(item.statDate.slice(5,10))
obj.data.push(item.receptionCount)
})
allobj.series.push(obj)
// 判断是否显示平均
// 如果显示对比
if(this.timepickpickisshow){
let obj={}
obj.data=[]
obj.name='平均'
result[1].map(item=>{
obj.data.push(item.receptionCount)
})
allobj.series.push(obj)
}
}else{
// console.log(3)
// 当两个都选择的时候
let obj={}
let obj1={}
obj.data=[]
obj1.data=[]
obj.name=result[0][0].deptName
obj1.name=result[1][0].deptName
result[0].map(item=>{
allobj.categories.push(item.statDate.slice(5,10))
obj.data.push(item.receptionCount)
})
result[1].map(item=>{
obj1.data.push(item.receptionCount)
})
allobj.series.push(obj)
allobj.series.push(obj1)
}
console.log(allobj)
// return
this['lineOptsect'+index].series=allobj.series
this['lineOptsect'+index].categories=allobj.categories
}
})
},
}
};
</script>
@@ -272,4 +899,45 @@
background: #FAFAFA;
padding-bottom: 60rpx;
}
// 对比时间切换
.timepick{
width: 100%;
height: 90rpx;
display: flex;
align-items: center;
background: #FAFAFA;
}
.timepicktime{
width: 260rpx;
height: 50rpx;
border: 1rpx solid #E0E0E0;
margin-left: 30rpx;
display: flex;
background: #FFFFFF;
}
.timepicktime>view:nth-of-type(1){
width: 210rpx;
height: 100%;
line-height: 50rpx;
font-size: 26rpx;
font-weight: 400;
text-align: center;
}
.timepicktime>view:nth-of-type(2){
width: 50rpx;
height: 100%;
border-left: 1px solid #E0E0E0;
}
.timepickpick{
width: 110rpx;
height: 50rpx;
margin-left: 30rpx;
display: flex;
align-items: center;
}
.Underimg{
width: 50rpx;
height:50rpx;
margin-top: -2rpx;
}
</style>

+ 2
- 2
utils/http.js Bestand weergeven

@@ -1,5 +1,5 @@
const baseUrl = 'http://121.42.63.138:9091/autoSR/api';// 测试站
// const baseUrl = 'http://192.168.31.163:8080/autoSR/api'; // 长龙
// const baseUrl = 'http://121.42.63.138:9091/autoSR/api';// 测试站
const baseUrl = 'http://192.168.31.161:8080/autoSR/api'; // 长龙
// const baseUrl = 'http://192.168.31.130:8080/autoSR/api'; // 佳豪
// const baseUrl = 'http://10.2.1.104:8081/autoSR/api'; // 刘敏
// const baseUrl = 'https://zkgj.quhouse.com/api'; // 质控正式


Laden…
Annuleren
Opslaan