lancer il y a 3 ans
Parent
révision
a7a7a904f0
11 fichiers modifiés avec 217 ajouts et 77 suppressions
  1. +3
    -3
      config.js
  2. +39
    -33
      pages/center/Piabodata/Employeesstatistics.vue
  3. +5
    -12
      pages/center/Piabodata/index.vue
  4. +30
    -13
      pages/center/records/index.vue
  5. +2
    -0
      pages/center/records/recordSearch.vue
  6. +48
    -4
      pages/index/index.vue
  7. +80
    -4
      pages/mine/details2.vue
  8. +5
    -4
      pages/mine/equipment/index.vue
  9. BIN
      static/images/allimg.png
  10. +2
    -1
      uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js
  11. +3
    -3
      utils/http.js

+ 3
- 3
config.js Voir le fichier

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




+ 39
- 33
pages/center/Piabodata/Employeesstatistics.vue Voir le fichier

@@ -53,24 +53,20 @@
<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="title1" style="flex: 1;">销讲执行率排行(TOP10)</view>
</view>
<view class="hejisan">
<view class="sanbox1" style="width: 35%;">
<view class="text1-1">合计</view>
<view class="text1-2">{{newlisttabinfo2.total}}</view>
</view>
<view class="sanbox1" style="width: 40%;">
<view class="text1-1">顾问</view>
<view class="text1-2">{{newlisttabinfo2.count}}</view>
<view class="text1-2">{{newlisttabinfo3.count}}</view>
</view>
<view class="sanbox1" style="width: 25%;">
<view class="text1-1">人均录音时长</view>
<view class="text1-2">{{newlisttabinfo2.avg}}</view>
<view class="text1-1">人均执行率</view>
<view class="text1-2">{{newlisttabinfo3.avg}}</view>
</view>
</view>
<view class="jindu" style="height: 360rpx;overflow: auto;">
<view v-if="newlisttabinfo2.result.length!=0" class="jindu-box" v-for="(item,index) in newlisttabinfo2.result" :key="index">
<view v-if="newlisttabinfo3.result.length!=0" class="jindu-box" v-for="(item,index) in newlisttabinfo3.result" :key="index">
<view class="jindu-boxche">
<view class="jindu-name" v-if="item.name">{{item.name.substring(0,4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
@@ -79,29 +75,34 @@
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
<view v-if="newlisttabinfo2.result.length==0" style="width: 100%;text-align: center;margin-top: 60rpx;">
<view v-if="newlisttabinfo3.result.length==0" style="width: 100%;text-align: center;margin-top: 60rpx;">
暂无数据
</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="title1" style="flex: 1;">录音时长(TOP10)</view>
</view>
<view class="hejisan">
<view class="sanbox1" style="width: 35%;">
<view class="text1-1">合计</view>
<view class="text1-2">{{newlisttabinfo2.total}}</view>
</view>
<view class="sanbox1" style="width: 40%;">
<view class="text1-1">顾问</view>
<view class="text1-2">{{newlisttabinfo3.count}}</view>
<view class="text1-2">{{newlisttabinfo2.count}}</view>
</view>
<view class="sanbox1" style="width: 25%;">
<view class="text1-1">人均执行率</view>
<view class="text1-2">{{newlisttabinfo3.avg}}</view>
<view class="text1-1">人均录音时长</view>
<view class="text1-2">{{newlisttabinfo2.avg}}</view>
</view>
</view>
<view class="jindu" style="height: 360rpx;overflow: auto;">
<view v-if="newlisttabinfo3.result.length!=0" class="jindu-box" v-for="(item,index) in newlisttabinfo3.result" :key="index">
<view v-if="newlisttabinfo2.result.length!=0" class="jindu-box" v-for="(item,index) in newlisttabinfo2.result" :key="index">
<view class="jindu-boxche">
<view class="jindu-name" v-if="item.name">{{item.name.substring(0,4)}}</view>
<view style="width: 440rpx;margin-left: 10rpx;">
@@ -110,7 +111,7 @@
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view>
</view>
</view>
<view v-if="newlisttabinfo3.result.length==0" style="width: 100%;text-align: center;margin-top: 60rpx;">
<view v-if="newlisttabinfo2.result.length==0" style="width: 100%;text-align: center;margin-top: 60rpx;">
暂无数据
</view>
</view>
@@ -272,10 +273,10 @@
staffStatisticsExecutionRateTop10(promse){
this.$u.post('/cusLvStatistics/staffStatisticsExecutionRateTop10',promse).then(res=>{
res.result.forEach(item=>{
item.zxl=item.data
item.zxl=item.data;
item.zxl1=item.data;
item.name=item.accountName
})
res.result=this.dealData(res.result)
this.newlisttabinfo3=res;
})
},
@@ -315,21 +316,26 @@
// 获取最大值
let num=Math.max.apply(Math, arr.map(function (o) { return o.zxl })) //结果:3
// console.log(num)
if(num>100){
// 获取最大值的下标
// let idx=arr.findIndex(item=>item.zxl==num)
// console.log(idx,123)
arr.map(item=>{
item.zxl1=Math.floor(item.zxl/num*100)
})
// console.log(arr)
return arr
}else{
arr.map(item=>{
item.zxl1=item.zxl
})
return arr
}
// if(num>100){
// // 获取最大值的下标
// // let idx=arr.findIndex(item=>item.zxl==num)
// // console.log(idx,123)
// arr.map(item=>{
// item.zxl1=Math.floor(item.zxl/num*100)
// })
// // console.log(arr)
// return arr
// }else{
// arr.map(item=>{
// item.zxl1=item.zxl
// })
// return arr
// }
arr.map(item=>{
item.zxl1=Math.floor(item.zxl/num*100)
})
return arr
},
}
};


