wangxiaohua před 3 roky
rodič
revize
c6f2110826
4 změnil soubory, kde provedl 179 přidání a 79 odebrání
  1. +3
    -3
      pages/center/Piabodata/StaffAnalysis.vue
  2. +160
    -64
      pages/center/Piabodata/TrendAnalysis.vue
  3. +15
    -11
      pages/center/Piabodata/index.vue
  4. +1
    -1
      uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js

+ 3
- 3
pages/center/Piabodata/StaffAnalysis.vue Zobrazit soubor

@@ -316,7 +316,7 @@
]
first.map(item=>{
this.lineOptsect.categories.push(item.statDate.slice(5,10))
this.lineOptsect.series[0].data.push(item.sumCustomer||0)
this.lineOptsect.series[0].data.push(item.receptionCount||0)
})
}else{
this.lineOptsect.series=[
@@ -331,10 +331,10 @@
]
first.map(item=>{
this.lineOptsect.categories.push(item.statDate.slice(5,10))
this.lineOptsect.series[0].data.push(item.sumCustomer)
this.lineOptsect.series[0].data.push(item.receptionCount)
})
second.map(item=>{
this.lineOptsect.series[1].data.push(item.sumCustomer)
this.lineOptsect.series[1].data.push(item.receptionCount)
})
}
// console.log(this.lineOptsect,'1')


+ 160
- 64
pages/center/Piabodata/TrendAnalysis.vue Zobrazit soubor

