Bläddra i källkod

需求挖掘功能二期

yun
corala 2 år sedan
förälder
incheckning
1aec2ba98e
6 ändrade filer med 1997 tillägg och 1351 borttagningar
  1. +74
    -15
      pages/center/Piabodata/Employeesstatistics.vue
  2. +23
    -0
      pages/center/Piabodata/StaffAnalysis.vue
  3. +1
    -1
      pages/center/Piabodata/index.vue
  4. +1430
    -1023
      pages/center/consumer/index.vue
  5. +393
    -258
      pages/center/records/index.vue
  6. +76
    -54
      pages/mine/details2.vue

+ 74
- 15
pages/center/Piabodata/Employeesstatistics.vue Visa fil

@@ -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;


+ 23
- 0
pages/center/Piabodata/StaffAnalysis.vue Visa fil

@@ -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
- 1
pages/center/Piabodata/index.vue Visa fil

@@ -54,7 +54,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>


+ 1430
- 1023
pages/center/consumer/index.vue
Filskillnaden har hållits tillbaka eftersom den är för stor
Visa fil


+ 393
- 258
pages/center/records/index.vue Visa fil

@@ -1,7 +1,7 @@
<template>
<view class="box">
<!-- 搜索框点击跳转 -->
<view>
<!-- <view>
<view class="search-box">
<view class="search" @click="goSearch">
<view class="search-img">
@@ -10,23 +10,23 @@
<view class="search-text">输入客户姓名/手机号</view>
</view>
</view>
</view>
</view> -->