+ 5
- 12
pages/center/Piabodata/index.vue Voir le fichier

@@ -78,7 +78,7 @@
</view> -->
<view class="danwei">{{danwei}} </view>
<view class="uchaserbox" >
<qiun-data-charts type="line" :chartData="lineOptsect" background="none" :ontouch="true"
<qiun-data-charts type="line" :chartData="lineOptsect" :opts="optionsobj" background="none" :ontouch="true"
canvasId="wangxiaohuaerlingilingwuyiba1" :canvas2d="true" />
</view>
</view>
@@ -93,15 +93,9 @@
<view class="title2-che" style="width: 220rpx;">{{team.label}}
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image>
</view>
<!-- <view class="title2-che">执行率
<image class="righttochoose" src="../../../static/images/righttochoose.png" mode=""></image>
</view> -->
</view>
</view>
<!-- <view class="hejibox">
<view class="heji">合计:{{allnum||0}}</view>
<view class="heji">均值:{{allavg||0}}</view>
</view> -->
<view class="danwei">单位(%)</view>
<view class="uchaserbox">
<qiun-data-charts type="line" :chartData="lineOptsect1" background="none" :ontouch="true"
@@ -130,7 +124,7 @@
</view> -->
<view class="danwei">单位(%)</view>
<view class="uchaserbox">
<qiun-data-charts type="line" :chartData="lineOptsect2" background="none" :ontouch="true"
<qiun-data-charts type="line" :chartData="lineOptsect2" background="none" :ontouch="true"
canvasId="wangxiaohuaerlingeryilingwuyibao" :canvas2d="true" />
</view>
</view>
@@ -330,7 +324,8 @@
Theteamcomparedisshow: false,
Groupcontrastisshow: false,
allechar: [],
allList: []
allList: [],
optionsobj:{}
};
},
onShow() {
@@ -632,8 +627,6 @@
})
}
this.bocindex = index;
// console.log(allobj)
// return
this.lineOptsect = allobj
},
tapspagek3(index) {


+ 30
- 13
pages/center/records/index.vue Voir le fichier

@@ -42,10 +42,12 @@
<!-- <view class="img">{{item.agentName.slice(0,1)}}</view> -->
<view class="name">{{item.agentName}}</view>
<view class="status" v-if="item.replaceReception==1">代接待</view>
<view style="margin-left: 6rpx;margin-top: 11rpx;">{{item.receptionStatusName || ''}}</view>
</view>
<view class="right" v-if="item.recording!=0">
<view style="margin-right: 6rpx;">{{item.validInvalidName||''}}</view>
<view v-if="methodsisshow==true">
<text style="color: red;" v-if="item.taboo==1">违禁接待</text>
<text v-if="item.taboo==1"> |</text>
@@ -76,7 +78,7 @@
</view>
</view>

<u-popup v-model="screenShow" mode="top" height="590">
<u-popup v-model="screenShow" mode="top" height="780">
<view class="screen">
<!-- 顾问选择 -->
<view class="screen-counselor">
@@ -88,18 +90,20 @@
<image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image>
</view>
</view>
<!-- 录音标示 -->
<!-- <view class="screen-record">
<view class="screen-record-text">录音标识</view>

<view class="screen-record">
<view class="screen-record-text">
录音标识
</view>
<view class="screen-record-tab">
<view :class="[screen.record==0?'screen-record-chose':'screen-record-nochose']" @click="screen.record=0">
有效录音
<view :class="[screen.validInvalid==0?'screen-record-chose':'screen-record-nochose']" @click="screenvisivalidInvalid(0)">
有效接待
</view>
<view :class="[screen.record==1?'screen-record-chose':'screen-record-nochose']" @click="screen.record=1">
无效录音
<view :class="[screen.validInvalid==1?'screen-record-chose':'screen-record-nochose']" @click="screenvisivalidInvalid(1)">
无效接待
</view>
</view>
</view> -->
</view>
<view class="screen-record">
<view class="screen-record-text">
标记顾问
@@ -191,8 +195,8 @@
agentId:'',//顾问id
record:'0',
markAdvisor:null,
visitRecord:null
visitRecord:null,
validInvalid:null
},
freeList:[],//顾问
recordList:[],
@@ -220,6 +224,9 @@
if(options.markAdvisor){
this.screen.markAdvisor=options.markAdvisor
}
if(options.validInvalid){
this.screen.validInvalid=options.validInvalid
}
},
onShow() {
this.userInfo = uni.getStorageSync('weapp_session_userInfo_data');
@@ -377,7 +384,8 @@
markAdvisor:this.screen.markAdvisor,
dateType:dateType,
recDurationInterval:recDurationInterval,
orderBy:orderBy
orderBy:orderBy,
validInvalid:this.screen.validInvalid
}
};
if(this.screen.agentId){
@@ -417,7 +425,8 @@
counselorName:'',
record:'0',
markAdvisor:null,
visitRecord:null
visitRecord:null,
validInvalid:null
}
this.screenShow=false;
this.nextPage=1;
@@ -438,6 +447,14 @@
this.screen.markAdvisor=i
}
},
screenvisivalidInvalid(i){
console.log(this.screen.validInvalid,i)
if(this.screen.validInvalid==i){
this.screen.validInvalid=null
}else{
this.screen.validInvalid=i
}
},
screensure(){
this.screenShow=false;
this.recordList=[];


+ 2
- 0
pages/center/records/recordSearch.vue Voir le fichier

@@ -11,9 +11,11 @@
<!-- <view class="img">{{item.agentName.slice(0,1)}}</view> -->
<view class="name">{{item.agentName}}</view>
<view class="status" v-if="item.replaceReception==1">代接待</view>
<view style="margin-left: 6rpx;margin-top: 11rpx;">{{item.receptionStatusName || ''}}</view>
</view>
<view class="right" v-if="item.recording!=0">
<view style="margin-right: 6rpx;">{{item.validInvalidName||''}}</view>
<view v-if="methodsisshow==true">
<text style="color: red;" v-if="item.taboo==1">违禁接待</text>
<text v-if="item.taboo==1"> |</text>


+ 48
- 4
pages/index/index.vue Voir le fichier

@@ -82,12 +82,25 @@


<view class="title">实时统计</view>
<!-- <view class="real-timebox">
<view class="timebox">
</view>
<view class="timebox">
</view>
</view> -->
<view class="real-timebox">
<view class="timebox">
<view class="real" @click="tapjumpreception('1')">
<view class="realnum">{{realtimeobj.receptionCount || 0}}</view>
<view class="realtext">接待量</view>
</view>
<view class="real" @click="tapjumpreception('6')">
<view class="realnum">{{realtimeobj.activeCustomer|| 0}}</view>
<view class="realtext">有效接待</view>
</view>
<view class="real" @click="tapjumpreception('2')">
<view class="realnum">{{realtimeobj.receivingCustomer || 0}}</view>
<view class="realtext">正在接待</view>
@@ -95,7 +108,7 @@
<view class="real" @click="tapjumpreception('4')">
<view class="realnum">{{realtimeobj.tagCustomer || 0}}</view>
<view class="realtext">未标顾问</view>
</view>
</view>
</view>
<view class="timebox">
<view class="real" @click="tapjumpreception('1')">
@@ -110,10 +123,14 @@
<view @click="prohibitedtap(1)" v-if="methodsisshow==true" class="realnum" style="color: red;" >{{realtimeobj.prohibitedCustomer || 0}}</view>
<view @click="prohibitedtap(1)" v-if="methodsisshow==true" class="realtext">违禁预警</view>
</view>

<view class="real">
<view class="realnum"></view>
<view class="realtext"></view>
</view>
</view>
</view>



<view class="title">本周工作</view>
@@ -123,10 +140,16 @@
<view class="realnum">{{Thisweekobj.receptionCount || 0}}</view>
<view class="realtext">接待量</view>
</view>
<view class="real" @click="tapjumpreception('7')">
<view class="realnum">{{Thisweekobj.activeCustomer|| 0}}</view>
<view class="realtext">有效接待</view>
</view>
<view class="real" @click="tapjumpreception('3')">
<view class="realnum">{{Thisweekobj.fraction || 0}}%</view>
<view class="realtext">平均执行率</view>
</view>
</view>
<view class="timebox">
<view class="real" @click="tapjumpreception('3')">
<view class="realnum">{{Thisweekobj.avgDuration|| 0}}</view>
<view class="realtext">平均接待时长</view>
@@ -135,8 +158,20 @@
<view class="realnum" style="color: red;" >{{Thisweekobj.prohibitedCustomer || 0}}</view>
<view class="realtext">违禁预警</view>
</view>
<view class="real">
<view class="realnum"></view>
<view class="realtext"></view>
</view>
</view>
</view>
<!-- <view class="real-timebox">
<view class="timebox">
</view>
</view> -->
<view class="title">常用功能</view>
@@ -158,7 +193,8 @@
<image v-if="item.name=='违禁记录'" class="commonly-img1" src="../../static/images/prohibited.png"
mode=""></image>
</view>
<view class="commonly-text">{{item.name}}</view>
<view v-if="item.name=='标记有效无效接待'" class="commonly-text"></view>
<view v-else class="commonly-text">{{item.name}}</view>
</view>
</view>

@@ -439,6 +475,14 @@
uni.navigateTo({
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'2'
});
}else if(i==6){
uni.navigateTo({
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'0'+'&validInvalid=0'
});
}else if(i==7){
uni.navigateTo({
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal='+'2'+'&validInvalid=0'
});
}else{
uni.navigateTo({
url: '/pages/center/records/index?refresh='+'refresh'+'&activeTotal=0'+'&markAdvisor=0'


+ 80
- 4
pages/mine/details2.vue Voir le fichier

@@ -158,10 +158,22 @@
<view>销讲执行</view>
</view>
<view class="fill"></view>
<view class="tmmchen" @click="Receivedetailsabouttab('Receivedetailsabout')">
<image src="../../static/images/audioinfo2.png" mode=""></image>
<view>接待信息</view>
<!-- audioinfo2 -->
<view class="tmmchen" v-if="Menulistisshow==true">
<image @click="Receivedetailsabouttab('Receivedetailsabout')" src="../../static/images/allimg.png" mode=""></image>
<view @click="Receivedetailsabouttab('Receivedetailsabout')">更多</view>
<view class="allimg" v-if="Thetapeidisshow">
<view @click="Receivetap()" style="line-height: 70rpx;margin-top: 10rpx;">接待信息</view>
<view @click="alllogo()" style="line-height:70rpx;">{{userlistobj.validInvalidName}}</view>
</view>
</view>
<view class="tmmchen" @click="Receivetap()" v-if="Menulistisshow==false">
<image @click="Receivedetailsabouttab('Receivedetailsabout')" src="../../static/images/audioinfo2.png" mode=""></image>
<view @click="Receivedetailsabouttab('Receivedetailsabout')">接待信息</view>
</view>
</view>
</view>
@@ -377,6 +389,8 @@
</view>
</view>
</template>

@@ -443,6 +457,10 @@
yixingindex:0,//意向,统计切换
buildingID:'',
methodsisshow:false,
Thetapeidisshow:false,
Menulist:[],
Menulistisshow:false,
validInvalid:0,
};
},
onLoad: function(options) {
@@ -453,6 +471,13 @@
this.stateisshow=options.stateisshow;
},
onShow() {
this.Menulist = uni.getStorageSync('weapp_session_Menu_data');
this.Menulist.forEach(item=>{
if(item.name=='标记有效无效接待'){
this.Menulistisshow=true;
}
})
this.intention=false;
this.kehuyixiangcenterindex=0;
@@ -638,6 +663,7 @@
this.Receivedetailsabout=false;
this.Pinspeak=false;
this.intention=false;
this.Thetapeidisshow=false;
},
//意向统计切换
Intentiontoswitch(i){
@@ -659,11 +685,50 @@
this.options1=res;
})
},
Receivetap(){
this.Receivedetailsabout=true;
},
//标记
alllogo(){
var that=this;
let msg='';
if(this.userlistobj.validInvalid==0){
msg='是否标记为"无效录音"?'
}else{
msg='是否标记为"有效录音"?'
}
uni.showModal({
title: '提示',
content: msg,
success: function (res) {
if (res.confirm) {
let parames={
id:that.customerId,
validInvalid:''
}
if(that.userlistobj.validInvalid==0){
parames.validInvalid=1;
}else{
parames.validInvalid=0;
}
that.$u.post("/customer/updateValidInvalid", parames).then(res => {
console.log(res)
that.Thetapeidisshow=false;
})
} else if (res.cancel) {
that.Thetapeidisshow=false;
}
}
});
},
//接待详情点击
Receivedetailsabouttab(stringa){
if(stringa=='Receivedetailsabout'){
this.gituserlist()
this.Receivedetailsabout=true;
this.Thetapeidisshow=!this.Thetapeidisshow;
}else if(stringa=='Pinspeak'){
this.getRatelist()
this.Pinspeak=true;
@@ -1736,6 +1801,17 @@
text-align: center;
color: #666666;
font-size: 18rpx;
position: relative;
.allimg{
position: absolute;
width: 168rpx;
top: -152rpx;
border: 1px solid #E0E0E0;
background: #FFFFFF;
font-size: 26rpx;
color: #333333;
text-align: center;
}
}
.tmmchen image{
width: 40rpx;


+ 5
- 4
pages/mine/equipment/index.vue Voir le fichier

@@ -122,7 +122,7 @@
}
this.newListdata=[]
this.pageNum=1;
this.pageSize=5;
this.pageSize=20;
this.init()
},
filters: {
@@ -161,7 +161,7 @@
shecs(){
this.newListdata=[]
this.pageNum=1;
this.pageSize=5;
this.pageSize=20;
this.init()
},
// tab
@@ -169,7 +169,7 @@
this.activeClass=index;
this.newListdata=[]
this.pageNum=1;
this.pageSize=5;
this.pageSize=20;
this.init()
},
init(){
@@ -184,6 +184,7 @@
orderType:1
}
}
if(this.activeClass==0){
parames.query.onLine=null
}
@@ -204,7 +205,7 @@
}
}else{
res.obj.list.results.forEach(item=>{
if(this.activeClass==1){
if(item.onLine==0){
item.signalDevice=0
}


BIN
static/images/allimg.png Voir le fichier

Avant Après
Largeur: 80  |  Hauteur: 80  |  Taille: 1.5 KiB

+ 2
- 1
uni_modules/qiun-data-charts/js_sdk/u-charts/config-ucharts.js Voir le fichier

@@ -334,7 +334,8 @@ module.exports = {
"gridColor": "#CCCCCC",
"padding": 10,
"showTitle": false,
"min":20,
"min":0,
"max":10,
"data": []
},
"legend": {


+ 3
- 3
utils/http.js Voir le fichier

@@ -1,9 +1,9 @@

// const baseUrl = 'http://121.42.63.138:9091/autoSR/api';// 测试站
// const baseUrl = 'http://192.168.31.160:8080/autoSR/api'; // 长龙
// const baseUrl = 'http://192.168.31.127:8080/autoSR/api'; // 佳豪
const baseUrl = 'http://192.168.31.160:8080/autoSR/api'; // 长龙
// const baseUrl = 'http://192.168.31.129:8080/autoSR/api'; // 佳豪
// const baseUrl = 'http://10.2.1.104:8081/autoSR/api'; // 刘敏
const baseUrl = 'https://zkgj.quhouse.com/api'; // 质控正式
// const baseUrl = 'https://zkgj.quhouse.com/api'; // 质控正式
// const baseUrl = 'https://hfju.com/api'; // 数智正式

const install = (Vue, vm) => {


Chargement…
Annuler
Enregistrer