@@ -45,9 +45,17 @@
<view class="boxzonglan" style="min-height: 100rpx;">
<view class="zonglantit">简报</view>
<view class="zonglanbox">
<view class="grid" v-for="(item,index) in numlist" :key="index">
<view class="audonum">{{item.name}}</text></view>
<view class="num">{{item.num}}</view>
<view class="grid" v-for="(item,index) in numlist" :key="index" style="width: 80%;margin-left: 10%;">
<view class="audonum">{{item.name}}</view>
<view class="num" style="display: flex;">
<view class="" style="width: 35%;">
{{item.num}}
</view>
<view class="comparesize" v-if="compareFlag&&timepickpickisshow">
<text style="margin-right: 10rpx;">对比:{{item.num1}} </text>
<text :style="{color:item.num2*1>0?'red':'green'}">{{item.num2}}</text>
</view>
</view>
</view>
</view>
</view>
@@ -72,14 +80,14 @@
<view class="chart">
<view style="display: flex;justify-content:center;padding-left: 30rpx;padding-right: 30rpx;">
<!-- <view style="display: flex;justify-content:center;padding-left: 30rpx;padding-right: 30rpx;">
<view class="title2-che">执行率
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image>
</view>
</view>
</view> -->
<view style="display: flex;justify-content:center;padding-left: 30rpx;padding-right: 30rpx;" v-if="guwenshow">
<view class="title2-che">选择顾问
<view style="display: flex;justify-content:center;padding-left: 30rpx;padding-right: 30rpx;" v-if="guwenshow&&lopanobj.name" @click="oninputtap()">
<view class="title2-che" style="width: 220rpx;">{{lopanobj.name}}
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image>
</view>
<!-- <view>选择顾问:</view>
@@ -118,9 +126,9 @@
</view>
</view>
<view style="display: flex;align-items: center;border-bottom: 1px solid #C9C9C9;height: 80rpx;"
v-if="Selecttuandui">
<view>团队选择:</view>
<view style="display: flex;align-items: center;height: 80rpx;"
v-if="Selecttuandui&&Selecttuanduiobj.name" @click="oninputtap4()">
<!-- <view>团队选择:</view>
<view style="width:75%;">
<input @click="oninputtap4()" v-model="Selecttuanduiobj.name" type="text" disabled="true"
:border="border" placeholder="请选择" />
@@ -128,6 +136,9 @@
<view>
<image src="https://qufang.oss-cn-beijing.aliyuncs.com/upload/icon/xcx/jjycrm/qf/more.png"
style="width:12rpx;height:23rpx;margin-left: 16rpx;">
</view> -->
<view class="title2-che" style="width: 220rpx;">{{Selecttuanduiobj.name}}
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image>
</view>
</view>
@@ -151,42 +162,34 @@
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single">
<view class="single" v-if="timepickpickisshow">
<view class="title">
<view class="title1">对比报表</view>
</view>
<view class="table">
<view class="tr">
<view class="th" style="width: 30%;border-right:1px solid #E0E0E0;">时间</view>
<view class="th" style="width: 20%;border-right:1px solid #E0E0E0;">时段1</view>
<view class="th" style="width: 20%;border-right:1px solid #E0E0E0;">时段2</view>
<view class="th" style="width: 30%;">变化</view>
</view>
<view class="tr">
<view class="td" style="width: 30%;border-right:1px solid #E0E0E0;">06-20 VS 06-10</view>
<view class="td" style="width: 20%;border-right:1px solid #E0E0E0;">500</view>
<view class="td" style="width: 20%;border-right:1px solid #E0E0E0;">60</view>
<view class="td" style="width: 30%;">+500(+19.83%)</view>
</view>
<view class="tr">
<view class="td" style="width: 30%;border-right:1px solid #E0E0E0;">06-20 VS 06-10</view>
<view class="td" style="width: 20%;border-right:1px solid #E0E0E0;">500</view>
<view class="td" style="width: 20%;border-right:1px solid #E0E0E0;">60</view>
<view class="td" style="width: 30%;">+500(+19.83%)</view>
</view>
<view class="tr">
<view class="td" style="width: 30%;border-right:1px solid #E0E0E0;">06-20 VS 06-10</view>
<view class="td" style="width: 20%;border-right:1px solid #E0E0E0;">500</view>
<view class="td" style="width: 20%;border-right:1px solid #E0E0E0;">60</view>
<view class="td" style="width: 30%;">+500(+19.83%)</view>
</view>
<view class="tr">
<view class="td" style="width: 30%;border-right:1px solid #E0E0E0;">06-20 VS 06-10</view>
<view class="td" style="width: 20%;border-right:1px solid #E0E0E0;">500</view>
<view class="td" style="width: 20%;border-right:1px solid #E0E0E0;">60</view>
<view class="td" style="width: 30%;">+500(+19.83%)</view>
<view class="table" v-if="!guwenFlag">
<view v-for="(item,index) in tableDate" :key="index">
<view class="tr">
<view v-for="(item1,index1) in item" :key="index" style="width: 100%;">
<view v-if="index1<item.length-1||index==0" class="td" style="border-right:1px solid #E0E0E0;">{{item1}}</view>
<view v-if="index>0&&index1==item.length-1" class="td" style="border-right:1px solid #E0E0E0;" :style="{color:item1*1>0?'red':'green'}">{{item1==0?'--':item1+'%'}}</view>
</view>
</view>
</view>
</view>
</view>
<view class="table" v-if="guwenFlag">
<scroll-view style="" scroll-x="true" >
<view v-for="(item,index) in tableDate" :key="index">
<view class="tr">
<view v-for="(item1,index1) in item" :key="index1" style="width: 100%;">
<view v-if="index==1&&index1>0" class="td" :style="{color:item1*1>0?'red':'green'}" style="border-right:1px solid #E0E0E0;">{{item1==0?'--':item1+'%'}}</view>
<view v-else-if="index>1&&index1>0" class="td" style="border-right:1px solid #E0E0E0;">{{item1+'%'}}</view>
<view v-else class="td" style="border-right:1px solid #E0E0E0;">{{item1}}</view>
</view>
</view>
</view>
</scroll-view>
</view>
</view>
<view style="width: 100%;height: 60rpx;"></view>
<view v-if="Showhiddenunits">
@@ -216,10 +219,11 @@
export default {
data() {
return {
compareFlag:false,
numlist:[
{name:'接待量',num:'10'},
{name:'平均执行率',num:'10'},
{name:'接待客户',num:'10'},
{name:'接待量',num:'10',num1:'0',num2:'0'},
{name:'平均执行率',num:'10',num1:'0',num2:'0'},
{name:'接待时长',num:'10',num1:'0',num2:'0'},
],
activeTotal: 0, //时间下标
newactiveTotal: 0, //tab下标
@@ -285,7 +289,9 @@
timepickpickisshow: false,
sheartime1: "",
sheartime2: "",
intervaltime: 0
intervaltime: 0,
tableDate:[],
guwenFlag:false
};

},
@@ -354,7 +360,21 @@
this.$u.post("/cusLvStatistics/lyAndcp", this.pamect).then(data => {
this.pamect.lastStartDate = data.lastStartDate;
this.pamect.lastEndDate = data.lastEndDate;

this.numlist[0].num=data.startSumCustomer
this.numlist[1].num=data.startFraction;
this.numlist[2].num=data.startSumDuration;
if(data.endSumDuration!=null){
this.compareFlag=true
// return
this.numlist[0].num1=data.endSumCustomer
this.numlist[1].num1=data.endFraction;
this.numlist[2].num1=data.endSumDuration;
this.numlist[0].num2=data.contrastSumCustomer
this.numlist[1].num2=data.contrastFraction +'%';
this.numlist[2].num2=data.contrastSumDuration;
}else{
this.compareFlag=false
}
this.sheartime1 = data.lastStartDate.substring(5, 10) + "--" + data.lastEndDate.substring(5,
10);
this.sheartime2 = '请选择';
@@ -577,6 +597,28 @@
})
that.lineOptsect.series[1].data = data.firstValue.map(item => item.fraction);
that.lineOptsect.series[0].data = data.lastValue.map(item => item.fraction)
that.guwenFlag=false
// // 处理表格数据
let arr=[
['时间','时段一','时段二','变化']
// {
// time:'时间',
// time1:'时段一',
// time2:'时段二',
// compare:'变化'
// },
]
that.lineOptsect.categories.map((item,index)=>{
let newarr=[item,data.firstValue[index].fraction,data.lastValue[index].fraction,data.contrast[index].data]
// obj.time=item
// obj.time1=data.firstValue[index].fraction
// obj.time2=data.lastValue[index].fraction
// obj.compare=data.contrast[index].data
// arr.push(obj)
arr.push(newarr)
})
// console.log(arr)
that.tableDate=arr
}
});
},
@@ -587,46 +629,59 @@
categories: [],
series: []
};
this.linetype = "line";
this.$u.post("/cusLvStatistics/teamOrOneValueShow", this.pamect).then(data => {
this.linetype = "radar";
this.$u.post("/cusLvStatistics/accFirstLevelContrast", this.pamect).then(data => {
// return
if (this.pamect.showStatus == 0) {
that.lineOptsect = {
categories: [],
series: [{
name: '起始时间',
name: '时段一',
data: [],
color: '#7ED3F4'
}]
}
data.lastValue.forEach((item, sdf) => {
that.lineOptsect.categories.push(item.statDate.substring(5, 10))
data.firstList.forEach((item, sdf) => {
that.lineOptsect.categories.push(item.name)
that.lineOptsect.series[0].data.push(data.headerList[sdf].total)
})
that.lineOptsect.series[0].data = data.lastValue.map(item => item.fraction);
// that.lineOptsect.series[0].data = data.lastValue.map(item => item.fraction);
} else {
// 当有对比的时候
that.lineOptsect = {
categories: [],
series: [{
name: '起始时间',
name: '时段一',
data: [],
color: '#7ED3F4'
},
{
name: '对比时间',
name: '时段二',
data: [],
color: '#FF7070'
},
]
}
data.firstValue.forEach((item, sdf) => {
data.lastValue.forEach((child, zxc) => {
if (sdf == zxc) {
that.lineOptsect.categories.push(item.statDate.substring(5,
10) + 'vs' + child.statDate.substring(5, 10))
}
})
data.headerList.forEach((item, sdf) => {
that.lineOptsect.categories.push(item.name)
that.lineOptsect.series[0].data.push(data.firstList[sdf].total)
that.lineOptsect.series[1].data.push(data.secondList[sdf].total)
})
that.lineOptsect.series[1].data = data.firstValue.map(item => item.fraction);
that.lineOptsect.series[0].data = data.lastValue.map(item => item.fraction)
// return
// // 处理表格数据
that.guwenFlag=true
let arr=[]
arr[0]=['时间',...that.lineOptsect.categories]
arr[1]=['变化']
arr[2]=['时段一']
arr[3]=['时段二']
// console.log(arr)
data.firstList.map((item,index)=>{
arr[1].push(item.total)
arr[2].push(data.secondList[index].total)
arr[3].push(data.thirdList[index].total)
})
that.tableDate=arr
}
});
},
@@ -745,6 +800,18 @@
})
this.lineOptsect.series[1].data = data.firstList.map(item => item.avgExecutionRate);
this.lineOptsect.series[0].data = data.lastList.map(item => item.avgExecutionRate)
let that=this
this.guwenFlag=false
// // 处理表格数据
let arr=[
['时间','时段一','时段二','变化']
]
that.lineOptsect.categories.map((item,index)=>{
let newarr=[item,data.firstList[index].avgExecutionRate,data.lastList[index].avgExecutionRate,data.contrast[index].data]
arr.push(newarr)
})
// console.log(arr)
that.tableDate=arr
}
})
},
@@ -961,6 +1028,29 @@
.fraction);
that.lineOptsect.series[0].data = data.lastValue.receptionStatList.map(item => item
.fraction)
that.guwenFlag=false
// 团队处理数据
// // 处理表格数据
let arr=[
['时间',data.firstValue.deptName,data.lastValue.deptName,'变化']
// {
// time:'时间',
// time1:'时段一',
// time2:'时段二',
// compare:'变化'
// },
]
that.lineOptsect.categories.map((item,index)=>{
let newarr=[item,data.firstValue.receptionStatList[index].fraction,data.lastValue.receptionStatList[index].fraction,data.contrast.receptionStatList[index].data]
// obj.time=item
// obj.time1=data.firstValue[index].fraction
// obj.time2=data.lastValue[index].fraction
// obj.compare=data.contrast[index].data
// arr.push(obj)
arr.push(newarr)
})
// console.log(arr)
that.tableDate=arr
}
}
});
@@ -1195,4 +1285,10 @@
margin-top: 10rpx;
}
}
.comparesize{
flex: 1;
font-size: 24rpx;
color: #666666;
margin-top: 10rpx;
}
</style>

