wangxiaohua 2 years ago
parent
commit
7269fbb543
6 changed files with 177 additions and 158 deletions
  1. +2
    -2
      config.js
  2. +156
    -144
      pages/center/Piabodata/TrendAnalysis.vue
  3. +2
    -2
      pages/center/Piabodata/index.vue
  4. +15
    -7
      pages/center/records/index.vue
  5. +0
    -1
      pages/index/index.vue
  6. +2
    -2
      utils/http.js

+ 2
- 2
config.js View File

@@ -2,9 +2,9 @@
* 小程序配置文件
*/
// 此处主机域名修改成腾讯云解决方案分配的域名
// var host = 'http://121.42.63.138:9091/autoSR/api'; // 测试站
var host = 'http://121.42.63.138:9091/autoSR/api'; // 测试站
// var host = 'http://192.168.31.163:8080/autoSR/api'; // 长龙
var host = 'http://192.168.31.128:8080/autoSR/api'; // 佳豪
// var host = 'http://192.168.31.128:8080/autoSR/api'; // 佳豪
// var host = 'http://10.2.1.104:8081/autoSR/api'; // 刘敏
// var host = 'https://zkgj.quhouse.com/api'; // 质控正式
// var host = 'https://hfju.com/api'; // 数智正式


+ 156
- 144
pages/center/Piabodata/TrendAnalysis.vue View File

