@@ -1,5 +1,6 @@ | |||
const ENV_PATH = { | |||
baseUrl: 'http://81.70.55.170:9090/autoSR/api', // 微信的测试环境 | |||
baseUrl: 'http://81.70.55.170:7070/api', //7070测试环境 | |||
// baseUrl: 'http://81.70.55.170:9090/autoSR/api', // 9090测试环境 | |||
} | |||
module.exports = ENV_PATH |
@@ -1,5 +1,5 @@ | |||
{ | |||
"name" : "去房智控管家", | |||
"name" : "数智工牌", | |||
"appid" : "__UNI__7A1611D", | |||
"description" : "去房智控管家", | |||
"versionName" : "1.1.0", | |||
@@ -52,8 +52,11 @@ | |||
<view class="audonum" v-if="item.name=='接待时长'">{{item.name}}/分</view> | |||
<view class="audonum" v-else>{{item.name}}</view> | |||
<view class="num"> | |||
<view class="" style="width: 35%;"> | |||
{{index==1?item.num+'%':item.num}} | |||
<view v-if="index==1" style="width: 35%;"> | |||
{{item.num>100?100:item.num}}% | |||
</view> | |||
<view v-else style="width: 35%;"> | |||
{{item.num||0}} | |||
</view> | |||
<view class="comparesize" v-if="compareFlag&&timepickpickisshow"> | |||
<text style="margin-right: 10rpx;">对比:{{index==1?item.num1+'%':item.num1}} </text> | |||
@@ -468,19 +471,19 @@ | |||
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[0].num = data.startSumCustomer||0 | |||
this.numlist[1].num = data.startFraction||0 | |||
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[0].num1 = data.endSumCustomer||0 | |||
this.numlist[1].num1 = data.endFraction||0 | |||
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 = data.contrastSumDuration || 0; | |||
this.numlist[1].num2 = data.contrastFraction||0 | |||
this.numlist[2].num2 = data.contrastSumDuration | |||
} else { | |||
this.compareFlag = false | |||
} | |||
@@ -71,7 +71,7 @@ | |||
<view class="ranking1" v-else>{{i+1}}</view> | |||
</view> | |||
<view>{{chend.name}}({{chend.total}})</view> | |||
<view>{{chend.proportion}}%</view> | |||
<view>{{chend.proportion>100?100:chend.proportion}}%</view> | |||
<view @click="Toview(item,i)">查看</view> | |||
</view> | |||
</view> | |||
@@ -52,12 +52,10 @@ | |||
</view> | |||
<view class="Piabodata-text">需求挖掘分析</view> | |||
</view> | |||
</view> | |||
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view> | |||
<view class="boxzonglan" style="min-height: 400rpx;"> | |||
<view class="zonglantit">简报</view> | |||
<view class="zonglantit">简报1</view> | |||
<view class="zonglanbox"> | |||
<view class="grid" v-for="(item,index) in numlist" :key="index"> | |||
<view class="audonum">{{item.name}}</view> | |||
@@ -66,7 +64,6 @@ | |||
</view> | |||
</view> | |||
<view style="width: 100%;height: 20rpx;background: #FAFAFA;"></view> | |||
<view class="single"> | |||
<view class="title"> | |||
@@ -128,15 +125,8 @@ | |||
<view class="title2-che" style="width: 220rpx;">{{staff.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">合计:{{allnum1||0}}</view> | |||
<view class="heji">均值:{{allavg1||0}}</view> | |||
</view> --> | |||
<view class="danwei">单位(%)</view> | |||
<view class="uchaserbox"> | |||
<qiun-data-charts type="line" :chartData="lineOptsect2" background="none" :ontouch="true" | |||
@@ -149,19 +139,7 @@ | |||
<view class="single"> | |||
<view class="title"> | |||
<view class="title1">场景触达分析</view> | |||
<!-- <view class="title3"> | |||
<view class="title3-box"> | |||
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 0 }">执行率</view> | |||
</view> | |||
<view class="title3-box"> | |||
<view style="height: 42rpx;" :class="{ activecltab: activeTotal2 == 1 }">得分</view> | |||
</view> | |||
</view> --> | |||
</view> | |||
<!-- <view class="hejibox"> | |||
<view class="heji">合计:50</view> | |||
<view class="heji">均值:25</view> | |||
</view> --> | |||
<view style="width: 100%;height: 300rpx;text-align: center;line-height: 300rpx;" | |||
v-if="newlisttabinfo.length==0">暂无数据</view> | |||
<view v-else class="jindu" style="margin-top: 20rpx;"> | |||
@@ -206,9 +184,7 @@ | |||
</view> | |||
</view> | |||
</scroll-view> | |||
</view> | |||
</view> | |||
<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar> | |||
@@ -216,10 +192,6 @@ | |||
:default-value='selindex'></u-select> | |||
<u-select v-model="staffShow1" :list="teamList" @confirm="staffSelectCallback($event,1)" | |||
:default-value='selindex'></u-select> | |||
<!-- 加载组件 --> | |||
<loading v-model="LOADING"></loading> | |||
</view> | |||
@@ -227,7 +199,6 @@ | |||
<script> | |||
var app = getApp(); | |||
// var util = require("../../../utils/util.js"); | |||
var config = require("../../../config"); | |||
import loading from "@/components/loading/index.vue" | |||
export default { | |||
@@ -355,7 +326,6 @@ | |||
Groupcontrastisshow: false, | |||
allechar: [], | |||
allList: [], | |||
lineOpts: { | |||
yAxis: { | |||
data: [{ | |||
@@ -507,7 +477,7 @@ | |||
}) | |||
.then(res => { | |||
res.sumDuration = Math.floor(res.sumDuration / 60) || 0 | |||
res.fraction = (res.fraction || 0) + '%' | |||
res.fraction = (res.fraction>100?100:(res.fraction||0)) + '%' | |||
this.numlist.map(item => { | |||
item.num = res[item.setName] | |||
}) | |||
@@ -671,7 +641,7 @@ | |||
this.allList[index].children.map(item => { | |||
arr.push({ | |||
name: item.name, | |||
zxl: item.zxl | |||
zxl: item.zxl>100?100:item.zxl | |||
}) | |||
}) | |||
this.newlisttabinfo1 = arr | |||
@@ -91,7 +91,7 @@ | |||
<view class="ranking1" v-else>{{i+1}}</view> | |||
</view> | |||
<view class="u-line-1">{{item.name}}({{item.selected}})</view> | |||
<view>{{item.fraction}}%</view> | |||
<view>{{max100(item.fraction)}}%</view> | |||
<view @click="Toview(item,i)">查看</view> | |||
</view> | |||
</view> | |||
@@ -263,6 +263,15 @@ | |||
this.getdata() | |||
}, | |||
methods: { | |||
max100(num) { | |||
if(num>100){ | |||
return 100 | |||
} else if(!num){ | |||
return 0; | |||
}else{ | |||
return num; | |||
} | |||
}, | |||
getdata(){ | |||
// 需求挖掘分析-简报 | |||
this.wordMiningAnalyze() | |||
@@ -366,9 +375,9 @@ | |||
} | |||
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) + '%' | |||
res.contrast.wordFraction = (res.contrast.wordFraction||0) + '%' | |||
res.first.wordFraction = this.max100(res.first.wordFraction) + '%' | |||
res.end.wordFraction = this.max100(res.end.wordFraction) + '%' | |||
this.numlist.forEach(item => { | |||
item.duibinum = res.contrast[item.setName] | |||
item.endnum = res.end[item.setName] | |||
@@ -17,7 +17,7 @@ | |||
<view class="right"> | |||
<view class="test" | |||
>销讲执行:<text class="blue" | |||
>{{ customerInfo.fraction || 0 }}%</text | |||
>{{ max100(customerInfo.fraction)}}%</text | |||
></view | |||
> | |||
</view> | |||
@@ -35,7 +35,7 @@ | |||
</view> | |||
<view class="content-sec-lab"> | |||
<view class="content-sec-lab1" | |||
>需求挖掘:{{ customerInfo.wordFraction || 0 }}%</view | |||
>挖掘执行:{{ max100(customerInfo.wordFraction)}}%</view | |||
> | |||
<view class="content-sec-lab1" @click.stop="tipupon" style="width: 44%" | |||
>画像标签:<text class="look">{{ | |||
@@ -105,10 +105,6 @@ | |||
<view class="name">{{item.agentName || '--'}}</view> | |||
<view class="status" v-if="item.replaceReception==1">代接待</view> | |||
</view> | |||
<!-- <view class="right"> | |||
<view class="point"></view> | |||
<view class="">优秀案例</view> | |||
</view> --> | |||
</view> | |||
<view class="content-sec"> | |||
@@ -116,7 +112,7 @@ | |||
<view class="cus" style="line-height: 46rpx;">客户:{{item.name || '--'}} |</view> | |||
<view style="line-height: 46rpx;" class="arriveNum">{{item.visitRecord || '0'}}次到访</view> | |||
</view> | |||
<view class="right">{{item.fraction || '0'}}%</view> | |||
<view class="right">{{max100(item.fraction)}}%</view> | |||
</view> | |||
<view class="content-last">{{item.createTime}} | {{item.mm || 0}}min</view> | |||
@@ -371,6 +367,15 @@ | |||
this.tabtimetap(0) | |||
}, | |||
methods: { | |||
max100(num) { | |||
if(num>100){ | |||
return 100 | |||
} else if(!num){ | |||
return 0; | |||
}else{ | |||
return num; | |||
} | |||
}, | |||
changeshowlevel1(item,type){ | |||
console.log(item) | |||
item.show = !item.show | |||
@@ -101,7 +101,7 @@ | |||
<view class="right"> | |||
<view class="test" | |||
>销讲执行:<text class="blue" | |||
>{{ item.fraction || 0 }}%</text | |||
>{{ max100(item.fraction)}}%</text | |||
></view | |||
> | |||
</view> | |||
@@ -119,7 +119,7 @@ | |||
</view> | |||
<view class="content-sec-lab"> | |||
<view class="content-sec-lab1" | |||
>需求挖掘:{{ item.wordFraction || 0 }}%</view | |||
>挖掘执行:{{ max100(item.wordFraction) }}%</view | |||
> | |||
<view class="content-sec-lab1" style="width: 44%" | |||
>画像标签:<text style="font-weight: 600">{{ | |||
@@ -818,6 +818,15 @@ export default { | |||
}, | |||
methods: { | |||
max100(num) { | |||
if(num>100){ | |||
return 100 | |||
} else if(!num){ | |||
return 0; | |||
}else{ | |||
return num; | |||
} | |||
}, | |||
// 获取客户来源 | |||
getFromSource() { | |||
this.$u.get(config.service.sourceList, { | |||
@@ -112,11 +112,11 @@ | |||
<view class="realtext">平均接待时长</view> | |||
</view> | |||
<view class="real" @click="tapjumpreception(checkParams('auth'))"> | |||
<view class="realnum">{{realtimeobj.fraction || 0}}%</view> | |||
<view class="realnum">{{max100(realtimeobj.fraction)}}%</view> | |||
<view class="realtext">平均执行率</view> | |||
</view> | |||
<view class="real" @click="tapjumpreception(checkParams('6'))"> | |||
<view class="realnum">{{realtimeobj.wordFraction || 0}}%</view> | |||
<view class="realnum">{{max100(realtimeobj.wordFraction)}}%</view> | |||
<view class="realtext">平均挖掘率</view> | |||
</view> | |||
<view class="real"> | |||
@@ -150,7 +150,7 @@ | |||
<view class="realtext">有效接待</view> | |||
</view> | |||
<view class="real" @click="tapjumpreception(checkParams('333'))"> | |||
<view class="realnum">{{Thisweekobj.fraction>100?100:(Thisweekobj.fraction||0)}}%</view> | |||
<view class="realnum">{{max100(Thisweekobj.fraction)}}%</view> | |||
<view class="realtext">平均执行率</view> | |||
</view> | |||
</view> | |||
@@ -160,7 +160,7 @@ | |||
<view class="realtext">平均接待时长</view> | |||
</view> | |||
<view class="real" @click="tapjumpreception(checkParams('333'))"> | |||
<view class="realnum">{{Thisweekobj.wordFraction || 0}}%</view> | |||
<view class="realnum">{{max100(Thisweekobj.wordFraction)}}%</view> | |||
<view class="realtext">平均挖掘率</view> | |||
</view> | |||
<view class="real" @click="prohibitedtap(2)" v-if="methodsisshow==true"> | |||
@@ -216,7 +216,6 @@ | |||
<script> | |||
var config = require("../../config"); | |||
var util = require("../../utils/util.js"); | |||
import tabbarList from '@/utils/tabbar.js' | |||
import uParse from '../../components/gaoyia-parse/parse.vue' | |||
import loading from "@/components/loading/index.vue" | |||
@@ -284,7 +283,6 @@ | |||
}; | |||
}, | |||
computed: { | |||
// 是否是普强小程序 | |||
showMenu() { | |||
@@ -353,7 +351,6 @@ | |||
onPullDownRefresh() { | |||
this.getMenu() | |||
this.userInfo = uni.getStorageSync('weapp_session_userInfo_data'); | |||
if (this.userInfo.dataCode == 6 || this.userInfo.dataCode == 3) { | |||
this.methodsisshow = false; | |||
@@ -391,6 +388,15 @@ | |||
}, 3000) | |||
}, | |||
methods: { | |||
max100(num) { | |||
if(num>100){ | |||
return 100 | |||
} else if(!num){ | |||
return 0; | |||
}else{ | |||
return num; | |||
} | |||
}, | |||
towajue() { | |||
uni.navigateTo({ | |||
url: "/pages/center/Piabodata/requireminingAnalysis" | |||
@@ -72,8 +72,17 @@ | |||
style="font-size: 24rpx;text-align: center;margin-left: 14rpx;">修改角色 | |||
</view> | |||
</view> | |||
<!-- ----------新加标签标识------------ --> | |||
<view class="newmark"> | |||
<!-- 1 客户画像 2销讲词 3违禁 4 需求挖掘 --> | |||
<image v-if="(dealTypes(item.types))[0]==1" class="markicon" src="https://static.quhouse.com/37e0de3f8d1c421dac8bf699d5e7992d.png"></image> | |||
<image v-if="(dealTypes(item.types))[0]==2" class="markicon" src="https://static.quhouse.com/b106e8e75db24a59a579a15a78830a76.png"></image> | |||
<image v-if="(dealTypes(item.types))[0]==3" class="markicon" src="https://static.quhouse.com/8443a2ecb81d4639991ab29c422e9949.png"></image> | |||
<image v-if="(dealTypes(item.types))[0]==4" class="markicon" src="https://static.quhouse.com/1cd794cb6c974d9dad948a6dd444518b.png"></image> | |||
<view class="marktext" v-if="(dealTypes(item.types))[0]!=0">{{(dealTypes(item.types))[1]}}</view> | |||
</view> | |||
</view> | |||
<image v-if="!refined" @click="clickbofang(dialog.backindex,item)" class="play" | |||
<image v-if="!refined" @click="clickbofang(dialog.backindex,item)" class="play" | |||
src="../../static/images/recordingManagement/play.png"></image> | |||
</view> | |||
</view> | |||
@@ -562,6 +571,7 @@ | |||
data() { | |||
return { | |||
icon:2, | |||
customStyle: { | |||
'width': '320rpx', | |||
'font-size': '34rpx', | |||
@@ -687,6 +697,7 @@ | |||
return this.getTime(e); | |||
} | |||
}, | |||
}, | |||
onLoad(options) { | |||
this.LOADING = true | |||
@@ -769,6 +780,15 @@ | |||
}, | |||
methods: { | |||
dealTypes(type){ | |||
if(type){ | |||
let tem = type.split('-') | |||
console.log(tem); | |||
return tem | |||
}else{ | |||
return [0,''] | |||
} | |||
}, | |||
clickWajue(item){ | |||
if(item.selected==0){ | |||
this.Pinspeak = false | |||
@@ -1467,7 +1487,7 @@ | |||
}) | |||
}, | |||
//搜索跳转 | |||
adasdasdasd(e) { | |||
toSearch(e) { | |||
this.stepPlay(e) | |||
}, | |||
//下一页 | |||
@@ -1942,8 +1962,10 @@ | |||
this.newluyinList = jsonInfo; | |||
console.log(this.newluyinList) | |||
this.dialogList.push(jsonInfo[this.textindex]); | |||
console.log('this.dialogList') | |||
console.log(this.dialogList) | |||
var itc = parseInt(info.bg / 1000) | |||
this.adasdasdasd(itc) | |||
this.toSearch(itc) | |||
}, | |||
fail: () => { | |||
@@ -2642,9 +2664,6 @@ | |||
} | |||
} | |||
} | |||
} | |||
@@ -2716,6 +2735,7 @@ | |||
.scroll-Y .text .contentInfo .contentMain { | |||
display: flex; | |||
align-items: center; | |||
} | |||
.scroll-Y .text .contentInfo .contentMain .content { | |||
@@ -2725,10 +2745,37 @@ | |||
padding: 0 5px; | |||
border-radius: 8upx; | |||
max-width: 442rpx; | |||
min-width: 120rpx; | |||
background: #F6F6F6; | |||
color: #999999; | |||
position: relative; | |||
.newmark{ | |||
z-index: 1000; | |||
position: absolute; | |||
bottom: -50rpx; | |||
left: 0; | |||
display: flex; | |||
font-size: 30rpx; | |||
align-items: center; | |||
min-width: 180rpx; | |||
.markicon { | |||
width: 36rpx; | |||
height: 36rpx; | |||
margin-right: 12rpx; | |||
} | |||
.marktext{ | |||
font-size: 24rpx; | |||
font-family: PingFangSC-Regular, PingFang SC; | |||
font-weight: 400; | |||
color: #3E50E8; | |||
padding: 0 16rpx; | |||
text-align: center; | |||
height: 36rpx; | |||
line-height: 36rpx; | |||
border-radius: 4rpx; | |||
border: 1rpx solid #3E50E8; | |||
} | |||
} | |||
.tankuangcss { | |||
position: absolute; | |||
top: -140rpx; | |||
@@ -2745,7 +2792,6 @@ | |||
border-radius: 15rpx; | |||
z-index: 1000; | |||
} | |||
.bottoms { | |||
top: unset; | |||
bottom: -140rpx; | |||