+ 15
- 11
pages/center/Piabodata/index.vue Zobrazit soubor

@@ -68,7 +68,7 @@
</view>
<view class="swiper-box">
<u-tabs-swiper ref="tabs" font-size="30" :bold="true" swiper-width="600" :current="bocindex" @change="tapspagek2()"
inactive-color="#b1b1b1" active-color="#008ef2" :list="newlistoj" :is-scroll="true">
inactive-color="#b1b1b1" active-color="#008ef2" :list="newlistoj1" :is-scroll="true">
</u-tabs-swiper>
</view>
<!-- <view class="hejibox">
@@ -104,8 +104,8 @@
</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
<view class="heji">合计:{{allnum||0}}</view>
<view class="heji">均值:{{allavg||0}}</view>
</view>
<view class="danwei">来访(人)</view>
<view class="uchaserbox">
@@ -136,8 +136,8 @@
</view>
</view>
<view class="hejibox">
<view class="heji">合计:50</view>
<view class="heji">均值:25</view>
<view class="heji">合计:{{allnum1||0}}</view>
<view class="heji">均值:{{allavg1||0}}</view>
</view>
<view class="danwei">来访(人)</view>
<view class="uchaserbox">
@@ -246,6 +246,10 @@
staffShow1:false,
lastStartDate:'',
lastEndDate :'',
allnum:'',
allavg:'',
allnum1:'',
allavg1:'',
totalTimeShow: false,
activeTab: 0,
numlist:[
@@ -281,13 +285,13 @@
}
]
},
newlistoj:[
newlistoj:[],
newlistoj1:[
{name:"接待量",id:1},
{name:"平均执行率",id:2},
{name:"接待客户",id:3},
{name:"录音时长",id:5},
],
bocindex:0,
newlisttabinfo:[
{name:'接待量',zxl:'10'},
@@ -458,8 +462,8 @@
lastStartDate:this.lastStartDate
})
.then(res=>{
this.newTeam3=res.avg[0]
this.newAvg3=res.avg[1]
this.allnum1=res.avg[0]
this.allavg1=res.avg[1]
// console.log(res)
let first=res.first
let second=res.second
@@ -493,8 +497,8 @@
.then(res=>{
// console.log(res)
let result=res.result
this.newTeam=res.avg[0]
this.newAvg=res.avg[1]
this.allnum=res.avg[0]
this.allavg=res.avg[1]
// 当选择趋势时
this.lineOptsect1={}
let allobj={


+ 1
- 1
uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js Zobrazit soubor

@@ -310,7 +310,7 @@ module.exports = {
"fontColor": "#666666",
"fontSize": 13,
"rotateLabel": false,
"itemCount": 7,
"itemCount": 3,
"boundaryGap": "center",
"disableGrid": true,
"gridColor": "#CCCCCC",


Načítá se…
Zrušit
Uložit