@@ -33,7 +33,7 @@
</view>
</view>
</view>
<view class="timeduibi">
<view class="timeshow">数据起始时间:<text style="color: #333333;">{{kanbanlist.kaishitime}}</text></view>
<view class="timeshow" v-if="kanbanlist.duibitime.length!=0">
@@ -45,16 +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" style="width: 80%;margin-left: 10%;">
<view class="audonum">{{item.name}}</view>
<view class="grid" v-for="(item,index) in numlist" :key="index" style="width: 100%;">
<view class="audonum" v-if="item.name=='接待时长'">{{item.name}}/分</view>
<view class="audonum" v-else>{{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 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>
@@ -77,31 +78,17 @@
<view :class="{ activecllasscet2: newactiveTotal == 4 }" @click="tabxuanxiangtap(4)">销讲二级</view>
</view>
</view>
<view class="chart">
<!-- <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 style="display: flex;justify-content:center;padding-left: 30rpx;padding-right: 30rpx;" v-if="guwenshow&&lopanobj.name" @click="oninputtap()">
<view style="display: flex;justify-content:center;padding-left: 30rpx;padding-right: 30rpx;margin-top: 16rpx;"
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>
<view style="width:75%;">
<input @click="oninputtap()" v-model="lopanobj.name" type="text" disabled="true"
:border="border" placeholder="请选择" />
</view>
<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>
<view style="padding-bottom: 20rpx;align-items: center;" v-if="Selectlevel">

<view style="padding: 30rpx;padding-bottom: 20rpx;align-items: center;" v-if="Selectlevel">
<view style="display: flex;align-items: center;border-bottom: 1px solid #C9C9C9;height: 80rpx;">
<view>选择一级:</view>
<view style="width:75%;">
@@ -125,26 +112,17 @@
</view>
</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="请选择" />
</view>
<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 style="display: flex;align-items: center;height: 80rpx;justify-content: center;" v-if="Selecttuandui&&Selecttuanduiobj.name"
@click="oninputtap4()">
<view class="title2-che" style="width: 220rpx;">{{Selecttuanduiobj.name}}
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image>
</view>
</view>


<view class="single">
<view class="danwei">销讲词执行率</view>
<view class="danwei" style="margin-top: 10rpx;">销讲词执行率</view>
<view class="uchaserbox" v-if="lineOptsect.series.length!=0">
<qiun-data-charts :style="!showCanvas?'display:none':''" :type="linetype" :chartData="lineOptsect"
background="none" :ontouch="true" canvasId="wangxiaohuaerlingeryilingwuyibao"
@@ -158,38 +136,43 @@
<view style="text-align: center;width: 100%;margin-top: 20rpx;color: #999999;">暂无数据</view>
</view>
</view>
</view>
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view>
<view class="single" v-if="timepickpickisshow">
<view class="title">
<view class="title1">对比报表</view>
</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 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 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 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">
@@ -209,21 +192,35 @@
</u-select>
</view>
<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>
<newcalendar v-model="totalTimeShow2" :planNum='intervaltime' mode="date" @change="totalTimeChange2"></newcalendar>
<newcalendar v-model="totalTimeShow2" :planNum='intervaltime' mode="date" @change="totalTimeChange2">
</newcalendar>
</view>

</template>
<script>
import newcalendar from '@/components/newcalendar/newcalendar.vue';

export default {
data() {
return {
compareFlag:false,
numlist:[
{name:'接待量',num:'10',num1:'0',num2:'0'},
{name:'平均执行率',num:'10',num1:'0',num2:'0'},
{name:'接待时长',num:'10',num1:'0',num2:'0'},
compareFlag: false,
numlist: [{
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下标
@@ -290,8 +287,8 @@
sheartime1: "",
sheartime2: "",
intervaltime: 0,
tableDate:[],
guwenFlag:false
tableDate: [],
guwenFlag: false
};

},
@@ -356,24 +353,26 @@
}
this.activeTotal = 8;
},
init() {
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
this.numlist[0].num = data.startSumCustomer
this.numlist[1].num = data.startFraction;

this.numlist[2].num = Math.floor(data.startSumDuration/60) || 0;
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.numlist[0].num1 = data.endSumCustomer
this.numlist[1].num1 = data.endFraction;
this.numlist[2].num1 = Math.floor(data.endSumDuration/60) || 0;
this.numlist[0].num2 = data.contrastSumCustomer
this.numlist[1].num2 = data.contrastFraction + '%';
this.numlist[2].num2 = Math.floor(data.contrastSumDuration/60) || 0;
} else {
this.compareFlag = false
}
this.sheartime1 = data.lastStartDate.substring(5, 10) + "--" + data.lastEndDate.substring(5,
10);
@@ -597,10 +596,10 @@
})
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
that.guwenFlag = false
// // 处理表格数据
let arr=[
['时间','时段一','时段二','变化']
let arr = [
['时间', '时段一', '时段二', '变化']
// {
// time:'时间',
// time1:'时段一',
@@ -608,8 +607,10 @@
// compare:'变化'
// },
]
that.lineOptsect.categories.map((item,index)=>{
let newarr=[item,data.firstValue[index].fraction,data.lastValue[index].fraction,data.contrast[index].data]
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
@@ -618,7 +619,7 @@
arr.push(newarr)
})
// console.log(arr)
that.tableDate=arr
that.tableDate = arr
}
});
},
@@ -669,19 +670,19 @@
})
// return
// // 处理表格数据
that.guwenFlag=true
let arr=[]
arr[0]=['时间',...that.lineOptsect.categories]
arr[1]=['变化']
arr[2]=['时段一']
arr[3]=['时段二']
that.guwenFlag = true
let arr = []
arr[0] = ['时间', ...that.lineOptsect.categories]
arr[1] = ['变化']
arr[2] = ['时段一']
arr[3] = ['时段二']
// console.log(arr)
data.firstList.map((item,index)=>{
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
that.tableDate = arr
}
});
},
@@ -800,18 +801,19 @@
})
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 that = this
this.guwenFlag = false
// // 处理表格数据
let arr=[
['时间','时段一','时段二','变化']
let arr = [
['时间', '时段一', '时段二', '变化']
]
that.lineOptsect.categories.map((item,index)=>{
let newarr=[item,data.firstList[index].avgExecutionRate,data.lastList[index].avgExecutionRate,data.contrast[index].data]
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
that.tableDate = arr
}
})
},
@@ -1028,29 +1030,32 @@
.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.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
]
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
// 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
}
}
});
@@ -1070,7 +1075,7 @@
}
</script>
<style lang="scss" scoped>
.title2-che{
.title2-che {
width: 178rpx;
height: 48rpx;
background: #FFFFFF;
@@ -1083,7 +1088,8 @@
text-indent: 12rpx;
margin-left: 35rpx;
position: relative;
.righttochoose{

.righttochoose {
width: 18rpx;
height: 24rpx;
position: absolute;
@@ -1091,8 +1097,10 @@
right: 12rpx;
}
}

.table {
border: 0px solid darkgray;

.tr {
display: flex;
width: 100%;
@@ -1100,6 +1108,7 @@
height: 64rpx;
align-items: center;
border-bottom: 1px solid #E0E0E0;

.td {
text-align: center;
font-size: 24rpx;
@@ -1108,6 +1117,7 @@
height: 64rpx;
line-height: 64rpx;
}

.th {
height: 64rpx;
text-align: center;
@@ -1118,21 +1128,22 @@
}
}
}

.activecllasscet2 {
color: #2671E2;
color: #2671E2;
border-bottom: 2px solid #2671E2;
}
.timeduibi{
.timeduibi {
width: 100%;
background: #FFFFFF;
padding-bottom: 36rpx;
padding-bottom: 10rpx;

.timeshow {
color: #666666;
width: 100%;
height: 50rpx;
height: 26rpx;
font-size: 26rpx;
font-size: 28rpx;
line-height: 50rpx;
text-indent: 30rpx;
}
@@ -1248,7 +1259,7 @@
}
}


.boardbox {
width: 100%;
@@ -1285,7 +1296,8 @@
margin-top: 10rpx;
}
}
.comparesize{

.comparesize {
flex: 1;
font-size: 24rpx;
color: #666666;


+ 2
- 2
pages/center/Piabodata/index.vue View File

@@ -420,7 +420,6 @@
lastStartDate:this.lastStartDate
})
.then(res=>{
// console.log(res)
// 接待量
this.numlist[0].num=res.receptionCount||0
// 接待客户
@@ -428,7 +427,8 @@
// 执行率
this.numlist[2].num=(res.fraction||0)+'%'
// 录音时长
this.numlist[3].num=res.sumDuration||0
this.numlist[3].num=util.formatSecond(res.sumDuration)||0
})
},
// 获取团队列表


