@@ -96,10 +96,14 @@ | |||
"urlCheck" : false, | |||
"es6" : true, | |||
"postcss" : true, | |||
"minified" : false | |||
"minified" : true | |||
}, | |||
"usingComponents" : true, | |||
"permission" : {}, | |||
"permission" : { | |||
"scope.userLocation" : { | |||
"desc" : "获取地址信息" | |||
} | |||
}, | |||
"requiredBackgroundModes" : [ "audio" ], | |||
"plugins" : { | |||
"WechatSI" : { | |||
@@ -4,23 +4,6 @@ | |||
}, | |||
//这个pages里只放这五个页面,新增页面时请对应的放到下面的分包里 | |||
"pages": [ | |||
// { | |||
// "path": "pages/mine/registerForm", | |||
// "style": { | |||
// "navigationBarTitleText": "访客登记表", | |||
// "navigationBarBackgroundColor": "#2671E2", | |||
// "navigationBarTextStyle": "white" | |||
// } | |||
// }, | |||
// { | |||
// "path": "pages/mine/registerResult", | |||
// "style": { | |||
// "navigationBarTitleText": "访客登记表", | |||
// "navigationBarBackgroundColor": "#2671E2", | |||
// "navigationBarTextStyle": "white" | |||
// } | |||
// }, | |||
{ | |||
"path": "pages/index/guide", | |||
"style": { | |||
@@ -22,15 +22,15 @@ | |||
<view class="title1" style="flex: 1;">接待量排名(TOP10)</view> | |||
</view> | |||
<view class="hejisan"> | |||
<view class="sanbox1" style="width: 35%;"> | |||
<view class="sanbox1" style="width: 33.33%;"> | |||
<view class="text1-1">合计</view> | |||
<view class="text1-2">{{newlisttabinfo1.total}}</view> | |||
</view> | |||
<view class="sanbox1" style="width: 40%;"> | |||
<view class="sanbox1" style="width: 33.33%;"> | |||
<view class="text1-1">顾问</view> | |||
<view class="text1-2">{{newlisttabinfo1.count}}</view> | |||
</view> | |||
<view class="sanbox1" style="width: 25%;"> | |||
<view class="sanbox1" style="width: 33.33%;"> | |||
<view class="text1-1">人均接待量</view> | |||
<view class="text1-2">{{newlisttabinfo1.avg}}</view> | |||
</view> | |||
@@ -61,11 +61,11 @@ | |||
<view class="title1" style="flex: 1;">销讲执行率排行(TOP10)</view> | |||
</view> | |||
<view class="hejisan"> | |||
<view class="sanbox1" style="width: 40%;"> | |||
<view class="sanbox1" style="width: 50%;"> | |||
<view class="text1-1">顾问</view> | |||
<view class="text1-2">{{newlisttabinfo3.count}}</view> | |||
</view> | |||
<view class="sanbox1" style="width: 25%;"> | |||
<view class="sanbox1" style="width: 50%;"> | |||
<view class="text1-1">人均执行率</view> | |||
<view class="text1-2">{{newlisttabinfo3.avg}}</view> | |||
</view> | |||
@@ -95,15 +95,15 @@ | |||
<view class="title1" style="flex: 1;">录音时长(TOP10)</view> | |||
</view> | |||
<view class="hejisan"> | |||
<view class="sanbox1" style="width: 35%;"> | |||
<view class="sanbox1" style="width: 33.33%;"> | |||
<view class="text1-1">合计</view> | |||
<view class="text1-2">{{newlisttabinfo2.total}}</view> | |||
</view> | |||
<view class="sanbox1" style="width: 40%;"> | |||
<view class="sanbox1" style="width: 33.33%;"> | |||
<view class="text1-1">顾问</view> | |||
<view class="text1-2">{{newlisttabinfo2.count}}</view> | |||
</view> | |||
<view class="sanbox1" style="width: 25%;"> | |||
<view class="sanbox1" style="width: 33.33%;"> | |||
<view class="text1-1">人均录音时长</view> | |||
<view class="text1-2">{{newlisttabinfo2.avg}}</view> | |||
</view> | |||
@@ -133,15 +133,15 @@ | |||
<view class="title1" style="flex: 1;">违禁次数排名(TOP10)</view> | |||
</view> | |||
<view class="hejisan"> | |||
<view class="sanbox1" style="width: 35%;"> | |||
<view class="sanbox1" style="width: 33.33%;"> | |||
<view class="text1-1">合计</view> | |||
<view class="text1-2">{{newlisttabinfo4.total}}</view> | |||
</view> | |||
<view class="sanbox1" style="width: 40%;"> | |||
<view class="sanbox1" style="width: 33.33%;"> | |||
<view class="text1-1">顾问</view> | |||
<view class="text1-2">{{newlisttabinfo4.count}}</view> | |||
</view> | |||
<view class="sanbox1" style="width: 25%;"> | |||
<view class="sanbox1" style="width: 33.33%;"> | |||
<view class="text1-1">人均违禁次数</view> | |||
<view class="text1-2">{{newlisttabinfo4.avg}}</view> | |||
</view> | |||
@@ -171,15 +171,15 @@ | |||
<view class="title1" style="flex: 1;">接待未标顾问(TOP10)</view> | |||
</view> | |||
<view class="hejisan"> | |||
<view class="sanbox1" style="width: 35%;"> | |||
<view class="sanbox1" style="width: 33.33%;"> | |||
<view class="text1-1">合计</view> | |||
<view class="text1-2">{{newlisttabinfo5.total}}</view> | |||
</view> | |||
<view class="sanbox1" style="width: 40%;"> | |||
<view class="sanbox1" style="width: 33.33%;"> | |||
<view class="text1-1">顾问</view> | |||
<view class="text1-2">{{newlisttabinfo5.count}}</view> | |||
</view> | |||
<view class="sanbox1" style="width: 25%;"> | |||
<view class="sanbox1" style="width: 33.33%;"> | |||
<view class="text1-1">均值</view> | |||
<view class="text1-2">{{newlisttabinfo5.avg}}</view> | |||
</view> | |||
@@ -202,6 +202,39 @@ | |||
</view> | |||
</view> | |||
<!--平均需求挖掘率排名(TOP10) --> | |||
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view> | |||
<view class="single"> | |||
<view class="title"> | |||
<view class="title1" style="flex: 1;">平均需求挖掘率排名(TOP10)</view> | |||
</view> | |||
<view class="hejisan"> | |||
<view class="sanbox1" style="width: 50%;"> | |||
<view class="text1-1">楼盘总数</view> | |||
<view class="text1-2">{{newlisttabinfo6.total}}</view> | |||
</view> | |||
<view class="sanbox1" style="width: 50%;"> | |||
<view class="text1-1">平均挖掘率</view> | |||
<view class="text1-2">{{newlisttabinfo6.avg}}</view> | |||
</view> | |||
</view> | |||
<view class="jindu" style="min-height: 360rpx;"> | |||
<view v-if="newlisttabinfo6.result.length!=0" class="jindu-box" | |||
v-for="(item,index) in newlisttabinfo6.result" :key="index"> | |||
<view class="jindu-boxche" v-if="item.zxl != 0"> | |||
<view class="jindu-name" v-if="item.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.zxl1"></u-line-progress> | |||
</view> | |||
<view class="jindu-zxl">{{item.zxl==null?0:item.zxl}}</view> | |||
</view> | |||
</view> | |||
<view v-if="newlisttabinfo6.result.length==0" style="width: 100%;text-align: center;margin-top: 60rpx;"> | |||
暂无数据 | |||
</view> | |||
</view> | |||
</view> | |||
<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar> | |||
</view> | |||
@@ -250,6 +283,12 @@ | |||
total: '', | |||
result: [], | |||
}, | |||
newlisttabinfo6: { | |||
avg: '', | |||
count: '', | |||
total: '', | |||
result: [], | |||
}, | |||
}; | |||
}, | |||
onLoad(option) { | |||
@@ -292,6 +331,12 @@ | |||
total: '', | |||
result: [], | |||
} | |||
this.newlisttabinfo4 = { | |||
avg: '', | |||
count: '', | |||
total: '', | |||
result: [], | |||
} | |||
var activeTotal = 0; | |||
if (this.activeTotal == 3) { | |||
@@ -312,6 +357,7 @@ | |||
this.staffStatisticsExecutionRateTop10(promse) | |||
this.staffStatisticsProhibitedTop10(promse) | |||
this.staffStatisticsUnlabeledTop10(promse) | |||
this.wordlevelTop10(promse) | |||
}, | |||
//接待量排名 | |||
staffStatisticsReceptionTop10(promse) { | |||
@@ -369,6 +415,17 @@ | |||
this.newlisttabinfo5 = res; | |||
}) | |||
}, | |||
// 平均需求挖掘率排名 | |||
wordlevelTop10(promse) { | |||
this.$u.post('/cusLvStatistics/staffStatisticsUnlabeledTop', promse).then(res => { | |||
res.result.forEach(item => { | |||
item.zxl = item.tagCustomer | |||
item.name = item.accountName | |||
}) | |||
res.result = this.dealData(res.result) | |||
this.newlisttabinfo6 = res; | |||
}) | |||
}, | |||
//自定义时间 | |||
totalTimeChange(e) { | |||
@@ -425,7 +482,6 @@ | |||
width: 100%; | |||
height: 100%; | |||
background: #FAFAFA; | |||
padding-bottom: 60rpx; | |||
} | |||
.single { | |||
@@ -443,6 +499,9 @@ | |||
display: flex; | |||
padding-top: 20rpx; | |||
padding-bottom: 20rpx; | |||
.sanbox1{ | |||
text-align: center; | |||
} | |||
.text1-1 { | |||
color: #666666; | |||
@@ -76,6 +76,29 @@ | |||
canvasId="wangxiaouaerlingeryilingwuyibhh" :canvas2d="true" /> | |||
</view> | |||
</view> | |||
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view> | |||
<view class="single"> | |||
<view class="title"> | |||
<view class="title1" style="flex: 1;">平均需求挖掘率趋势</view> | |||
<view class="title3" style="flex: 1;"> | |||
<!-- <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%;"@click="tabtimetap1(1)"> | |||
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 1 }">录音时长</view> | |||
</view> --> | |||
</view> | |||
</view> | |||
<view class="hejibox"> | |||
<view class="heji">{{staff1.label}}:{{newTeam2||0}}</view> | |||
<view class="heji" v-if="timepickpickisshow">{{staff2.label}}:{{newAvg2||0}}</view> | |||
</view> | |||
<view class="danwei">录音时长</view> | |||
<view class="uchaserbox"> | |||
<qiun-data-charts type="line" :chartData="lineOptsect1" background="none" :ontouch="true" | |||
canvasId="wangxiaouaerlingeryilingwuyibhh" :canvas2d="true" /> | |||
</view> | |||
</view> | |||
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view> | |||
<view class="single"> | |||
@@ -1,7 +1,25 @@ | |||
<template> | |||
<view> | |||
<view class="timetabct"> | |||
<view class="timetabctview"> | |||
<!-- 选择器 --> | |||
<view class="boxtittab"> | |||
<view class="tabbox" @click="timeshow = true"> | |||
{{ time }} | |||
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon> | |||
</view> | |||
<view class="tabbox" @click="timeshow = true"> | |||
{{ team }} | |||
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon> | |||
</view> | |||
<view class="tabbox" @click="selectshow = true"> | |||
{{ guwen }} | |||
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon> | |||
</view> | |||
<view class="tabbox" @click="huashuShow = true"> | |||
{{huashu}}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon> | |||
</view> | |||
</view> | |||
<!--<view class="timetabct"> | |||
<view class="timetabctview"> | |||
<view :class="{ activecllasscet: activeTotal == 0 }" @click="tabtimetap(0)">7天</view> | |||
</view> | |||
<view class="timetabctview"> | |||
@@ -10,7 +28,7 @@ | |||
<view class="timetabctview"> | |||
<view :class="{ activecllasscet: activeTotal == 2 }" @click="tabtimetap(2)">30天</view> | |||
</view> | |||
</view> | |||
</view> --> | |||
<view class="timepick"> | |||
<view class="timepicktime"> | |||
@@ -42,6 +60,7 @@ | |||
</view> | |||
</view> | |||
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view> | |||
<!-- 简报 --> | |||
<view class="boxzonglan" style="min-height: 100rpx;"> | |||
<view class="zonglantit">简报</view> | |||
<view class="zonglanbox"> | |||
@@ -73,7 +92,7 @@ | |||
</view> | |||
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view> | |||
<view class="boxtittab" style="border: none;height: 82rpx;"> | |||
<view class="tabbox"> | |||
<!-- <view class="tabbox"> | |||
<view :class="{ activecllasscet2: newactiveTotal == 0 }" @click="tabxuanxiangtap(0)">项目</view> | |||
</view> | |||
<view class="tabbox"> | |||
@@ -81,6 +100,15 @@ | |||
</view> | |||
<view class="tabbox"> | |||
<view :class="{ activecllasscet2: newactiveTotal == 2 }" @click="tabxuanxiangtap(2)">团队</view> | |||
</view> --> | |||
<view class="tabbox"> | |||
<view :class="{ activecllasscet2: newactiveTotal == 0 }" @click="tabxuanxiangtap(0)">平均执行率</view> | |||
</view> | |||
<view class="tabbox"> | |||
<view :class="{ activecllasscet2: newactiveTotal == 1 }" @click="tabxuanxiangtap(1)">平均挖掘率</view> | |||
</view> | |||
<view class="tabbox"> | |||
<view :class="{ activecllasscet2: newactiveTotal == 2 }" @click="tabxuanxiangtap(2)">挖掘场景</view> | |||
</view> | |||
<view class="tabbox"> | |||
<view :class="{ activecllasscet2: newactiveTotal == 3 }" @click="tabxuanxiangtap(3)">销讲一级</view> | |||
@@ -92,13 +120,13 @@ | |||
<view class="chart"> | |||
<view | |||
<!-- <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="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;"> | |||
@@ -164,7 +192,6 @@ | |||
<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> | |||
@@ -225,7 +252,32 @@ | |||
<newcalendar v-model="totalTimeShow2" :planNum='intervaltime' mode="date" @change="totalTimeChange2"> | |||
</newcalendar> | |||
<!-- 接待时间 -到访时间--> | |||
<u-popup v-model="timeshow" mode="bottom"> | |||
<view class="timeview" :style="{ color: activeTotal == 5 ? '#2B6EFF' : '#333333' }" | |||
@click="tabtimetap(5, '接待时间')"> | |||
全部</view> | |||
<view class="timeview" :style="{ color: activeTotal == 0 ? '#2B6EFF' : '#333333' }" | |||
@click="tabtimetap(0, '今天')"> | |||
今天</view> | |||
<view class="timeview" :style="{ color: activeTotal == 1 ? '#2B6EFF' : '#333333' }" | |||
@click="tabtimetap(1, '昨天')"> | |||
昨天</view> | |||
<view class="timeview" :style="{ color: activeTotal == 2 ? '#2B6EFF' : '#333333' }" | |||
@click="tabtimetap(2, '近7天')"> | |||
近7天</view> | |||
<view class="timeview" :style="{ color: activeTotal == 3 ? '#2B6EFF' : '#333333' }" | |||
@click="tabtimetap(3, '近30天')"> | |||
近30天</view> | |||
<view class="timeview" :style="{ color: activeTotal == 4 ? '#2B6EFF' : '#333333' }" | |||
@click="tabtimetap(4, '')"> | |||
自定义</view> | |||
</u-popup> | |||
<!-- 顾问 --> | |||
<u-select v-model="selectshow" :list="freeList" @confirm="actionSelectCallback"></u-select> | |||
<!-- 全部话术 --> | |||
<u-select v-model="huashushow" :list="huashuList" @confirm="actionSelectCallback1"></u-select> | |||
<!-- 加载组件 --> | |||
<loading v-model="LOADING"></loading> | |||
</view> | |||
@@ -241,6 +293,13 @@ | |||
}, | |||
data() { | |||
return { | |||
time: '接待时间', | |||
team: '部门', | |||
guwen: '顾问', | |||
huashu: '全部话术', | |||
huashuList: false, | |||
huashuShow: false, | |||
freeList: [], //顾问 | |||
selindexList: [0], // 默认选中第一项 | |||
selindexList4: [0], // 默认选中第一项 | |||
compareFlag: false, | |||
@@ -262,6 +321,12 @@ | |||
num1: '0', | |||
num2: '0' | |||
}, | |||
{ | |||
name: '有效接待', | |||
num: '10', | |||
num1: '0', | |||
num2: '0' | |||
}, | |||
], | |||
activeTotal: 0, //时间下标 | |||
newactiveTotal: 0, //tab下标 | |||
@@ -323,7 +388,6 @@ | |||
}, | |||
Showhiddenunits4: false, | |||
showCanvas: true, | |||
timepickpickisshow: false, | |||
sheartime1: "", | |||
sheartime2: "", | |||
@@ -338,6 +402,7 @@ | |||
this.LOADING = true | |||
this.pamect.houseId = uni.getStorageSync('buildingID').id; | |||
this.init() | |||
this.getFreeList() | |||
if (option.type == 1) { | |||
this.timepickpickisshow = true | |||
@@ -383,6 +448,31 @@ | |||
}, | |||
}, | |||
methods: { | |||
// 顾问 | |||
actionSelectCallback(e) { | |||
// this.screen.agentId = e[0].value; | |||
// this.counselorName = e[0].label; | |||
}, | |||
// 话术 | |||
actionSelectCallback1(e) { | |||
// this.screen.agentId = e[0].value; | |||
// this.counselorName = e[0].label; | |||
}, | |||
//获取顾问列表 | |||
getFreeList() { | |||
this.$u.post("/cusLvStatistics/selectAllAccountIdByHouseId", { | |||
houseId: this.pamect.houseId | |||
}).then(res => { | |||
this.freeList = res; | |||
this.huashuList = res; | |||
if(this.freeList.length){ | |||
this.freeList.forEach(item => { | |||
item.label = item.name; | |||
item.value = item.accountId | |||
}) | |||
} | |||
}) | |||
}, | |||
// 时间格式转换 | |||
fomatDate(date) { | |||
if (!date) return '--' | |||
@@ -605,6 +695,18 @@ | |||
this.guwenshow = false; | |||
this.Selectlevel = false; | |||
this.Selecttuandui = false; | |||
// this.tableDate = [] | |||
// this.pamect.showStatus = 0; | |||
// this.pamect.timeType = "4"; | |||
// this.pamect.firstStartDate = ''; | |||
// this.pamect.firstEndDate = ''; | |||
// this.pamect.lastStartDate = ''; | |||
// this.pamect.lastEndDate = ''; | |||
// this.pamect.accountId = ''; | |||
// this.pamect.marketingId = ''; | |||
// this.pamect.deptId = "" | |||
// this.activeTotal = 0; | |||
this.timepickpickisshow = false; | |||
this.init() | |||
if (index == 1) { | |||
@@ -761,7 +863,6 @@ | |||
arr[1].push(data.thirdList[index].total) | |||
}) | |||
that.tableDate = arr | |||
console.log(this.lineOptsect, 'console.log(this.lineOptsect)') | |||
} | |||
@@ -1051,7 +1152,7 @@ | |||
this.Selecttuanduiobj.id = ""; | |||
this.Selecttuanduiobj.name = "全部"; | |||
this.pamect.deptId = this.Selecttuanduiobj.id; | |||
this.TeamCompared() | |||
// this.TeamCompared() | |||
} | |||
}) | |||
}, | |||
@@ -1435,8 +1536,12 @@ | |||
border-right: none; | |||
border-bottom: none; | |||
} | |||
.grid:nth-child(2) { | |||
border-bottom: none; | |||
} | |||
.grid:nth-child(3) { | |||
width: 50.5%; | |||
width: 50%; | |||
border-right: none; | |||
} | |||
</style> |
@@ -46,6 +46,12 @@ | |||
</view> | |||
<view class="Piabodata-text">集团对比</view> | |||
</view> | |||
<view class="Piabodata" @click="towajue()"> | |||
<view class="Piabodata-img"> | |||
<image class="Piabodata-img1" src="../../../static/images/qushi.png" mode=""></image> | |||
</view> | |||
<view class="Piabodata-text">需求挖掘分析</view> | |||
</view> | |||
</view> | |||
@@ -54,7 +60,7 @@ | |||
<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="audonum">{{item.name}}</view> | |||
<view class="num">{{item.num}}</view> | |||
</view> | |||
</view> | |||
@@ -398,6 +404,11 @@ | |||
}, 1000); | |||
}, | |||
methods: { | |||
towajue(){ | |||
uni.navigateTo({ | |||
url: "/pages/center/Piabodata/requireminingAnalysis" | |||
}) | |||
}, | |||
queryHaveDept() { | |||
return new Promise((resolve, reject) => { | |||
this.$u.get("/user/queryHaveDept?houseId=" + this.houseId).then(res => { | |||
@@ -14,13 +14,10 @@ | |||
{{ guwen}} | |||
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon> | |||
</view> | |||
<!-- <view class="tabbox" @click="taptimetuisshow"> | |||
<view class="tabbox" @click="huashushow=true"> | |||
{{ huashu}} | |||
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon> | |||
</view> --> | |||
<!-- <view class="tabbox" @click="screenshow"> | |||
更多筛选<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon> | |||
</view> --> | |||
</view> | |||
</view> | |||
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view> | |||
<view class="boxzonglan" style="min-height: 400rpx;"> | |||
@@ -59,7 +56,7 @@ | |||
</view> | |||
<view class="uchaserbox"> | |||
<qiun-data-charts type="line" :chartData="lineOptsect" :opts="lineOpts" background="none" | |||
:ontouch="true" canvasId="wangxiaohuaerlingilingwuyiba1" :canvas2d="true" /> | |||
:ontouch="true" canvasId="wangxiaohuaerlingilingwuyiba2" :canvas2d="true" /> | |||
</view> | |||
</view> | |||
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view> | |||
@@ -72,7 +69,7 @@ | |||
type="ring" | |||
:chartData="ringChartData" | |||
:canvas2d="true" | |||
:canvasId="ChartBoxIdwangxiaohuaerlingilingwuyiba1" | |||
canvasId="ChartBoxIdwangxiaohuaerlingilingwuyiba1" | |||
:opts='opts' | |||
background="none" /> | |||
</view> | |||
@@ -90,7 +87,7 @@ | |||
<view>操作</view> | |||
</view> | |||
<view v-if="total==0" style="color: #999999;width: 100%;height: 500rpx;line-height: 500rpx;text-align: center;" >暂无数据</view> | |||
<view class="tabtd" v-for="(item,i) in sortList" :key="i"> | |||
<view class="tabtd" v-for="(item,i) in rankList" :key="i"> | |||
<view> | |||
<image v-if="i==0" class="ranking" src="../../../static/images/ranking1.png" mode=""></image> | |||
<image v-else-if="i==1" class="ranking" src="../../../static/images/ranking2.png" mode=""></image> | |||
@@ -117,9 +114,11 @@ | |||
自定义</view> | |||
</u-popup> | |||
<u-calendar v-model="calendarShow" mode="range" @change="calendarTimeChange"></u-calendar> | |||
<u-select v-model="guwenshow" :list="staffList" @confirm="staffSelectCallback($event,0)" | |||
<u-select v-model="guwenshow" :list="staffList" @confirm="guwenCallback" | |||
:default-value='selindex'></u-select> | |||
<u-select v-model="deptshow" :list="teamList" @confirm="deptCallback" | |||
:default-value='selindex'></u-select> | |||
<u-select v-model="deptshow" :list="teamList" @confirm="staffSelectCallback($event,1)" | |||
<u-select v-model="hushushow" :list="hushuList" @confirm="huashuCallback" | |||
:default-value='selindex'></u-select> | |||
<!-- 加载组件 --> | |||
<loading v-model="LOADING"></loading> | |||
@@ -137,19 +136,21 @@ | |||
data() { | |||
return { | |||
selindex: '', | |||
huashushow: false, | |||
guwenshow: false, | |||
timeshow: false, | |||
selectshow: false, | |||
deptshow: false, | |||
deptVal: '', | |||
huashuVal: '', | |||
guwenVal: '', | |||
// 筛选文字展示 | |||
time: '近7天', | |||
dept: '部门', | |||
guwen: '顾问', | |||
huashu: '话术', | |||
huashu: '业务话术', | |||
showDesc: false, | |||
sortList: [], | |||
rankList: [],//排名列表 | |||
ringChartData: { | |||
}, | |||
// ring图 分布图 | |||
@@ -189,10 +190,9 @@ | |||
}, | |||
activeTotal: 4, | |||
houseId: '', | |||
// 员工列表 | |||
staffList: [], | |||
// 团队列表 | |||
teamList: [], | |||
hushuList: [],// 业务话术 | |||
staffList: [],// 员工列表 | |||
teamList: [],// 团队列表 | |||
team: { | |||
value: '', | |||
label: '' | |||
@@ -200,7 +200,6 @@ | |||
startDate: '', | |||
endDate: '', | |||
calendarShow: false, | |||
activeTab: 0, | |||
numlist: [{ | |||
name: '平均需求挖掘率', | |||
firstnum: '', | |||
@@ -232,17 +231,13 @@ | |||
lineOptsect: { | |||
"categories": [], | |||
"series": [{ | |||
"name": "第一段", | |||
"name": "起始时间", | |||
"data": [] | |||
},{ | |||
"name": "第二段", | |||
"name": "对比时间", | |||
"data": [] | |||
} | |||
] | |||
}] | |||
}, | |||
Theteamcomparedisshow: false, | |||
Groupcontrastisshow: false, | |||
allList: [], | |||
lineOpts: { | |||
yAxis: { | |||
data: [{ | |||
@@ -254,7 +249,6 @@ | |||
}; | |||
}, | |||
onShow() { | |||
// this.LOADING = true | |||
// 获取项目id | |||
this.houseId = uni.getStorageSync('buildingID').id; | |||
// 获取员工 | |||
@@ -264,35 +258,39 @@ | |||
this.getdata() | |||
}, | |||
onReady: function(){ | |||
this.getRingData() | |||
}, | |||
onPullDownRefresh() { | |||
// 获取项目id | |||
this.houseId = uni.getStorageSync('buildingID').id; | |||
// 获取员工 | |||
this.getStaffList() | |||
// 获取团队 | |||
this.getSectionList() | |||
this.getdata() | |||
}, | |||
methods: { | |||
getdata(){ | |||
// 需求挖掘分析-简报 | |||
this.wordMiningAnalyze() | |||
// 挖掘趋势图 | |||
this.getwordMiningAnalyzePercentage() | |||
//需求挖掘排行 | |||
this.getwordMiningRank() | |||
// 挖掘趋势图 | |||
this.getwordMiningAnalyzePercentage() | |||
// 需求挖掘f分布图 | |||
this.getRingData() | |||
}, | |||
// 需求挖掘排行 | |||
getwordMiningRank(){ | |||
this.$u.post('/cusLvStatistics/wordMiningRank', { | |||
houseId: this.houseId, | |||
deptId: this.deptVal, | |||
createUser: this.guwenVal, | |||
"houseId": this.houseId, | |||
"deptId": this.deptVal, | |||
"createUser": this.guwenVal, | |||
"dateType":this.activeTotal, | |||
"firstStartDate":!this.activeTotal?this.startDate:'', | |||
"firstEndDate":!this.activeTotal?this.endDate:'' | |||
}) | |||
.then(res => { | |||
console.log(res) | |||
// console.log(res) | |||
if(res.length){ | |||
this.sortList = res.map(item=>{ | |||
this.rankList = res.map(item=>{ | |||
return { | |||
name: item.name, | |||
id: item.id, | |||
@@ -300,21 +298,23 @@ | |||
selected: item.selected | |||
} | |||
}) | |||
}else{ | |||
this.rankList = [] | |||
} | |||
}) | |||
}, | |||
// 需求挖掘分布图 | |||
getRingData(){ | |||
this.$u.post('/cusLvStatistics/wordMiningAnalyzeFenbu', { | |||
houseId: this.houseId, | |||
deptId: this.deptVal, | |||
createUser: this.guwenVal, | |||
"houseId": this.houseId, | |||
"deptId": this.deptVal, | |||
"createUser": this.guwenVal, | |||
"firstStartDate":!this.activeTotal?this.startDate:'', | |||
"firstEndDate":!this.activeTotal?this.endDate:'', | |||
"dateType":this.activeTotal | |||
}) | |||
.then(res => { | |||
console.log(res) | |||
// console.log(res) | |||
this.ringChartData = { series: [ | |||
{ | |||
data: [ | |||
@@ -330,15 +330,15 @@ | |||
Toview(){ | |||
//跳转到接待记录 | |||
uni.navigateTo({ | |||
url: '/pages/center/records/index' | |||
url: '/pages/center/records/index?refresh=refresh' | |||
}); | |||
}, | |||
// 需求挖掘分析-简报 | |||
wordMiningAnalyze() { | |||
let params = { | |||
"houseId":this.houseId, | |||
deptId: this.deptVal, | |||
createUser: this.guwenVal, | |||
"deptId": this.deptVal, | |||
"userId": this.guwenVal, | |||
"dateType": this.activeTotal, | |||
"firstStartDate":!this.activeTotal?this.startDate:'', | |||
"firstEndDate":!this.activeTotal?this.endDate:'' | |||
@@ -346,6 +346,8 @@ | |||
this.$u.post("/cusLvStatistics/wordMiningAnalyze",params).then(res => { | |||
// console.log(res.contrast) | |||
res.contrast.wordFraction = (res.contrast.wordFraction || 0) + '%' | |||
res.first.wordFraction = (res.first.wordFraction || 0) + '%' | |||
res.end.wordFraction = (res.end.wordFraction || 0) + '%' | |||
this.numlist.forEach(item => { | |||
item.duibinum = res.contrast[item.setName] | |||
item.endnum = res.end[item.setName] | |||
@@ -367,43 +369,47 @@ | |||
value: item.accountId | |||
} | |||
}) | |||
this.staffList.unshift({ | |||
label: '全部', | |||
value: '' | |||
}) | |||
} | |||
}) | |||
}, | |||
// 需求挖掘率趋势图 | |||
getwordMiningAnalyzePercentage() { | |||
let categories1 = [] | |||
let categories2 = [] | |||
let categories3 = [] | |||
this.$u.post('/cusLvStatistics/wordMiningAnalyzePercentage', { | |||
houseId: this.houseId, | |||
deptId: this.deptVal, | |||
createUser: this.guwenVal, | |||
"houseId": this.houseId, | |||
"deptId": this.deptVal, | |||
"createUser": this.guwenVal, | |||
"dateType": this.activeTotal, | |||
"firstStartDate":!this.activeTotal?this.startDate:'', | |||
"firstEndDate":!this.activeTotal?this.endDate:'' | |||
}) | |||
.then(res => { | |||
let categories1 = [] | |||
let categories2 = [] | |||
if(res.first&&res.first.length){ | |||
categories1 = res.first.map(item=> item.statDate.substring(0,10)) | |||
this.lineOptsect.series[0].data=res.first.map(item=> item.wordFraction) | |||
}else{ | |||
categories1= [] | |||
this.lineOptsect.series[0] = [] | |||
this.lineOptsect.series[0].data = [] | |||
} | |||
if(res.end&&res.end.length){ | |||
this.lineOptsect.series[1].data=res.end.map(item=> item.wordFraction) | |||
categories2 = res.end.map(item => item.statDate.substring(0,10)) | |||
}else{ | |||
categories2 = [] | |||
this.lineOptsect.series[1].data = [] | |||
} | |||
let categories3 =[] | |||
categories1.forEach(item1=>{ | |||
categories2.forEach(item2=>{ | |||
categories3.push(item1+ '/' + item2) | |||
}) | |||
}) | |||
for(let i=0;i<categories1.length;i++){ | |||
categories3.push(categories1[i]+'/'+categories2[i]) | |||
} | |||
// console.log(categories3) | |||
this.lineOptsect.categories = categories3 | |||
console.log(this.lineOptsect.categories) | |||
}) | |||
}, | |||
// 获取团队列表 | |||
@@ -420,6 +426,10 @@ | |||
value: item.deptId | |||
} | |||
}) | |||
this.teamList.unshift({ | |||
label: '全部', | |||
value: '' | |||
}) | |||
} | |||
}) | |||
}, | |||
@@ -437,16 +447,26 @@ | |||
} | |||
this.timeshow = false | |||
}, | |||
staffSelectCallback(e, idx) { | |||
if (idx == 0) { | |||
this.guwenVal = e[0].value | |||
this.guwen = e[0].label | |||
} else { // 部门 | |||
this.dept = e[0].label | |||
this.deptVal = e[0].value | |||
} | |||
// 顾问选择 | |||
guwenCallback(e){ | |||
// console.log(e) | |||
this.guwenVal = e[0].value | |||
this.guwen = e[0].label | |||
this.getdata() | |||
}, | |||
// 部门选择 | |||
deptCallback(e){ | |||
// console.log(e) | |||
this.deptVal = e[0].value | |||
this.dept = e[0].label | |||
this.getdata() | |||
}, | |||
// 话术选择 | |||
huashuCallback(e){ | |||
// console.log(e) | |||
this.huashuVal = e[0].value | |||
this.huashu = e[0].label | |||
this.getdata() | |||
}, | |||
//自定义时间 | |||
calendarTimeChange(e) { | |||
@@ -517,7 +537,7 @@ | |||
.tongjiDesc{ | |||
width: 80%; | |||
background: #FFFFFF; | |||
border-radius: 4rpx; | |||
border-radius: 12rpx; | |||
padding: 30rpx; | |||
} | |||
.close{ | |||
@@ -14,18 +14,49 @@ | |||
<image class="screen-sel-img" src="../../../static/images/edit.png" mode=""></image> | |||
</view> | |||
</view> | |||
<!-- <view class="right"> | |||
<view class="point"></view> | |||
<view class="test">定金</view> | |||
</view> --> | |||
<view class="right"> | |||
<view class="test" | |||
>销讲执行:<text class="blue" | |||
>{{ customerInfo.fraction || 0 }}%</text | |||
></view | |||
> | |||
</view> | |||
</view> | |||
<view class="content-sec"> | |||
<view class="content-sec-lab"> | |||
手机号码:<view class="content-sec-lab1"> | |||
{{customerInfo.phone&&customerInfo.isShow==1?customerInfo.phone.length==11?customerInfo.phone.substr(0, 3) + '****' + customerInfo.phone.substr(7):customerInfo.phone:customerInfo.phone&&customerInfo.isShow!=1?customerInfo.phone: '--'}} | |||
<view class="content-sec-lab1"> | |||
手机号码:{{customerInfo.phone&&customerInfo.isShow==1?customerInfo.phone.length==11?customerInfo.phone.substr(0, 3) + '****' + customerInfo.phone.substr(7):customerInfo.phone:customerInfo.phone&&customerInfo.isShow!=1?customerInfo.phone: '--'}} | |||
</view> | |||
<view class="content-sec-lab1" style="width: 44%" | |||
>到访次数:{{ customerInfo.visitRecord || "--" }}次/{{ | |||
customerInfo.mm || 0 | |||
}}min</view | |||
> | |||
</view> | |||
<view class="content-sec-lab" @click.stop="tipupon"> | |||
<view class="content-sec-lab"> | |||
<view class="content-sec-lab1" | |||
>需求挖掘:{{ customerInfo.wordFraction || 0 }}%</view | |||
> | |||
<view class="content-sec-lab1" @click.stop="tipupon" style="width: 44%" | |||
>画像标签:<text class="look">{{ | |||
customerInfo.demand.cusSemanticWordsList.length || 0 | |||
}}</text><text class="look1" >查看</text></view | |||
> | |||
</view> | |||
<view class="content-sec-lab"> | |||
<view class="content-sec-lab1" | |||
>所属顾问:{{ customerInfo.agentName || "--" }}</view | |||
> | |||
<view class="content-sec-lab1" style="width: 44%" | |||
>客户阶段:{{ customerInfo.agentName || "--" }}</view | |||
> | |||
</view> | |||
<view class="content-sec-lab"> | |||
<view class="content-sec-lab1" | |||
>上次到访:{{ customerInfo.createTime || "--" }}</view | |||
> | |||
</view> | |||
<!-- <view class="content-sec-lab" @click.stop="tipupon"> | |||
客户标签: | |||
<text v-if="!customerInfo.demand.cusSemanticWordsList">暂无</text> | |||
<view v-else class="content-sec-tips" | |||
@@ -33,21 +64,7 @@ | |||
<view class="conmsg-msg-lab-img" v-if="customerInfo.demand.cusSemanticWordsList.length>0"> | |||
<image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image> | |||
</view> | |||
</view> | |||
<view class="content-sec-lab"> | |||
顾问姓名:<view class="content-sec-lab1">{{customerInfo.ownerName||'--'}}</view> | |||
</view> | |||
<view class="content-sec-lab"> | |||
需求挖掘:<view class="content-sec-lab1">{{customerInfo.wordFraction||0}}%</view> | |||
</view> | |||
<view class="content-sec-lab"> | |||
添加时间:<view class="content-sec-lab1">{{customerInfo.createTime}}</view> | |||
</view> | |||
<view class="content-sec-num"> | |||
<view class="">{{customerInfo.visitRecord || '--'}}次到访</view> | |||
<view class="">{{customerInfo.fraction || '0'}}% | {{customerInfo.mm || '0'}}<text | |||
style="font-size: 24rpx;">min</text></view> | |||
</view> | |||
</view> --> | |||
</view> | |||
<view class="content-last"> | |||
<view class="content-last-con"> | |||
@@ -336,9 +353,9 @@ | |||
<view class="foot-tab" @click="followRecordAdd()">写跟进</view> | |||
</view> | |||
<!-- closeable --> | |||
<u-popup v-model="tipshow" mode="center" width="500rpx" height="500rpx" closeable> | |||
<u-popup v-model="tipshow" mode="center" mask-close-able width="560rpx" border-radius="14"> | |||
<scroll-view scroll-y="true" style="height: 440rpx;"> | |||
<view style="margin-top: 60rpx; display: flex; flex-wrap: wrap; padding-left: 20rpx;"> | |||
<view style="display: flex; flex-wrap: wrap; padding:20rpx;"> | |||
<view class="upon-sec-tips" v-for="(item,index) in customerInfo.demand.cusSemanticWords" | |||
:key="index"> | |||
{{item.name}} | |||
@@ -1049,7 +1066,6 @@ | |||
display: flex; | |||
justify-content: space-between; | |||
box-sizing: border-box; | |||
// border-top: 1px solid #E0E0E0; | |||
font-weight: 400; | |||
color: #292929; | |||
height: 90rpx; | |||
@@ -1060,21 +1076,22 @@ | |||
display: flex; | |||
.img { | |||
// margin-top: 19rpx; | |||
width: 52rpx; | |||
height: 52rpx; | |||
border: 1px solid #E0E0E0; | |||
border-radius: 50%; | |||
text-align: center; | |||
line-height: 50rpx; | |||
margin-right: 20rpx; | |||
} | |||
.test { | |||
margin-top: 11rpx; | |||
font-weight: 500; | |||
color: #333333; | |||
} | |||
width: 52rpx; | |||
height: 52rpx; | |||
border-radius: 50%; | |||
text-align: center; | |||
line-height: 50rpx; | |||
margin-right: 20rpx; | |||
color: #fff; | |||
font-size: 30rpx; | |||
background: #9f61c8; | |||
} | |||
.test { | |||
margin-top: 11rpx; | |||
font-weight: 500; | |||
color: #333333; | |||
} | |||
.edit { | |||
height: 30rpx; | |||
@@ -1089,22 +1106,18 @@ | |||
} | |||
} | |||
.right { | |||
display: flex; | |||
.point { | |||
width: 12rpx; | |||
height: 12rpx; | |||
background: #2B6EFF; | |||
border-radius: 50%; | |||
margin-right: 9rpx; | |||
margin-top: 20rpx; | |||
} | |||
.test { | |||
margin-top: 11rpx; | |||
} | |||
} | |||
.right { | |||
display: flex; | |||
.test { | |||
margin-top: 11rpx; | |||
.blue { | |||
font-size: 32rpx; | |||
font-family: PingFangSC-Medium, PingFang SC; | |||
font-weight: 500; | |||
color: #2671e2; | |||
} | |||
} | |||
} | |||
} | |||
.content-sec { | |||
@@ -1113,8 +1126,9 @@ | |||
position: relative; | |||
.content-sec-lab { | |||
margin-top: 30rpx; | |||
margin-top: 28rpx; | |||
display: flex; | |||
justify-content: space-between; | |||
font-size: 30rpx; | |||
font-weight: 400; | |||
color: #666666; | |||
@@ -1122,6 +1136,21 @@ | |||
.content-sec-lab1 { | |||
color: #333333; | |||
.look{ | |||
font-size: 32rpx; | |||
font-family: PingFangSC-Semibold, PingFang SC; | |||
font-weight: 600; | |||
color: #2671E2; | |||
} | |||
.look1{ | |||
height: 42rpx; | |||
font-size: 30rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #2671E2; | |||
line-height: 42rpx; | |||
margin-left: 60rpx; | |||
} | |||
} | |||
.content-sec-tips { | |||
@@ -1404,22 +1433,21 @@ | |||
} | |||
.upon-sec-tips { | |||
// max-width:120rpx ; | |||
min-width:96rpx; | |||
height: 46rpx; | |||
background: #F2F2F2; | |||
border-radius: 6rpx; | |||
text-align: center; | |||
line-height: 26rpx; | |||
overflow: hidden; | |||
text-overflow: ellipsis; | |||
white-space: nowrap; | |||
line-height: 46rpx; | |||
// overflow: hidden; | |||
// text-overflow: ellipsis; | |||
// white-space: nowrap; | |||
font-size: 26rpx; | |||
font-weight: 400; | |||
color: #333333; | |||
margin-right: 20rpx; | |||
margin-top: 20rpx; | |||
margin: 0 20rpx 20rpx 0; | |||
padding: 0 10rpx; | |||
box-sizing: border-box; | |||
padding: 10rpx 24rpx; | |||
} | |||
.conmsg-msg-lab-img { | |||
@@ -465,20 +465,20 @@ | |||
.con-msg-con { | |||
display: flex; | |||
flex-wrap: wrap; | |||
// justify-content: space-around; | |||
border-bottom: 1px solid #E0E0E0; | |||
padding-bottom: 16rpx; | |||
.chebox { | |||
// width: 20%; | |||
height: 60rpx; | |||
line-height: 60rpx; | |||
// margin: 10rpx 0; | |||
margin-bottom: 25rpx; | |||
margin-right: 20rpx; | |||
border: 1px solid #E0E0E0; | |||
box-sizing: border-box; | |||
padding: 0 10rpx; | |||
border-radius: 12rpx; | |||
min-width: 150rpx; | |||
text-align: center | |||
} | |||
} | |||
@@ -486,7 +486,7 @@ | |||
width: 120rpx; | |||
height: 60rpx; | |||
background: #FFFFFF; | |||
border-radius: 4rpx; | |||
border-radius: 12rpx; | |||
border: 1px solid #E0E0E0; | |||
text-align: center; | |||
line-height: 60rpx; | |||
@@ -440,12 +440,15 @@ | |||
}, | |||
success: (res) => { | |||
this.first(res.data.data.id) | |||
this.content = res.data.data.content | |||
this.tit = res.data.data.title | |||
this.aid = res.data.data.accountId | |||
this.id = res.data.data.id | |||
this.isShowUpdate = res.data.data.readFlag == 0 ? true : false; | |||
let data = res.data.data | |||
if(data){ | |||
this.first(data.id) | |||
this.content = data.content | |||
this.tit = data.title | |||
this.aid = data.accountId | |||
this.id = data.id | |||
this.isShowUpdate = data.readFlag == 0 ? true : false; | |||
} | |||
} | |||
}) | |||
}, | |||
@@ -487,7 +490,7 @@ | |||
this.$u.get("/user/getMenu").then(data => { | |||
uni.setStorageSync("weapp_session_Menu_data", data) | |||
this.Menulist = uni.getStorageSync('weapp_session_Menu_data'); | |||
console.log(this.Menulist, 'adasdasds123') | |||
// console.log(this.Menulist, 'adasdasds123') | |||
}) | |||
}, | |||
//自定义时间 | |||
@@ -72,6 +72,9 @@ | |||
<view v-if="jiaoseshow" @click="Addtheessence()" | |||
style="width: 80rpx;font-size: 24rpx;text-align: center;margin-left: 22rpx;">加精华 | |||
</view> | |||
<!-- <view @click="openwajue()" | |||
style="font-size: 24rpx;text-align: center;margin-left: 22rpx;">挖掘话术 | |||
</view> --> | |||
<view @click="clickbofang(dialog.backindex,item)" | |||
style="width: 80rpx;font-size: 24rpx;text-align: center;margin-left: 14rpx;">播放 | |||
</view> | |||
@@ -118,10 +121,19 @@ | |||
<view style="width: 78rpx;text-align: center;">设备日志</view> | |||
</view> | |||
<!-- 加入常错词 --> | |||
<view class="zhezhoa" v-if="isshow2" @tap="Cancelout"></view> | |||
<view class="zhezhao" v-if="isshow2" @tap="Cancelout"></view> | |||
<u-modal v-model="isshow2" title="添加常错词" :show-cancel-button="true" @cancel="Cancelout" @confirm="Confirmtheexit"> | |||
<view class="tian-view"> | |||
<viwe class="tian-view-t2" style="margin-left: 20rpx;"> | |||
常错词:<textarea :auto-height="true" type="text" v-model="thewrongword" :disabled="isNum" class="tian-input" placeholder="请输入" /> | |||
</viwe> | |||
</view> | |||
<view class="tian-view"> | |||
<viwe class="tian-view-t3" style="margin-left: 20rpx;">正确词:<input class="huashu-input" v-model="reswrongword" type="text" placeholder="请输入" /> | |||
</viwe> | |||
</view> | |||
<!-- <view class="tian-view"> | |||
<viwe class="tian-view-t1"></viwe> | |||
<viwe class="tian-view-t2">常错词:</viwe> | |||
<viwe class="tian-view-t3"> | |||
@@ -134,7 +146,7 @@ | |||
<viwe class="tian-view-t3"> | |||
<input class="tian-input" v-model="reswrongword" type="text" placeholder="请输入" /> | |||
</viwe> | |||
</view> | |||
</view> --> | |||
</u-modal> | |||
<!-- <view class="bounced" v-if="isshow2"> | |||
@@ -158,7 +170,7 @@ | |||
</view> | |||
</view> --> | |||
<!-- 加精华 --> | |||
<view class="zhezhoa" v-if="isshow3" @tap="Cancelout2"></view> | |||
<view class="zhezhao" v-if="isshow3" @tap="Cancelout2"></view> | |||
<view class="bounced" v-if="isshow3"> | |||
<view class="jiajinghuatit">加精华</view> | |||
<view style="width: 100%;text-indent: 20rpx;font-size: 28rpx;">选择标签</view> | |||
@@ -173,8 +185,24 @@ | |||
<view class="bounced3-2" @tap="Confirmtheexit2">确认</view> | |||
</view> | |||
</view> | |||
<!-- 加入挖掘话术 --> | |||
<view class="zhezhao" v-if="wajueshow" @tap="CancelAdd"></view> | |||
<u-modal v-model="wajueshow" title="新增挖掘话术" :show-cancel-button="true" @cancel="CancelAdd" @confirm="wajueConfirm(word)"> | |||
<view class="tian-view" style="margin-left: 20rpx;"> | |||
<viwe class="tian-view-t3"> | |||
话术分类:<input class="huashu-input" disabled @click="treeshow=true" v-model="wordBiaoqian" type="text" placeholder="请选择" /> | |||
</viwe> | |||
</view> | |||
<view class="tian-view" style="margin-left: 20rpx;"> | |||
<viwe class="tian-view-t2"> | |||
话术内容:<textarea :auto-height="true" type="text" v-model="thewrongword" class="tian-input" placeholder="请输入" /> | |||
<!-- <input class="huashu-input" v-model="thewrongword" type="text" placeholder="请输入" /> --> | |||
</viwe> | |||
</view> | |||
</u-modal> | |||
<u-select v-model="treeshow" mode="mutil-column-auto" @confirm="confirm" :list="treelist"></u-select> | |||
<view class="zhezhoa" v-if="effective"></view> | |||
<view class="zhezhao" v-if="effective"></view> | |||
<view class="bounced" v-if="effective"> | |||
<view class="jiajinghuatit">选择</view> | |||
<view> | |||
@@ -212,6 +240,11 @@ | |||
}, | |||
data() { | |||
return { | |||
wajueshow: false, | |||
wordBiaoqian: '', | |||
wordBiaoqianId: [], | |||
treelist: [], | |||
treeshow: false, | |||
recordPath: "", | |||
customerId: "", | |||
luyinList: [], //录音文件 | |||
@@ -329,6 +362,7 @@ | |||
} | |||
}) | |||
this.buildingID = uni.getStorageSync('buildingID').id; | |||
this.getWordMiningList() | |||
this.userInfo = uni.getStorageSync('weapp_session_userInfo_data'); | |||
if (this.userInfo.dataCode == 6) { | |||
this.jiaoseshow = false | |||
@@ -340,7 +374,6 @@ | |||
!this.isPageHide && this.init(info) | |||
}, | |||
onHide() { | |||
this.isPageHide = true | |||
}, | |||
@@ -371,6 +404,58 @@ | |||
} | |||
}, | |||
methods: { | |||
//获取画像标签 | |||
getWordMiningList() { | |||
this.treelist = []; | |||
this.$u.get("/corpus/findSelectedWordMiningTemplate", { | |||
houseId: this.buildingID, | |||
selected: 0 | |||
}) | |||
.then((res) => { | |||
// console.log(res) | |||
if(res.length){ | |||
res.forEach(item=>{ | |||
item.value = item.id; | |||
item.label = item.name; | |||
if(item.children.length){ | |||
item.children.forEach(subitem=>{ | |||
subitem.value = subitem.id; | |||
subitem.label = subitem.name; | |||
}) | |||
}else{ | |||
item.children=[{ | |||
value: 'default'+ item.id, | |||
label: '--' | |||
}] | |||
} | |||
}) | |||
} | |||
this.treelist = res; | |||
}); | |||
}, | |||
wajueConfirm(){ | |||
}, | |||
// 挖掘话术分类树的选择 | |||
confirm(e){ | |||
console.log(e) | |||
if(e[1].label=='--'){ | |||
this.wordBiaoqian = e[0].label | |||
this.wordBiaoqianId[0] = e[0].value | |||
}else{ | |||
this.wordBiaoqian = e[0].label + '-' + e[1].label | |||
this.wordBiaoqianId[0] = e[0].value | |||
this.wordBiaoqianId[1] = e[1].value | |||
} | |||
}, | |||
CancelAdd(){ | |||
this.wajueshow = false | |||
}, | |||
//加入挖掘话术 | |||
openwajue(word) { | |||
this.wajueword = word; | |||
this.wajueshow = true; | |||
}, | |||
eqLogClick(){ | |||
uni.navigateTo({ | |||
url:`./equipmentLog?id=${this.customerId}` | |||
@@ -1190,44 +1275,41 @@ | |||
// 表单 | |||
.tian-view { | |||
width: 570upx; | |||
width: 570rpx; | |||
background-color: #FFFFFF; | |||
border-bottom: 1px solid #ededee; | |||
display: flex; | |||
min-height: 96rpx; | |||
.tian-view-t1 { | |||
width: 20rpx; | |||
font-size: 34rpx; | |||
height: 34rpx; | |||
line-height: 110rpx; | |||
letter-spacing: 0px; | |||
color: red; | |||
} | |||
margin-bottom:30rpx; | |||
.tian-view-t2 { | |||
width: 30%; | |||
min-height: 96rpx; | |||
line-height: 96rpx; | |||
width: 100%; | |||
font-size: 34rpx; | |||
display: flex; | |||
align-items: center; | |||
color: #333; | |||
.tian-input { | |||
width: 384rpx; | |||
font-size: 34rpx; | |||
padding: 0 10rpx; | |||
border: none; | |||
border-bottom: 1px solid #e0e0e0; | |||
} | |||
} | |||
.tian-view-t3 { | |||
width: 61%; | |||
padding-top: 31rpx; | |||
padding-bottom: 31rpx; | |||
width: 100%; | |||
display: flex; | |||
.tian-input { | |||
width: 98%; | |||
font-size: 34rpx; | |||
align-items: center; | |||
.huashu-input{ | |||
width: 384rpx; | |||
height: 60rpx; | |||
padding: 0 10rpx; | |||
font-size: 34rpx; | |||
border: none; | |||
border-bottom: 1px solid #E0E0E0; | |||
} | |||
} | |||
} | |||
.zhezhoa { | |||
.zhezhao { | |||
position: fixed; | |||
top: 0; | |||
left: 0; | |||
@@ -66,6 +66,9 @@ | |||
<view @click="Oftenthewrongword()" | |||
style="width: 80rpx;font-size: 24rpx;text-align: center;margin-left: 22rpx;">常错词 | |||
</view> | |||
<view @click="openwajue(item)" | |||
style="font-size: 24rpx;text-align: center;margin-left: 22rpx;">挖掘话术 | |||
</view> | |||
<view v-if="jiaoseshow" @click="Addtheessence()" | |||
style="width: 80rpx;font-size: 24rpx;text-align: center;margin-left: 22rpx;">加精华 | |||
</view> | |||
@@ -129,7 +132,7 @@ | |||
</view> | |||
</template> | |||
<!-- 标记 --> | |||
<view class="zhezhoa" v-if="biojiisshow" @tap="unmarktap()"></view> | |||
<view class="zhezhao" v-if="biojiisshow" @tap="unmarktap()"></view> | |||
<view class="bounced" v-if="biojiisshow"> | |||
<view class="jiajinghuatit">标记为顾问</view> | |||
<view | |||
@@ -145,51 +148,36 @@ | |||
</view> | |||
</view> | |||
<!-- 加入常错词 --> | |||
<view class="zhezhoa" v-if="isshow2" @tap="Cancelout"></view> | |||
<u-modal v-model="isshow2" title="添加常错词" :show-cancel-button="true" @cancel="Cancelout" | |||
@confirm="$noMultipleClicks(Confirmtheexit)"> | |||
<view class="tian-view"> | |||
<viwe class="tian-view-t1"></viwe> | |||
<viwe class="tian-view-t2">常错词:</viwe> | |||
<!-- 加入挖掘话术 --> | |||
<view class="zhezhao" v-if="wajueshow" @tap="CancelAdd"></view> | |||
<u-modal v-model="wajueshow" title="新增挖掘话术" :show-cancel-button="true" @cancel="CancelAdd" @confirm="wajueConfirm()"> | |||
<view class="tian-view" style="margin-left: 20rpx;"> | |||
<viwe class="tian-view-t3"> | |||
<textarea :auto-height="true" type="text" v-model="thewrongword" :disabled="isNum" | |||
class="tian-input" placeholder="请输入" /> | |||
话术分类:<input class="huashu-input" disabled @click="treeshow=true" v-model="wordBiao.wordBiaoqian" type="text" placeholder="请选择" /> | |||
</viwe> | |||
</view> | |||
<view class="tian-view" style="margin-bottom: 74rpx;"> | |||
<viwe class="tian-view-t1"></viwe> | |||
<viwe class="tian-view-t2">正确词:</viwe> | |||
<viwe class="tian-view-t3"> | |||
<input class="tian-input" v-model="reswrongword" type="text" placeholder="请输入" /> | |||
<view class="tian-view" style="margin-left: 20rpx;"> | |||
<viwe class="tian-view-t2"> | |||
话术内容:<textarea :auto-height="true" type="text" v-model="thewrongword" class="tian-input" placeholder="请输入" /> | |||
</viwe> | |||
</view> | |||
</u-modal> | |||
<!-- <view class="bounced" v-if="isshow2"> | |||
<!-- 加入常错词 --> | |||
<view class="zhezhao" v-if="isshow2" @tap="Cancelout"></view> | |||
<u-modal v-model="isshow2" title="添加常错词" :show-cancel-button="true" @cancel="Cancelout" @confirm="$noMultipleClicks(Confirmtheexit)"> | |||
<view class="tian-view"> | |||
<viwe class="tian-view-t1"></viwe> | |||
<viwe class="tian-view-t2">常错词:</viwe> | |||
<viwe class="tian-view-t3"> | |||
<input type="text" v-model="thewrongword" class="tian-input" placeholder="请输入" /> | |||
<viwe class="tian-view-t2" style="margin-left: 20rpx;"> | |||
常错词:<textarea :auto-height="true" type="text" v-model="thewrongword" :disabled="isNum" class="tian-input" placeholder="请输入" /> | |||
</viwe> | |||
</view> | |||
<view class="tian-view"> | |||
<viwe class="tian-view-t1"></viwe> | |||
<viwe class="tian-view-t2">正确词:</viwe> | |||
<viwe class="tian-view-t3"> | |||
<input class="tian-input" v-model="reswrongword" type="text" placeholder="请输入" /> | |||
</viwe> | |||
</view> | |||
<view class="bounced3"> | |||
<view class="bounced3-1" @tap="Cancelout">取消</view> | |||
<view class="bounced3-2" @tap="Confirmtheexit">确认</view> | |||
<viwe class="tian-view-t3" style="margin-left: 20rpx;">正确词:<input class="huashu-input" v-model="reswrongword" type="text" placeholder="请输入" /></viwe> | |||
</view> | |||
</view> --> | |||
</u-modal> | |||
<!-- 加精华 --> | |||
<view class="zhezhoa" v-if="isshow3" @tap="Cancelout2"></view> | |||
<view class="zhezhao" v-if="isshow3" @tap="Cancelout2"></view> | |||
<view class="bounced" v-if="isshow3"> | |||
<view class="jiajinghuatit">加精华</view> | |||
<view style="width: 100%;text-indent: 20rpx;font-size: 28rpx;">选择标签</view> | |||
@@ -206,7 +194,7 @@ | |||
</view> | |||
<!-- 接待详情 --> | |||
<view class="zhezhoa" @click="clenReceivedetailsabout()" v-if="Receivedetailsabout"></view> | |||
<view class="zhezhao" @click="clenReceivedetailsabout()" v-if="Receivedetailsabout"></view> | |||
<view class="followingpop-up" v-if="Receivedetailsabout"> | |||
<view class="guanbibox"> | |||
<image class="guanbixen" @click="clenReceivedetailsabout()" src="../../static/images/Shutdown.png" | |||
@@ -247,7 +235,7 @@ | |||
</view> | |||
<!-- 销讲执行 --> | |||
<view class="zhezhoa" @click="clenReceivedetailsabout()" v-if="Pinspeak"></view> | |||
<view class="zhezhao" @click="clenReceivedetailsabout()" v-if="Pinspeak"></view> | |||
<view class="followingpop-up" v-if="Pinspeak"> | |||
<view class="guanbibox"> | |||
<image class="guanbixen" @click="clenReceivedetailsabout()" src="../../static/images/Shutdown.png" | |||
@@ -392,7 +380,7 @@ | |||
</view> | |||
<!-- 客户意向 --> | |||
<view class="zhezhoa" @click="clenReceivedetailsabout()" v-if="intention"></view> | |||
<view class="zhezhao" @click="clenReceivedetailsabout()" v-if="intention"></view> | |||
<view class="followingpop-up" v-if="intention"> | |||
<view class="guanbibox"> | |||
<image class="guanbixen" @click="clenReceivedetailsabout()" src="../../static/images/Shutdown.png" | |||
@@ -465,7 +453,7 @@ | |||
<view class="calibration" @click="$noMultipleClicks(tocalibration)">校准</view> | |||
</view> | |||
<view class="zhezhoa" v-if="effective"></view> | |||
<view class="zhezhao" v-if="effective"></view> | |||
<view class="bounced" v-if="effective"> | |||
<view class="jiajinghuatit">选择</view> | |||
<view> | |||
@@ -491,7 +479,7 @@ | |||
</view> | |||
<!-- 修改角色 --> | |||
<view class="zhezhoa" v-if="roleisshaw" @tap="unmarktap()"></view> | |||
<view class="zhezhao" v-if="roleisshaw" @tap="unmarktap()"></view> | |||
<view class="bounced" v-if="roleisshaw"> | |||
<view class="jiajinghuatit">修改角色</view> | |||
<view | |||
@@ -511,7 +499,7 @@ | |||
</view> | |||
<u-toast ref="uToast" /> | |||
<u-select v-model="treeshow" mode="mutil-column-auto" @confirm="confirmTree" :list="treelist"></u-select> | |||
<!-- 加载组件 --> | |||
<loading v-model="LOADING"></loading> | |||
@@ -533,6 +521,14 @@ | |||
data() { | |||
return { | |||
wordBiao: { | |||
level: 1, | |||
wordBiaoqian: '', | |||
wordBiaoqianId: '' | |||
},// 添加话术 | |||
treelist: [], | |||
huaxiangList: [], | |||
treeshow: false, | |||
KeyWordsfraction: 0, | |||
KeyWordsfractionList: [], | |||
noClick: true, | |||
@@ -598,7 +594,6 @@ | |||
Menulistisshow: false, | |||
validInvalid: 0, | |||
calibration: 0, | |||
effective: false, | |||
effectiveindex: '0', | |||
effectiveitems: [{ | |||
@@ -627,12 +622,12 @@ | |||
textItself: '', | |||
argtextindex1: 0, | |||
argtextindex2: 0, | |||
wajueshow: false, | |||
wajueword: '', | |||
roleisshaw: false, | |||
roleindexrow: 0, | |||
roletiaoshu: 0, | |||
infos: null, | |||
ACTION: Symbol('zaudio'), // 唯一值区分每个页面的方法 | |||
isPageHide: false, // 是否息屏 | |||
duration: '', // 总时长 | |||
@@ -698,6 +693,7 @@ | |||
this.intention = false; | |||
this.kehuyixiangcenterindex = 0; | |||
this.buildingID = uni.getStorageSync('buildingID').id; | |||
this.getWordMiningList() | |||
this.userInfo = uni.getStorageSync('weapp_session_userInfo_data'); | |||
if (this.userInfo.dataCode == 6 || this.userInfo.dataCode == 3) { | |||
this.methodsisshow = false; | |||
@@ -730,6 +726,67 @@ | |||
}, | |||
methods: { | |||
//获取画像标签 | |||
getWordMiningList() { | |||
this.treelist = []; | |||
this.$u.get("/corpus/findSelectedWordMiningTemplate", { | |||
houseId: this.buildingID, | |||
selected: 0 | |||
}) | |||
.then((res) => { | |||
// console.log(res) | |||
if(res.length){ | |||
res.forEach(item=>{ | |||
item.value = item.id; | |||
item.label = item.name; | |||
if(item.children.length){ | |||
item.children.forEach(subitem=>{ | |||
subitem.value = subitem.id; | |||
subitem.label = subitem.name; | |||
}) | |||
}else{ | |||
item.children=[{ | |||
value: 'default'+ item.id, | |||
label: '--' | |||
}] | |||
} | |||
}) | |||
} | |||
this.treelist = res; | |||
}); | |||
}, | |||
// 添加挖掘词 | |||
wajueConfirm(){ | |||
this.$u.post("/corpus/addWordMining", { | |||
"houseId":this.buildingID,// 楼盘id | |||
"cusId":this.customerId, //客户id | |||
"question":this.thewrongword,// 问题 | |||
"keywordsId":this.wordBiao.wordBiaoqianId,// 标签id | |||
"level":this.wordBiao.level // 标签等级 | |||
}) | |||
.then((res) => { | |||
console.log(res) | |||
this.wajueItem.isshow = false | |||
}) | |||
}, | |||
// 挖掘话术分类树的选择 | |||
confirmTree(e){ | |||
console.log(e) | |||
if(e[1].label=='--'){ | |||
this.wordBiao.wordBiaoqian = e[0].label | |||
this.wordBiao.wordBiaoqianId = e[0].value | |||
this.wordBiao.level = 1 | |||
}else{ | |||
this.wordBiao.wordBiaoqian = e[0].label + '/' + e[1].label | |||
this.wordBiao.wordBiaoqianId= e[1].value | |||
this.wordBiao.level = 2 | |||
} | |||
console.log(this.wordBiao.wordBiaoqian) | |||
}, | |||
CancelAdd(){ | |||
this.wajueshow = false | |||
this.wajueItem.isshow= false | |||
}, | |||
// 选中取反 | |||
cbChange(item) { | |||
item.checked = !item.checked | |||
@@ -1060,8 +1117,6 @@ | |||
} | |||
}, | |||
//接待详情点击 | |||
Receivedetailsabouttab(stringa) { | |||
if (stringa == 'Receivedetailsabout') { | |||
@@ -1527,6 +1582,11 @@ | |||
this.reswrongword = ""; | |||
this.isshow2 = true; | |||
}, | |||
//加入挖掘话术 | |||
openwajue(item) { | |||
this.wajueItem = item | |||
this.wajueshow = true; | |||
}, | |||
//加精华 | |||
Addtheessence() { | |||
this.refined = true | |||
@@ -1610,7 +1670,7 @@ | |||
changanxiaoguo(item, index, i) { | |||
this.messagelisy = []; | |||
this.changanitem = {}; | |||
this.duihuawenjianid = "", | |||
this.duihuawenjianid = ""; | |||
this.cancelBeast() | |||
this.changanitem = item; | |||
this.duihuawenjianid = this.luyinList[this.csdFileindex].id; | |||
@@ -1677,7 +1737,7 @@ | |||
show: false, | |||
ratepercent: 0, | |||
children: [], | |||
viewFlag: item.viewFlag, | |||
viewFlag: item.viewFlag | |||
}) | |||
} else { | |||
if (item.selected == 0) { | |||
@@ -2141,7 +2201,7 @@ | |||
} | |||
.zhezhoa { | |||
.zhezhao { | |||
position: fixed; | |||
top: 0; | |||
left: 0; | |||
@@ -2626,39 +2686,36 @@ | |||
// 表单 | |||
.tian-view { | |||
width: 570upx; | |||
width: 570rpx; | |||
background-color: #FFFFFF; | |||
border-bottom: 1px solid #ededee; | |||
display: flex; | |||
min-height: 96rpx; | |||
.tian-view-t1 { | |||
width: 20rpx; | |||
font-size: 34rpx; | |||
height: 34rpx; | |||
line-height: 110rpx; | |||
letter-spacing: 0px; | |||
color: red; | |||
} | |||
margin-bottom:30rpx; | |||
.tian-view-t2 { | |||
width: 30%; | |||
min-height: 96rpx; | |||
line-height: 96rpx; | |||
width: 100%; | |||
font-size: 34rpx; | |||
display: flex; | |||
align-items: center; | |||
color: #333; | |||
.tian-input { | |||
width: 384rpx; | |||
font-size: 34rpx; | |||
padding: 0 10rpx; | |||
border: none; | |||
border-bottom: 1px solid #e0e0e0; | |||
} | |||
} | |||
.tian-view-t3 { | |||
width: 61%; | |||
padding-top: 31rpx; | |||
padding-bottom: 31rpx; | |||
width: 100%; | |||
display: flex; | |||
.tian-input { | |||
width: 98%; | |||
font-size: 34rpx; | |||
align-items: center; | |||
.huashu-input{ | |||
width: 384rpx; | |||
height: 60rpx; | |||
padding: 0 10rpx; | |||
font-size: 34rpx; | |||
border: none; | |||
border-bottom: 1px solid #E0E0E0; | |||
} | |||
} | |||
} | |||
@@ -1,8 +1,8 @@ | |||
// http.js使用域名 | |||
// const baseUrl = 'http://81.70.55.170:9090/autoSR/api';// 最新测试 | |||
const baseUrl = 'http://81.70.55.170:9090/autoSR/api';// 最新测试 | |||
// const baseUrl = 'http://127.0.0.1:8080/autoSR/api'; // 本地 | |||
// const baseUrl = 'http://192.168.31.169:8080/autoSR/api'; // 长龙 | |||
const baseUrl = 'http://192.168.31.149:9090/api'; // 盛浩 | |||
// const baseUrl = 'http://192.168.31.149:9090/api'; // 盛浩 | |||
// const baseUrl = 'https://zkgj.quhouse.com/api'; // 质控正式 | |||
// const baseUrl = 'https://hfju.com/api'; // 数智正式 | |||
// const baseUrl = 'https://xitong.pachira.cn/api'; // AI营销辅助 普强使用 | |||