<!-- 选择器 -->
<view class="boxtittab">
<view class="tabbox" @click="tapsoltishow">
<view class="tabbox" @click="soltishow = true">
{{ sortFilter }}
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
<view class="tabbox" @click="taptimeisshow">
<view class="tabbox" @click="timeshow = true">
{{ arriveFilter }}
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
<view class="tabbox" @click="taptimetuisshow">
{{ receptionDuration }}
<view class="tabbox" @click="selectshow = true">
{{ counselorName }}
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
<view class="tabbox" @click="screenshow">
<view class="tabbox" @click="screenShow = true">
更多筛选<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
</view>
@@ -48,129 +48,165 @@
@click="tapThevisiting(item)">
<view class="content-first">
<view class="left">
<!-- <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;color: red;">{{item.receptionStatusName || ''}}
<view class="normal-status">{{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">
<view v-if="methodsisshow">
<text style="color: red;" v-if="item.taboo==1">违禁接待</text>
<text v-if="item.taboo==1"> |</text>
</view>
<!-- <view class="point"></view> -->
<view v-if="item.markAdvisor==0" class="">未标记</view>
<view v-if="item.markAdvisor==1" class="">已标记</view>
</view>
<view class="right" v-else>
<view class="">无录音</view>
</view>


</view>
<view class="content-sec">
<view class="left">
<view class="cus">客户:{{item.name || '--'}} |</view>
<view class="arriveNum">第{{item.visitRecord || "--"}}次接待</view>
</view>
<view class="right">
{{item.fraction || '0'}}%
</view>
<view class="content-time">
{{item.createTime}} | {{item.mm || '0'}}min
</view>
<view class="content-last">
需求挖掘:{{item.wordFraction|| 0}}%
<view class="content-sec">
<view class="left">客户:{{item.name || '--'}}</view>
<view class="right">咨询业务:一期住宅</view>
</view>
<view class="content-last">
{{item.createTime}} | {{item.mm || '0'}} min
</view>
<view class="cont-item">
<view class="count">{{item.visitRecord|| 0}}</view>
<view class="text">访问次数</view>
</view>
<view class="cont-item">
<view class="count">{{item.wordFraction||'--'}}</view>
<view class="text">画像标签</view>
</view>
<view class="cont-item">
<view class="count">{{item.wordFraction|| 0}}%</view>
<view class="text">需求挖掘</view>
</view>
<view class="cont-item">
<view class="count" style="color: #2671E2;font-weight:600">{{item.fraction|| 0}}%</view>
<view class="text">销讲执行率</view>
</view>
</view>
</view>
</view>

<u-popup v-model="screenShow" mode="top" height="777">
<!-- 更多筛选 -->
<u-popup v-model="screenShow" mode="top" height="845">
<view class="screen">
<!-- 顾问选择 -->
<view class="screen-counselor">
<view class="screen-text">
所属顾问
<!-- 咨询业务 -->
<view class="screen-record">
<view class="screen-record-text" @click="zixunArrow=!zixunArrow">
咨询业务<image v-if="zixunArrow" class="arrow" src="https://static.quhouse.com/6cf38a2b82694392a7ab6eea24ce76b1.png" mode="" />
<image v-else class="arrow" src="https://static.quhouse.com/17d69984ec7c4830b43f712016f06807.png" mode="" />
</view>
<view class="screen-sel" @click="selectshow = true">
<u-input v-model="screen.counselorName" type="text" placeholder='请选择' class="screen-inp"
disabled />
<image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image>
<view class="screen-record-tab" v-if="zixunArrow">
<block v-for="(item,index) in zixunList" :key="index">
<view class="screen-record-item" :class="[item.isShow?'screen-record-chose':'screen-record-nochose']"
@click="choice(item)">
{{item.label}}
</view>
</block>
</view>
</view>
<!-- <view class="screen-counselor">
<view class="screen-text">
客户阶段
<!-- 销讲执行率 -->
<view class="screen-record">
<view class="screen-record-text" @click="xiaojiangArrow=!xiaojiangArrow">
销讲执行率 <image v-if="xiaojiangArrow" class="arrow" src="https://static.quhouse.com/6cf38a2b82694392a7ab6eea24ce76b1.png" mode="" />
<image v-else class="arrow" src="https://static.quhouse.com/17d69984ec7c4830b43f712016f06807.png" mode="" />
</view>
<view class="screen-sel" @click="selectPhaseShow = true">
<u-input v-model="screen.clientStageName" type="text" placeholder='请选择' class="screen-inp"
disabled />
<image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image>
<view class="screen-record-tab" v-if="xiaojiangArrow">
<block v-for="(item,index) in xiaojiangList" :key="index">
<view class="screen-record-item" :class="[item.isShow?'screen-record-chose':'screen-record-nochose']"
@click="choice(item)">
{{item.label}}
</view>
</block>
</view>
</view> -->

</view>
<!-- 需求挖掘率 -->
<view class="screen-record">
<view class="screen-record-text" @click="wajueArrow=!wajueArrow">
需求挖掘率 <image v-if="wajueArrow" class="arrow" src="https://static.quhouse.com/6cf38a2b82694392a7ab6eea24ce76b1.png" mode="" />
<image v-else class="arrow" src="https://static.quhouse.com/17d69984ec7c4830b43f712016f06807.png" mode="" />
</view>
<view class="screen-record-tab" v-if="wajueArrow">
<block v-for="(item,index) in wajueList" :key="index">
<view class="screen-record-item" :class="[item.isShow?'screen-record-chose':'screen-record-nochose']"
@click="choice(item)">
{{item.label}}
</view>
</block>
</view>
</view>
<!-- 接待时长 -->
<view class="screen-record">
<view class="screen-record-text">
录音标识
<view class="screen-record-text" @click="jiedaiArrow=!jiedaiArrow">
接待时长<image v-if="jiedaiArrow" class="arrow" src="https://static.quhouse.com/6cf38a2b82694392a7ab6eea24ce76b1.png" mode="" />
<image v-else class="arrow" src="https://static.quhouse.com/17d69984ec7c4830b43f712016f06807.png" mode="" />
</view>
<view class="screen-record-tab">
<view :class="[screen.validInvalid==0?'screen-record-chose':'screen-record-nochose']"
<view class="screen-record-tab" v-if="jiedaiArrow">
<block v-for="(item,index) in jiedaiList" :key="index">
<view class="screen-record-item" :class="[item.isShow?'screen-record-chose':'screen-record-nochose']"
@click="choice(item)">
{{item.label}}
</view>
</block>
</view>
</view>
<!-- 录音标识 -->
<view class="screen-record">
<view class="screen-record-text" @click="luyinArrow=!luyinArrow">
录音标识<image v-if="luyinArrow" class="arrow" src="https://static.quhouse.com/6cf38a2b82694392a7ab6eea24ce76b1.png" mode="" />
<image v-else class="arrow" src="https://static.quhouse.com/17d69984ec7c4830b43f712016f06807.png" mode="" />
</view>
<view class="screen-record-tab" v-if="luyinArrow">
<view class="screen-record-item" :class="[screen.validInvalid==0?'screen-record-chose':'screen-record-nochose']"
@click="screenvisivalidInvalid(0)">
有效接待
</view>
<view :class="[screen.validInvalid==1?'screen-record-chose':'screen-record-nochose']"
<view class="screen-record-item" :class="[screen.validInvalid==1?'screen-record-chose':'screen-record-nochose']"
@click="screenvisivalidInvalid(1)">
无效接待
</view>
<view :class="[screen.validInvalid==2?'screen-record-chose':'screen-record-nochose']"
<view class="screen-record-item" :class="[screen.validInvalid==2?'screen-record-chose':'screen-record-nochose']"
@click="screenvisivalidInvalid(2)">
无录音
</view>
</view>
</view>
<!-- 标记顾问 -->
<view class="screen-record">
<view class="screen-record-text">
标记顾问
<view class="screen-record-text" @click="markArrow=!markArrow">
标记顾问<image v-if="markArrow" class="arrow" src="https://static.quhouse.com/6cf38a2b82694392a7ab6eea24ce76b1.png" mode="" />
<image v-else class="arrow" src="https://static.quhouse.com/17d69984ec7c4830b43f712016f06807.png" mode="" />
</view>
<view class="screen-record-tab">
<view :class="[screen.markAdvisor==1?'screen-record-chose':'screen-record-nochose']"
<view class="screen-record-tab" v-if="markArrow">
<view class="screen-record-item" :class="[screen.markAdvisor==1?'screen-record-chose':'screen-record-nochose']"
@click="screenvisitRecord(1)">
标记
</view>
<view :class="[screen.markAdvisor==0?'screen-record-chose':'screen-record-nochose']"
<view class="screen-record-item" :class="[screen.markAdvisor==0?'screen-record-chose':'screen-record-nochose']"
@click="screenvisitRecord(0)">
未标记
</view>
</view>
</view>
<!-- 到访次数 -->
<view class="screen-record">
<view class="screen-record-text">
到访次数
<view class="screen-record-text" @click="visitArrow=!visitArrow">
到访次数<image v-if="visitArrow" class="arrow" src="https://static.quhouse.com/6cf38a2b82694392a7ab6eea24ce76b1.png" mode="" />
<image v-else class="arrow" src="https://static.quhouse.com/17d69984ec7c4830b43f712016f06807.png" mode="" />
</view>
<view class="screen-record-tab">
<view class="screen-record-tab" v-if="visitArrow">
<block v-for="(item,index) in visitList" :key="index">
<view :class="[item.isShow?'screen-record-chose':'screen-record-nochose']"
@click="choice(index,item.value)">
<view class="screen-record-item" :class="[item.isShow?'screen-record-chose':'screen-record-nochose']"
@click="choice(item)">
{{item.label}}
</view>
</block>
<!-- <view :class="[screen.visitRecord==1?'screen-record-chose':'screen-record-nochose']" @click="recordclick(1)">
首次到访
</view>
<view :class="[screen.visitRecord==2?'screen-record-chose':'screen-record-nochose']" @click="recordclick(2)">
2次到访
</view>
<view :class="[screen.visitRecord==3?'screen-record-chose':'screen-record-nochose']" @click="recordclick(3)">
3次到访
</view>
<view :class="[screen.visitRecord==4?'screen-record-chose':'screen-record-nochose']" @click="recordclick(4)">
3次以上
</view> -->
</view>
</view>
<view class="screen-foot">
@@ -187,13 +223,11 @@
<u-select v-model="selectshow" :list="freeList" @confirm="actionSelectCallback"></u-select>
<!-- 客户阶段 -->
<u-select v-model="selectPhaseShow" :list="phaseList" @confirm="selectPhase"></u-select>

<u-calendar v-model="totalTimeShow" mode="range" @change="totalTimeChange"></u-calendar>


<!-- 接待时间 -到访时间-->
<u-popup v-model="timeshow" mode="bottom">
<view class="timeview" :style="{ color: activeTotal == 5 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(5, '到访时间')">
@click="tabtimetap(5, '接待时间')">
全部</view>
<view class="timeview" :style="{ color: activeTotal == 0 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(0, '今天')">
@@ -211,26 +245,6 @@
@click="tabtimetap(4, '')">
自定义</view>
</u-popup>
<u-popup v-model="timetushow" mode="bottom">
<view class="timeview" :style="{ color: activeTotal2 == 0 ? '#2B6EFF' : '#333333' }"
@click="timetap(0, '接待时长')">全部
</view>
<view class="timeview" :style="{ color: activeTotal2 == 1 ? '#2B6EFF' : '#333333' }"
@click="timetap(1, '0~15min')">
0~15min</view>
<view class="timeview" :style="{ color: activeTotal2 == 2 ? '#2B6EFF' : '#333333' }"
@click="timetap(2, '15~30min')">
15~30min</view>
<view class="timeview" :style="{ color: activeTotal2 == 3 ? '#2B6EFF' : '#333333' }"
@click="timetap(3, '30~60min')">
30~60min</view>
<view class="timeview" :style="{ color: activeTotal2 == 4 ? '#2B6EFF' : '#333333' }"
@click="timetap(4, '60~90min')">
60~90min</view>
<view class="timeview" :style="{ color: activeTotal2 == 5 ? '#2B6EFF' : '#333333' }"
@click="timetap(5, '90min以上')">
90min以上</view>
</u-popup>
<u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select>

<!-- 加载组件 -->
@@ -246,6 +260,13 @@
},
data() {
return {
wajueArrow: false,
zixunArrow: true,
jiedaiArrow: false,
luyinArrow: false,
visitArrow: false,
xiaojiangArrow: false,
markArrow: false,
orderBylist: [{
label: '全部',
value: '0'
@@ -282,7 +303,112 @@
label: '接访次数倒序',
value: '8'
},
{
label: '需求挖掘率正序',
value: '9'
},
{
label: '需求挖掘率倒序',
value: '10'
}
],
zixunList:[
{
label: '一期住宅',
value: 1,
isShow: false,
}, {
label: '二期住宅',
value: 2,
isShow: false,
}, {
label: '三期住宅',
value: 3,
isShow: false,
}, {
label: '商铺',
value: 4,
isShow: false,
}
],
jiedaiList:[
{
label: '0~15min',
value: 1,
isShow: false,
}, {
label: '15~30min',
value: 2,
isShow: false,
}, {
label: '30~60min',
value: 3,
isShow: false,
}, {
label: '60~90min',
value: 4,
isShow: false,
}, {
label: '90min以上',
value: 5,
isShow: false,
}
],
wajueList:[
{
label: '30%以下',
value: 1,
isShow: false,
}, {
label: '30%~50%',
value: 2,
isShow: false,
}, {
label: '50%~70%',
value: 3,
isShow: false,
}, {
label: '70%以上',
value: 4,
isShow: false,
}
],
xiaojiangList:[
{
label: '30%以下',
value: 1,
isShow: false,
}, {
label: '30%~50%',
value: 2,
isShow: false,
}, {
label: '50%~70%',
value: 3,
isShow: false,
}, {
label: '70%以上',
value: 4,
isShow: false,
}
],
visitList: [{
label: '首次到访',
value: 1,
isShow: false,
}, {
label: '第2次到访',
value: 2,
isShow: false,
}, {
label: '第3次到访',
value: 3,
isShow: false,
}, {
label: '3次以上',
value: 4,
isShow: false,
}],
activeTotal: 5,
value: '',
screenShow: false,
@@ -293,8 +419,12 @@
screen: {
agentId: '', //顾问id
record: '0',
markAdvisor: null,
visitRecord: [],
markAdvisor: null,//标记顾问
visitRecord: [],// 到访次数
zixunVal: [],// 咨询业务
wajueVal: [],// 需求挖掘
xiaojiangVal:[],//销讲执行率
jiedaiVal: [],// 接待时长
validInvalid: null,
clientStage: '',
clientStageName: ''
@@ -307,37 +437,18 @@
staTime: '',
endtime: '',
isnorefresh: '',
activeTotal2: 0,
timeshow: false,
timetushow: false,
soltishow: false,
orderBy: '',
methodsisshow: false,
userInfo: {},
visitList: [{
label: '首次到访',
value: 1,
isShow: false,
}, {
label: '2次到访',
value: 2,
isShow: false,
}, {
label: '3次到访',
value: 3,
isShow: false,
}, {
label: '3次以上',
value: 4,
isShow: false,
}, ],
totalRecords: '',
isRefresh: false,

// 筛选文字展示
sortFilter: '排序',
arriveFilter: '到访时间',
receptionDuration: '接待时长',
arriveFilter: '接待时间',
counselorName: '接待顾问',
}
},
onLoad(options) {
@@ -359,7 +470,6 @@

},
onShow() {

this.userInfo = uni.getStorageSync('weapp_session_userInfo_data');
if (this.userInfo.dataCode == 6 || this.userInfo.dataCode == 3) {
this.methodsisshow = false;
@@ -413,22 +523,10 @@
this.nextPage = 1;
this.activeTotal = 5;
this.recordList = [];
this.receptionDuration = '接待时长';
this.activeTotal2 = 0;
this.counselorName = '接待顾问';
},

choice(index, e) {
if (this.visitList[index].isShow == true) {
this.visitList[index].isShow = false;
for (var i = 0; i < this.screen.visitRecord.length; i++) {
if (this.screen.visitRecord[i] === e) {
this.screen.visitRecord.splice(i, 1);
}
}
} else {
this.visitList[index].isShow = true;
this.screen.visitRecord.push(e)
}
choice(item) {
item.isShow = !item.isShow;
},
getCustomPhase() {
this.phaseList = []
@@ -450,15 +548,6 @@
this.screen.clientStageName = e[0].label;
this.screen.clientStage = e[0].value;
},
tapsoltishow() {
this.soltishow = true;
},
taptimetuisshow() {
this.timetushow = true;
},
taptimeisshow() {
this.timeshow = true;
},
//选择标签
selectCallback2(e) {
this.sortFilter = e[0].label;
@@ -468,17 +557,7 @@
this.isRefresh = false;
this.getMyCustom();
},
//选择录音时长
timetap(index, text) {
if (text) this.receptionDuration = text
this.timetushow = false;
this.activeTotal2 = index;
this.nextPage = 1;
this.recordList = [];
this.isRefresh = false;
this.getMyCustom();
},
//时间选择
//时间选择 -到访-接待时间
tabtimetap(index, text) {
this.timeshow = false;
if (text) this.arriveFilter = text
@@ -563,30 +642,43 @@

},
getMyCustom() {
this.screen.visitRecord = []
this.screen.jiedaiVal = []
this.screen.wajueVal = []
this.screen.zixunVal = []
this.screen.xiaojiangVal = []
let dateType = 0;
let recDurationInterval = 0;
let orderBy = 0;
if (this.activeTotal == 5) {
dateType = null;
} else if (this.activeTotal == 3) {
dateType = null;
} else if (this.activeTotal == 4) {
if ((this.activeTotal == 5)||(this.activeTotal == 3)||(this.activeTotal == 4)) {
dateType = null;
} else {
}else {
dateType = this.activeTotal;
}

if (this.activeTotal2 == 0) {
recDurationInterval = null
} else {
recDurationInterval = this.activeTotal2
}

if (this.orderBy == 0) {
orderBy = null;
} else {
orderBy = this.orderBy;
}
// 到访次数
this.visitList.forEach(i => {
if(i.isShow) this.screen.visitRecord.push(i.value)
})
// 接待时长
this.jiedaiList.forEach(i => {
if(i.isShow) this.screen.jiedaiVal.push(i.value)
})
// 需求挖掘
this.wajueList.forEach(i => {
if(i.isShow) this.screen.wajueVal.push(i.value)
})
// 咨询业务
this.zixunList.forEach(i => {
if(i.isShow) this.screen.zixunVal.push(i.value)
})
// 销讲执行率
this.xiaojiangList.forEach(i => {
if(i.isShow) this.screen.xiaojiangVal.push(i.value)
})
// console.log('xiaojiangVal',this.xiaojiangVal)
// console.log('visitRecord',this.visitRecord)
// console.log('wajueVal',this.wajueVal)
// console.log('jiedaiVal',this.jiedaiVal)
// console.log('zixunVal',this.zixunVal)
var parames = {
pageNum: this.nextPage,
pageSize: 10,
@@ -595,11 +687,15 @@
time: 1,
staTime: this.staTime,
endtime: this.endtime,
visitRecords: this.screen.visitRecord.join(','),
markAdvisor: this.screen.markAdvisor,
visitRecords: this.screen.visitRecord.join(','),//到访次数
visitRecords: this.screen.zixunVal.join(','),//咨询
visitRecords: this.screen.wajueVal.join(','),//挖掘
visitRecords: this.screen.jiedaiVal.join(','),//接待时长
visitRecords: this.screen.xiaojiangVal.join(','),//销讲
markAdvisor: this.screen.markAdvisor,//标记
dateType: dateType,
recDurationInterval: recDurationInterval,
orderBy: orderBy,
orderBy: this.orderBy==0?null:this.orderBy,//排序
validInvalid: this.screen.validInvalid,
clientStage: this.screen.clientStage,
recording: this.screen.validInvalid == 2 ? 0 : null
@@ -637,13 +733,9 @@
})
})
},
// 筛选
screenshow() {
this.screenShow = true
},
actionSelectCallback(e) {
this.screen.agentId = e[0].value;
this.screen.counselorName = e[0].label;
this.counselorName = e[0].label;
this.recordList = [];
this.nextPage = 1;
this.isRefresh = false;
@@ -651,20 +743,31 @@
},
reset() {
this.screen = {
counselorName: '',
record: '0',
markAdvisor: null,
visitRecord: [],
markAdvisor: null,//标记顾问
visitRecord: [],// 到访次数
zixunVal: null,// 咨询业务
wajueVal: null,// 需求挖掘率
jiedaiVal: null,// 接待时长
xiaojiangVal: null,// 销讲执行率
validInvalid: null,
clientStage: '',
clientStageName: '',
recording: null,
visitRecords: "",
visitRecords: ""
}
this.visitList.map(i => {
i.isShow = false
})
// this.screenShow = false;
this.jiedaiList.map(i => {
i.isShow = false
})
this.zixunList.map(i => {
i.isShow = false
})
this.xiaojiangList.map(i => {
i.isShow = false
})
this.nextPage = 1;
this.recordList = [];
this.getMyCustom();
@@ -691,6 +794,24 @@
this.screen.validInvalid = i
}
},
//咨询业务
screenzixunClick(i) {
console.log(this.screen.zixunVal, i)
if (this.screen.zixunVal == i) {
this.screen.zixunVal = null
} else {
this.screen.zixunVal = i
}
},
// 需求挖掘选择
screenwajueValClick(i) {
// console.log(this.screen.wajueVal, i)
if (this.screen.wajueVal == i) {
this.screen.wajueVal = null
} else {
this.screen.wajueVal = i
}
},
screensure() {
this.screenShow = false;
this.recordList = [];
@@ -716,11 +837,11 @@

.count {
width: 100%;
height: 90rpx;
height: 60rpx;
display: flex;
align-items: center;
justify-content: center;
background-color: #FBE4E4;
background-color: #fff;

text {
color: #F71616;
@@ -743,7 +864,7 @@
width: 100;
height: 92rpx;
background: #FFFFFF;
border: 1px solid #E0E0E0;
border-bottom: 1px solid #E0E0E0;
display: flex;
align-items: center;

@@ -816,18 +937,18 @@
.content {
.content-tips {
background: #fff;
padding: 0 20rpx;
box-sizing: border-box;
overflow: hidden;
margin-top: 20rpx;
padding: 30rpx;

.content-first {
margin-top: 19rpx;
display: flex;
justify-content: space-between;

.left {
display: flex;
align-items: center;

.img {
width: 52rpx;
@@ -842,8 +963,7 @@
.name {
font-weight: 600;
color: #333333;
// margin-left: 20rpx;
margin-top: 11rpx;
margin-right: 10rpx;
}

.status {
@@ -856,8 +976,10 @@
color: #EC8D49;
line-height: 42rpx;
text-align: center;
margin-left: 19rpx;
margin-top: 11rpx;
margin: 0 10rpx;
}
.normal-status{
color:red;
}
}

@@ -876,66 +998,77 @@
}
}
}


.content-sec {
display: flex;
justify-content: space-between;
margin-top: 19rpx;

margin: 24rpx 0;
.left {
flex: 1;
height: 40rpx;
font-size: 28rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #333333;
line-height: 40rpx;
}
.right{
flex: 1;
height: 40rpx;
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #333333;
line-height: 40rpx;
text-align: right;
}
}
.content-time {
font-size: 28rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #333333;
line-height: 40rpx;
padding: 20rpx 0 24rpx;
border-bottom: 1px solid #E0E0E0;
}
.content-last {
display: flex;
justify-content: space-around;
.cont-item{
display: flex;

.cus {
flex-direction: column;
align-items: center;
justify-content: center;
.count{
height: 42rpx;
font-size: 30rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #666666;
// line-height: 30rpx;
color: #000000;
line-height: 42rpx;
margin-bottom: 16rpx;
}

.arriveNum {
font-size: 30rpx;
.text{
height: 32rpx;
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
// line-height: 30rpx;
margin-left: 10rpx;
color: #666666;
line-height: 32rpx;
}
}

.right {
width: 120rpx;
height: 46rpx;
background: #F4F8FD;
border-radius: 6rpx;
text-align: center;
line-height: 46rpx;
font-weight: 400;
color: #2671E2;
}
}

.content-last {
// margin: 30rpx 0;
font-size: 30rpx;
font-weight: 400;
color: #666666;
line-height: 30rpx;
margin-top: 22rpx;
margin-bottom: 30rpx;
}

}
}

// 这是弹出层
.screen {
// box-sizing: border-box;
// padding: 0 30rpx;
position: absolute;
width: 750rpx;

.screen-counselor {
display: flex;
height: 106rpx;
// padding: 40rpx 30rpx 36rpx 30rpx;
padding: 0 30rpx;
box-sizing: border-box;
border-bottom: 1px solid #EEEEEE;
@@ -967,47 +1100,49 @@
}

.screen-record {
height: 192rpx;
// width: 100%;
overflow: hidden;
padding: 0 30rpx;
box-sizing: border-box;
border-bottom: 1px solid #EEEEEE;
border-bottom: 1px solid #e0e0e0;

.screen-record-text {
margin-top: 36rpx;
padding: 30rpx 0;
font-size: 30rpx;
font-weight: 400;
color: #333333;
line-height: 30rpx;
display: flex;
align-items: center;
justify-content: space-between;
.arrow{
width: 30rpx;
height: 14rpx;
}
}

.screen-record-tab {
margin-top: 30rpx;
padding-bottom: 10rpx;
display: flex;

// justify-content: space-around;
.screen-record-chose {
width: 156rpx;
flex-wrap: wrap;
.screen-record-item{
padding: 0 14rpx;
height: 60rpx;
background: #2671E2;
border-radius: 4rpx;
border: 1px solid #2671E2;
border-radius: 8rpx;
text-align: center;
line-height: 60rpx;
margin-right: 22rpx;
color: #FFFFFF;
margin: 0 22rpx 22rpx 0;
&:nth-child(4n){
margin-right: 0;
}
}
.screen-record-chose {
background: #F1F6FD;
color: #2671E2;
}

.screen-record-nochose {
width: 156rpx;
height: 60rpx;
background: #FFFFFF;
border-radius: 4rpx;
border: 1px solid #C9C9C9;
text-align: center;
line-height: 60rpx;
margin-right: 22rpx;
background: #F7F8FA;
color: #333;
}

}


+ 76
- 54
pages/mine/details2.vue Visa fil

@@ -63,6 +63,9 @@
<view @click="Oftenthewrongword()"
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 v-if="jiaoseshow" @click="Addtheessence()"
style="width: 80rpx;font-size: 24rpx;text-align: center;margin-left: 22rpx;">加精华
</view>
@@ -129,46 +132,34 @@
</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="zhezhoa" v-if="wajueshow" @tap="CancelAdd"></view>
<u-modal v-model="wajueshow" title="新增挖掘话术" :show-cancel-button="true" @cancel="CancelAdd" @confirm="$noMultipleClicks(Confirmtheexit)">
<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" v-model="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>
<view class="tian-view" style="margin-left: 20rpx;">
<viwe class="tian-view-t3">
<input class="tian-input" v-model="reswrongword" type="text" placeholder="请输入" />
话术内容:<input class="huashu-input" v-model="reswrongword" type="text" placeholder="请输入" />
</viwe>
</view>
</u-modal>
<!-- 加入常错词 -->
<view class="zhezhoa" v-if="isshow2" @tap="Cancelout"></view>
<!-- <view class="bounced" v-if="isshow2">
<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 class="tian-view-t3" style="margin-left: 20rpx;">正确词:<input class="huashu-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>
</view>
</view> -->
</u-modal>

<!-- 加精华 -->
<view class="zhezhoa" v-if="isshow3" @tap="Cancelout2"></view>
@@ -494,7 +485,7 @@
</view>

<u-toast ref="uToast" />
<u-select v-model="treeshow" mode="mutil-column-auto" @confirm="confirm" :list="treelist"></u-select>
<!-- 加载组件 -->
<loading v-model="LOADING"></loading>
@@ -516,6 +507,31 @@

data() {
return {
wordBiaoqian: '',
treelist: [{
value: 1,
label: '中国',
children: [
{
value: 2,
label: '广东'
},
{
value: 5,
label: '广西'
}
]},
{
value: 8,
label: '美国',
children: [
{
value: 9,
label: '纽约',
}
]
}],
treeshow: false,
KeyWordsfraction: 0,
KeyWordsfractionList: [],
noClick: true,
@@ -609,12 +625,12 @@
textItself: '',
argtextindex1: 0,
argtextindex2: 0,

wajueshow: false,
wajueword: '',
roleisshaw: false,
roleindexrow: 0,
roletiaoshu: 0,
infos: null,

ACTION: Symbol('zaudio'), // 唯一值区分每个页面的方法
isPageHide: false, // 是否息屏
duration: '', // 总时长
@@ -712,6 +728,13 @@
},

methods: {
confirm(){

},
CancelAdd(){
this.wajueshow = false

},
hangeshow2(item,type){
item.show = !item.show;
},
@@ -1016,8 +1039,6 @@
}
},



//接待详情点击
Receivedetailsabouttab(stringa) {
if (stringa == 'Receivedetailsabout') {
@@ -1492,6 +1513,11 @@
this.reswrongword = "";
this.isshow2 = true;
},
//加入挖掘话术
openwajue(word) {
this.wajueword = word;
this.wajueshow = true;
},
//加精华
Addtheessence() {
this.isshow3 = true;
@@ -2554,37 +2580,33 @@
.tian-view {
width: 570upx;
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;
color: #333;
}

.tian-view-t3 {
width: 61%;
padding-top: 31rpx;
padding-bottom: 31rpx;
display: flex;

align-items: center;
color: #333;
.tian-input {
width: 98%;
width: 300rpx;
font-size: 34rpx;
border: none;
border-bottom: 1px solid #eee;
}
}
.tian-view-t3 {
width: 100%;
display: flex;
align-items: center;
.huashu-input{
width: 300rpx;
height: 60rpx;
padding: 0 10rpx;
font-size: 24rpx;
border: 1rpx solid #E0E0E0;
border-radius: 4rpx;
}
}
}


Laddar…
Avbryt
Spara