+ 15
- 7
pages/center/records/index.vue View File

@@ -208,15 +208,23 @@
customerId:item.id,
}
this.$u.post("/corpus/findByPage", parames).then(res => {
let newobj = res[0];
if(res[0].recordDuration>360){
uni.navigateTo({
url: `/pages/mine/details2?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(item)}&stateisshow=${"2"}`
if(res==null){
uni.showToast({
icon: "none",
title: "暂无音频"
})
return
}else{
uni.navigateTo({
url: `/pages/mine/details?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(item)}&stateisshow=${"1"}`
})
let newobj = res[0];
if(res[0].recordDuration>360){
uni.navigateTo({
url: `/pages/mine/details2?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(item)}&stateisshow=${"2"}`
})
}else{
uni.navigateTo({
url: `/pages/mine/details?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(item)}&stateisshow=${"1"}`
})
}
}
})
}


+ 0
- 1
pages/index/index.vue View File

@@ -14,7 +14,6 @@
<view class="Workcard" v-if="Whetheroffline==true">
<view class="Workcard-box">
<view class="Workcardimg">
<view class="Workcardimg1">
<view v-if="percentage>20" class="bar" :style="{width : percentage + '%' }"></view>
<view v-if="percentage<20" class="bar1" :style="{width : percentage + '%' }"></view>


+ 2
- 2
utils/http.js View File

@@ -1,6 +1,6 @@
// const baseUrl = 'http://121.42.63.138:9091/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.128:8080/autoSR/api'; // 佳豪
// const baseUrl = 'http://192.168.31.128:8080/autoSR/api'; // 佳豪
// const baseUrl = 'http://10.2.1.104:8081/autoSR/api'; // 刘敏
// const baseUrl = 'https://zkgj.quhouse.com/api'; // 质控正式
// const baseUrl = 'https://hfju.com/api'; // 数智正式


Loading…
Cancel
Save