Browse Source

新功能搬迁

newyun
corala 2 years ago
parent
commit
713d405ee6
9 changed files with 1054 additions and 366 deletions
  1. +245
    -25
      pages/center/consumer/consumerDetail.vue
  2. +2
    -2
      pages/center/consumer/consumerSearch.vue
  3. +0
    -1
      pages/center/consumer/remind.vue
  4. +1
    -1
      pages/center/prohibited/index.vue
  5. +387
    -186
      pages/center/records/index.vue
  6. +72
    -77
      pages/index/consumer/index.vue
  7. +18
    -37
      pages/index/index.vue
  8. +157
    -34
      pages/learning/Keywordsearch.vue
  9. +172
    -3
      pages/mine/details2.vue

+ 245
- 25
pages/center/consumer/consumerDetail.vue View File

@@ -17,10 +17,6 @@
<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>
<view class="content-sec">
<view class="content-sec-lab">
@@ -39,6 +35,14 @@
</view>
<view @click.stop="tipshow=true" v-if="customerInfo.demand.cusSemanticWordsList.length>1" class="content-sec-tips" style="text-decoration: underline;background: #fff">查看全部</view>
</view>
<view class="content-sec-lab">
<view class="u-flex" style="flex:1">
挖掘执行:<view class="content-sec-lab1">10%</view>
</view>
<view class="u-flex" style="flex:1">
挖掘成功:<view class="content-sec-lab1">10%</view>
</view>
</view>
<view class="content-sec-lab">
添加时间:<view class="content-sec-lab1">{{customerInfo.createTime}}</view>
</view>
@@ -48,11 +52,6 @@
{{customerInfo.mm || '0'}}min/{{customerInfo.fraction || '0'}}%
</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 class="content-last">
<view class="content-last-con">
@@ -71,7 +70,10 @@
<view :class="{ activecllasscet: activeTotal == 1 }" @click="tabtimetap(1)">跟进记录</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 2 }" @click="tabtimetap(2)">执行率</view>
<view :class="{ activecllasscet: activeTotal == 2 }" @click="tabtimetap(2)">销讲执行率</view>
</view>
<view class="tabbox">
<view :class="{ activecllasscet: activeTotal == 3 }" @click="tabtimetap(3)">挖掘执行率</view>
</view>
</view>

@@ -94,10 +96,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">
@@ -135,13 +133,10 @@
</view>
<view class="tab2-first-foot">跟进内容:{{item.remarks || '暂无'}}</view>
</view>
<!-- <view class="tab2-sec">
<view class="tab-sec-edit">编辑记录</view>
</view> -->
</view>
</view>

<!-- 评分 -->
<!-- 销讲执行率 -->
<view class="ratecenter" v-if="activeTotal==2">
<view class="ratetetle">执行总览</view>
<view class="rateyuanbox">
@@ -218,12 +213,169 @@
</view>
</view>
</view>
<!-- 需求挖掘执行率 -->
<view class="xuqiu" v-if="activeTotal==3">
<!-- 暂无数据 -->
<view v-if="KeyWordsfractionList.length==0"
style="width: 100%;height: 100%;display: flex;align-items: center;">
<view style="width: 100%;padding-top: 60rpx;background: #fff;">
<view style="width: 100%;text-align: center;">
<image style="width: 220rpx;height: 200rpx;"
src="https://static.quhouse.com/zhikong_xcx_img/nodatalist.png" mode=""></image>
</view>
<view style="text-align: center;width: 100%;margin-top: 20rpx;color: #999999;">暂无数据</view>
</view>
</view>
<!-- 需求挖掘执行率 -->
<view v-if="KeyWordsfractionList.length">
<view class="top-box">
<view style="width:50%;text-align:center">挖掘执行:{{customerInfo.wordFraction||0}}%</view>
<view style="width:50%;text-align:center">挖掘成功:{{percent||0}}%</view>
</view>
<view style="
width: 100%;
height: 80rpx;
border-bottom: 1rpx solid #e0e0e0;
display: flex;
align-items: center;
background: #fff;
">
<view style="
flex: 1;
font-size: 28rpx;
color: #333333;
font-weight: 600;
text-indent: 50rpx;
">指标</view>
<view style="
flex: 1;
font-size: 28rpx;
color: #333333;
font-weight: 600;
text-indent: 70rpx;
">执行率</view>
<view style="
flex: 1;
font-size: 28rpx;
color: #333333;
font-weight: 600;
text-indent: 70rpx;
">匹配标签</view>
<view style="flex: 0 0 30rpx;"></view>
</view>
<!-- 暂无数据 -->
<view v-if="KeyWordsfractionList.length == 0"
style="width: 100%; height: 100%; display: flex; align-items: center">
<view style="width: 100%; padding-top: 60rpx;background:#fff;">
<view style="width: 100%; text-align: center">
<image style="width: 220rpx; height: 200rpx"
src="https://static.quhouse.com/zhikong_xcx_img/nodatalist.png" mode=""></image>
</view>
<view style="
text-align: center;
width: 100%;
margin-top: 20rpx;
color: #999999;
">暂无数据</view>
</view>
</view>
<!-- 挖掘执行话术展示 -->
<view class="Level-box" v-else v-for="(item, index) in KeyWordsfractionList" :key="index">
<view class="Level1che" @click="changeshowlevel1(item, 1)">
<view class="title1" style="flex: 1">{{ item.name }}</view>
<view class="Level1-middle" style="flex: 2; display: flex">
<view class="item" style="flex: 1; text-align: center">执行{{ item.fraction || 0 }}%
</view>
<view class="item" style="flex:1;text-align:center;color:#2671E2"
v-if="item.keywordsList&&item.keywordsList.length">已匹配({{
item.keywordsList.length
}})</view>
<view class="item" v-else style="flex:1;text-align:center;">未匹配</view>
</view>
<view class="jiantobox">
<image v-if="!item.show" class="arrow rotatearrow" src="/static/images/down.png"
mode="" />
<image v-else class="arrow" src="/static/images/up.png" mode="" />
</view>
</view>
<!-- 话术在一级下 -->
<view v-if="item.children&&item.children.length==0">
<view class="hhhbox" v-if="item.show" style="padding: 30rpx;">
<view class="hsnrtest" style="font-size:30rpx;color: #333;line-height: 42rpx;">
客户标签:{{ getKeywordsList(item.keywordsList) }}</view>
<view class="hsnrtest">话术内容:</view>
<view v-if="item.modelList.length==0">暂无话术</view>
<view class="Level3che" v-for="(che,inc) in item.modelList" :key='inc'>
<view class="title1" @click="clickWajue(che)"
:style="che.isAskQuestions==2?'color:#FF8C13':che.isAskQuestions==0?'':'color: #666'">
{{inc+1}}.{{che.showFormatExpression}}
</view>
<view class="jiantobox">
<!-- 0本次选中 1未选中 2上次选中 -->
<image v-if="che.isAskQuestions==0" class="arrow"
src="/static/images/rate-checked.png" mode="" />
<image v-else-if="che.isAskQuestions==2" class="arrow"
src="/static/images/checked-yellow.png" mode="" />
<image v-else class="arrow" src="/static/images/rate-nocheck.png" mode="" />
</view>
</view>
</view>
</view>
<!-- 话术在二级下 -->
<view v-if="item.children&&item.children.length">
<view class="hhhbox" v-if="item.show" v-for="(subitem, i) in item.children" :key="i">
<view class="Level2che" @click="changeshow2(subitem, 1)">
<view class="title1 u-line-1">{{ subitem.name }}</view>
<view class="leve1-jindu">
<view class="zhixing" v-if="subitem.isAskQuestions == 0">已执行</view>
<view class="zhixing2" v-else>未执行</view>
</view>
<view class="leve1-jindu">
<view class="zhixing" v-if="subitem.selected == 0">已匹配</view>
<view class="zhixing2" v-else>未匹配</view>
</view>
<view class="jiantobox">
<image v-if="!subitem.show" class="arrow rotatearrow"
src="/static/images/down.png" mode="" />
<image v-else class="arrow" src="/static/images/up.png" mode="" />
</view>
</view>
<view v-if="subitem.show" style="padding: 30rpx 0">
<view class="hsnrtest" style="font-size: 30rpx;color: #333">
客户标签:{{ getKeywordsList(subitem.keywordsList) }}</view>
<view class="hsnrtest">话术内容:</view>
<view v-if="subitem.modelList.length==0">暂无话术</view>
<view class="Level3che" v-for="(che, inc) in subitem.modelList" :key="inc">
<view class="title1" @click="clickWajue(che)" :style="
che.isAskQuestions == 2
? 'color:#FF8C13'
: che.isAskQuestions == 0
? ''
: 'color: #666'
">{{ inc + 1 }}.{{
che.showFormatExpression
}}</view>
<view class="jiantobox">
<image v-if="che.isAskQuestions == 0" class="arrow"
src="/static/images/rate-checked.png" mode="" />
<image v-else-if="che.isAskQuestions == 2" class="arrow"
src="/static/images/checked-yellow.png" mode="" />
<image v-else class="arrow" src="/static/images/rate-nocheck.png"
mode="" />
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>

<view class="pon-foot" v-if="buttonisshow">
<!-- <view class="foot-tab" @click="goRemind">添加提醒</view> -->
<!-- <view class="foot-tab">拨打电话</view> -->
<view class="foot-tab" @click="followRecordAdd()">写跟进</view>
<!-- <view class="foot-tab" @click="goRemind">添加提醒</view>
<view class="foot-tab">拨打电话</view> -->
<view class="foot-tab" @click="followRecordAdd">写跟进</view>
</view>
<!-- closeable -->
<u-popup v-model="tipshow" mode="center" width="500rpx" height="500rpx" closeable>
@@ -248,6 +400,7 @@
export default {
data() {
return {
KeyWordsfractionList: [],
activeTotal: 0,
customerId: '',
tipshow: false,
@@ -287,9 +440,68 @@
}
},
methods: {
clickWajue(item) {
if (item.isAskQuestions == 0) {
uni.navigateTo({
url: '/pages/learning/Keywordsearch?customerId=' + this.customerId + "&keyword=" + item
.showFormatExpression +
"&skpl=" + "2" + '&UpDateEvent='
})
}
},
// 计算挖掘执行的完成率
getPercent() {
let countArr = this.KeyWordsfractionList.filter(item => item.selected == 0)
// console.log(countArr)
this.percent = (countArr.length / this.KeyWordsfractionList.length) * 100
this.percent = this.percent.toFixed(0)

},
//挖掘率话术客户标签展示
getKeywordsList(list) {
let keywords = [];
if (list && list.length) {
keywords = list.map((item) => item.name);
} else {
return "--";
}
return keywords.join(",");
},
changeshowlevel1(item, type) {
console.log(item)
item.show = !item.show
},
// 客户详情需求挖掘话术
getfindKeyWordsBycusId() {
this.$u
.get("/cusLvStatistics/findKeyWordsBycusId?cusId=" + this.customerId)
.then((res) => {
// console.log(res)
if (res.length) {
res.forEach((item, index) => {
item.show = false;
if (index == 0) {
item.show = true;
}
if (item.children && item.children.length) {
item.children.forEach((obj, i) => {
obj.show = false;
if (i == 0 && index == 0) {
obj.show = true;
}
});
}
});
this.KeyWordsfractionList = res;
this.getPercent()
} else {
this.KeyWordsfractionList = [];
}
});
},
// 获取到访记录
getVisitList() {
this.$u.get("/customer/findByPhoneAndProject?id=" + this.customerId, ).then(res => {
this.$u.get("/customer/findByPhoneAndProject?id=" + this.customerId).then(res => {
this.Thevisitingrecords = res
})
},
@@ -325,12 +537,13 @@
this.getVisitList()
} else if (idx == 1) {
this.getFollowList()
} else {
} else if(idx == 2){
this.getRatelist()
}else{ // 需求挖掘率
this.getfindKeyWordsBycusId()
}
},
tapThevisiting(item) {
console.log("11111111111111")
uni.showLoading({
title: '加载中',
mask: true
@@ -975,7 +1188,6 @@
.content-sec {
border-top: 1px solid #E0E0E0;
padding: 0 30rpx;
height: 270rpx;
position: relative;

.content-sec-lab {
@@ -1328,4 +1540,12 @@
.D {
background: #E6625B;
}

.top-box {
height: 80rpx;
line-height: 80rpx;
display: flex;
color: #2671E2;
border-bottom: 1rpx solid #ccc;
}
</style>

+ 2
- 2
pages/center/consumer/consumerSearch.vue View File

@@ -56,7 +56,7 @@
</view>
</view>

<template v-if="recordList.length == 0">
<view v-if="recordList.length == 0" style="background:#fff;height: 100vh">
<view style="width: 100%; height: 100%; display: flex; align-items: center">
<view style="width: 100%; height: 100%; padding-top: 200rpx">
<view style="width: 100%; text-align: center">
@@ -71,7 +71,7 @@
">暂无数据</view>
</view>
</view>
</template>
</view>
</view>
</view>
</template>


+ 0
- 1
pages/center/consumer/remind.vue View File

@@ -6,7 +6,6 @@
客户信息
</view>
<view class="conmsg-lab-2">
<!-- 李先生/12385945986 -->
{{str}}
</view>
</view>


+ 1
- 1
pages/center/prohibited/index.vue View File

@@ -26,7 +26,7 @@
</view>
<view class="content">
<view v-if="recordList.length==0"
style="width: 100%;height: 100%;display: flex;align-items: center;background: #FFFFFF;">
style="width: 100%;height: 100vh;display: flex;background: #FFFFFF;">
<view style="width: 100%;padding-top: 200rpx;">
<view style="width: 100%;text-align: center;">
<image style="width: 220rpx;height: 200rpx;"


+ 387
- 186
pages/center/records/index.vue View File

@@ -2,23 +2,23 @@
<view class="box">
<!-- 选择器 -->
<view class="boxtittab">
<view class="tabbox" :class="{activeColor: startFilterTime!=='接待时间'}" @click="taptimeisshow">
{{ startFilterTime }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
<view class="tabbox" :class="{activeColor: arriveFilter!=='接待时间'}" @click="timeshow = true">
{{ arriveFilter }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
<view class="tabbox" :class="{activeColor: receptionDuration!=='接待时长'}" @click="taptimetuisshow">
{{ receptionDuration }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
<view class="tabbox" :class="{activeColor:counselorName!=='接待顾问'}" @click="selectshow=true">
{{ counselorName }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
<view class="tabbox" :class="{activeColor: sortText!=='排序'}" @click="tapsoltishow">
<view class="tabbox" :class="{activeColor: sortText!=='排序'}" @click="soltishow = true">
{{ sortText }}<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>
<!-- 筛选后的数量 -->
<view class="count" v-if="recordList.length > 0">
筛选结果:<text>{{totalRecords}} </text>条
筛选结果:<text>{{totalRecords}}</text>条
</view>
<view class="content">
<view v-if="recordList.length == 0"
@@ -37,7 +37,6 @@
<view class="left">
<view class="adviser">顾</view>
<view class="name">{{item.agentName}}</view>
<!-- <view class="status" v-if="item.replaceReception==1">代接待</view> -->
</view>

<view class="right" v-if="item.recording!=0">
@@ -61,7 +60,6 @@
<view class="left">
<view class="adviser">客</view>
<view class="cus">{{item.name || '--'}}</view>
<!-- <view class="arriveNum">第{{item.visitRecord || "--"}}次接待</view> -->
<view class="arriveNum">{{ item.phone | encryption }}</view>
</view>
<view class="right">
@@ -69,6 +67,17 @@
{{item.fraction || '0'}}%
</view>
</view>
<view class="content-newadd">
<view class="c-items">
挖掘执行:100%
</view>
<view class="c-items">
挖掘成功:100%
</view>
<view class="c-items">
销讲业务:生鲜
</view>
</view>
<view class="content-last">
<view class="c-items">
<image src="../static/img/people.png" class="c-items-img" mode=""></image>
@@ -86,66 +95,159 @@
</view>
</view>

<u-popup v-model="screenShow" mode="top" height="780">
<u-popup v-model="screenShow" mode="top" height="900">
<view class="screen">
<!-- 顾问选择 -->
<view class="screen-counselor">
<view class="screen-text">
所属顾问
</view>
<view class="screen-sel" @click="selectshow = true">
<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>
</view>

<view class="screen-record">
<view class="screen-record-text">
录音标识
<scroll-view scroll-y="true" style="height: 750rpx;">
<!-- 销讲业务 -->
<view class="screen-record">
<view class="screen-record-text" @click="showTemplate=!showTemplate">
销讲业务
<image v-if="showTemplate" 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="showTemplate">
<block v-for="(item,index) in templateList" :key="index">
<view class="screen-record-item"
:class="[item.isShow?'screen-record-chose':'screen-record-nochose']"
@click="choice(item)">
{{item.templateName}}
</view>
</block>
</view>
</view>
<view class="screen-record-tab">
<view :class="[screen.validInvalid==0?'screen-record-chose':'screen-record-nochose']"
@click="screenvisivalidInvalid(0)">
有效接待
<!-- 销讲执行率 -->
<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.validInvalid==1?'screen-record-chose':'screen-record-nochose']"
@click="screenvisivalidInvalid(1)">
无效接待
</view><view :class="[screen.validInvalid==2?'screen-record-chose':'screen-record-nochose']"
@click="screenvisivalidInvalid(2)">
无录音
<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">
标记顾问
<!-- 需求挖掘率 -->
<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-tab">
<view :class="[screen.markAdvisor==1?'screen-record-chose':'screen-record-nochose']"
@click="screenvisitRecord(1)">
标记
<!-- 接待时长 -->
<view class="screen-record">
<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.markAdvisor==0?'screen-record-chose':'screen-record-nochose']"
@click="screenvisitRecord(0)">
未标记
<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>
<view class="screen-record">
<view class="screen-record-text">
到访次数
<!-- 录音标识 -->
<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-record-item"
:class="[screen.validInvalid===1?'screen-record-chose':'screen-record-nochose']"
@click="screenvisivalidInvalid(1)">
无效接待
</view>
<view class="screen-record-item"
:class="[screen.validInvalid===2?'screen-record-chose':'screen-record-nochose']"
@click="screenvisivalidInvalid(2)">
无录音
</view>
<view class="screen-record-item"
:class="[screen.validInvalid===3?'screen-record-chose':'screen-record-nochose']"
@click="screenvisivalidInvalid(3)">
无效(未审核)
</view>
</view>
</view>
<view class="screen-record-tab">
<block v-for="(item,index) in visitList" :key="index">
<view :class="[item.isShow?'screen-record-chose':'screen-record-nochose']"
@click="choice(index,item.value)">
{{item.label}}
<!-- 标记顾问 -->
<view class="screen-record">
<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" v-if="markArrow">
<view class="screen-record-item"
:class="[screen.markAdvisor==1?'screen-record-chose':'screen-record-nochose']"
@click="screenvisitRecord(1)">
标记
</view>
</block>
<view class="screen-record-item"
:class="[screen.markAdvisor===0?'screen-record-chose':'screen-record-nochose']"
@click="screenvisitRecord(0)">
未标记
</view>
</view>
</view>
</view>
<!-- 到访次数 -->
<view class="screen-record">
<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" v-if="visitArrow">
<block v-for="(item,index) in visitList" :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>
</scroll-view>
<view class="screen-foot">
<view class="screen-foot-reset" @click="reset">
重置
@@ -175,20 +277,6 @@
<view class="timeview" :style="{ color: activeTotal == 4 ? '#2B6EFF' : '#333333' }" @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>
<!-- 加载组件 -->
@@ -200,6 +288,8 @@
export default {
data() {
return {
templateList: [], // 销讲业务
showTemplate: true, // 展示销讲业务
orderBylist: [
// {
// label: '全部',
@@ -238,19 +328,85 @@
value: '8'
},
],
jiedaiList: [{
label: '0~15min',
value: 1,
isShow: false,
}, {
label: '16~30min',
value: 2,
isShow: false,
}, {
label: '31~60min',
value: 3,
isShow: false,
}, {
label: '61~90min',
value: 4,
isShow: false,
}, {
label: '91min及以上',
value: 5,
isShow: false,
}],
wajueList: [{
label: '30%及以下',
value: 1,
isShow: false,
}, {
label: '31%~50%',
value: 2,
isShow: false,
}, {
label: '51%~70%',
value: 3,
isShow: false,
}, {
label: '71%及以上',
value: 4,
isShow: false,
}],
xiaojiangList: [{
label: '30%及以下',
value: 1,
isShow: false,
}, {
label: '31%~50%',
value: 2,
isShow: false,
}, {
label: '51%~70%',
value: 3,
isShow: false,
}, {
label: '71%及以上',
value: 4,
isShow: false,
}],
activeTotal: 5,
value: '',
screenShow: false,
wajueArrow: true,
jiedaiArrow: true,
markArrow: true,
visitArrow: true,
xiaojiangArrow: true,
luyinArrow: true,
selectshow: false,
totalTimeShow: false,
totalRecords: '',
screen: {
orderBy: '', //排序
agentId: '', //顾问id
record: '0',
markAdvisor: null,
visitRecord: [],
validInvalid: null
markAdvisor: '', //标记顾问
visitRecord: [], // 到访次数
wajueVal: [], // 需求挖掘
xiaojiangVal: [], //销讲执行率
jiedaiVal: [], // 接待时长
validInvalid: '', // 录音标识
marketingBusiness: '', // 选中销讲业务id ,
},
freeList: [], //顾问
recordList: [],
buildingID: '',
@@ -263,12 +419,11 @@
timeshow: false,
timetushow: false,
soltishow: false,
orderBy: '',
methodsisshow: false,
userInfo: {},
startFilterTime: '接待时间', // s筛选状态展示
receptionDuration: '接待时长', // 筛选状态展示
sortText: '排序', //
counselorName: '接待顾问',//接待顾问
arriveFilter: '接待时间', // 接待时间
sortText: '排序',
visitList: [{
label: '首次到访',
value: 1,
@@ -320,6 +475,7 @@
this.isRefresh = false;
this.getMyCustom()
this.getFreeList();
// this.getMarketingBusiness()
this.isnorefresh = '';
}
},
@@ -346,39 +502,39 @@
}
},
methods: {
tapsoltishow() {
this.soltishow = true;
// 获取销讲业务
getMarketingBusiness() {
this.$u.get('/customer/marketingBusiness', {
houseId: this.buildingID,
}).then(res => {
this.templateList = res.map(item => {
return {
...item,
isShow: false,
}
})
})
},
taptimetuisshow() {
this.timetushow = true;
},
taptimeisshow() {
this.timeshow = true;
},
//选择标签
selectCallback2(e) {
this.orderBy = e[0].value;
this.sortText = e[0].label
this.screen.orderBy = e[0].value;
this.nextPage = 1;
this.recordList = [];
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.startFilterTime = text
this.arriveFilter = text
}
if (index == 4) {
this.totalTimeShow = true;
@@ -466,7 +622,6 @@
getMyCustom() {
let dateType = 0;
let recDurationInterval = 0;
let orderBy = 0;
if (this.activeTotal == 5) {
dateType = null;
} else if (this.activeTotal == 4) {
@@ -481,11 +636,18 @@
recDurationInterval = this.activeTotal2
}

if (this.orderBy == 0) {
orderBy = null;
} else {
orderBy = this.orderBy;
}
// 接待时长
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.xiaojiangList.forEach(i => {
if (i.isShow) this.screen.xiaojiangVal.push(i.value)
})
var parames = {
pageNum: this.nextPage,
pageSize: 10,
@@ -498,20 +660,29 @@
markAdvisor: this.screen.markAdvisor,
dateType: dateType,
recDurationInterval: recDurationInterval,
orderBy: orderBy,
orderBy: this.screen.orderBy == '' ? '' : this.screen.orderBy, //排序,
validInvalid:this.screen.validInvalid==2?null:this.screen.validInvalid,
wordFractions: this.screen.wajueVal.length ? this.screen.wajueVal.join(',') : '', //挖掘
duractionNums: this.screen.jiedaiVal.length ? this.screen.jiedaiVal.join(',') : '', //接待时长
fractions: this.screen.xiaojiangVal.length ? this.screen.xiaojiangVal.join(',') : '', //销讲
recording:this.screen.validInvalid==2?0:null
}
};
if (this.screen.agentId) {
parames.query.agentId = this.screen.agentId
}
let ars = []
this.templateList.forEach(item => {
if (item.isShow) {
ars.push(item.id)
}
})
parames.query.marketingBusiness = ars.join(',')


this.$u.post("/customer/findbypage", parames).then(data => {
this.LOADING = false
var list = data.results || [];
// this.recordList = [...this.recordList, ...list];
if(this.isRefresh){
this.recordList = list;
}else{
@@ -520,7 +691,7 @@
this.totalRecord = data.totalPage;
this.totalRecords = data.totalRecord;
if(this.staTime && this.endtime) {
this.startFilterTime = `${this.staTime}-${this.endtime}`
this.arriveFilter = `${this.staTime}-${this.endtime}`
}
}).catch(e => {
this.LOADING = false
@@ -534,66 +705,76 @@
item.label = item.name;
item.value = item.accountId
})
this.freeList.unshift({
label: '全部',
value: ''
})
})
},
// 筛选
screenshow() {
this.screenShow = true
},
actionSelectCallback(e) {
this.screen.agentId = e[0].value;
this.screen.counselorName = e[0].label
if(e[0].label=='全部'){
this.counselorName = '接待顾问'
this.screen.agentId = ''
}else{
this.screen.agentId = e[0].value;
this.counselorName = e[0].label
}
this.recordList = [];
this.nextPage = 1;
this.isRefresh = false;
this.getMyCustom();
},
reset() {
this.screen = {
counselorName: '',
record: '0',
markAdvisor: null,
visitRecord: [],
validInvalid: null,
recording:null,
visitRecords: "",
}
this.visitList.map(i=>{
i.isShow = false
})
// this.screenShow = false;
this.screen.agentId = ''
this.screen.jiedaiVal = ''
this.screen.validInvalid = ''
this.screen.markAdvisor = ''
this.screen.orderBy = '';
this.sortText = '排序';
this.arriveFilter = '接待时间';
this.staTime = '';
this.endTime = '';
this.nextPage = 1;
this.activeTotal = 5;
this.recordList = [];
this.counselorName = '接待顾问';
this.visitList.forEach(i => {
i.isShow = false
})
this.jiedaiList.forEach(i => {
i.isShow = false
})
this.wajueList.forEach(i => {
i.isShow = false
})
this.xiaojiangList.forEach(i => {
i.isShow = false
})
this.isRefresh = false;
this.getMyCustom();
},
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;
},
recordclick(i) {
if (this.screen.visitRecord == i) {
this.screen.visitRecord = null
// 标记顾问
screenvisitRecord(i) {
if (this.screen.markAdvisor === i) {
this.screen.markAdvisor = ''
} else {
this.screen.visitRecord = i
this.screen.markAdvisor = i
}
},
screenvisitRecord(i) {
if (this.screen.markAdvisor == i) {
this.screen.markAdvisor = null
// 销讲执行率
screenvisifractions(i) {
console.log(this.screen.fractions, i)
if (this.screen.fractions == i) {
this.screen.fractions = null
} else {
this.screen.markAdvisor = i
this.screen.fractions = i
}
},
// 录音标识
screenvisivalidInvalid(i) {
console.log(this.screen.validInvalid, i)
if (this.screen.validInvalid == i) {
@@ -879,6 +1060,14 @@
}
}
}
.content-newadd{
padding: 0 30rpx 34rpx;
display: flex;
align-items: center;
justify-content: space-between;
font-size: 30rpx;
color: #333;
}

.content-last {
padding: 0 30rpx 34rpx;
@@ -908,20 +1097,17 @@

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

.screen-counselor {
display: flex;
align-items: center;
height: 106rpx;
// padding: 40rpx 30rpx 36rpx 30rpx;
padding: 0 30rpx;
box-sizing: border-box;
border-bottom: 1px solid #EEEEEE;

.screen-text {
margin: 40rpx 0 36rpx 0;
font-size: 30rpx;
font-weight: 400;
color: #333333;
@@ -930,66 +1116,72 @@

.screen-sel {
display: flex;
justify-content: flex-end;
align-items: center;
justify-content: space-between;
width: 500rpx;
margin-left: 60rpx;

.screen-sel-img {
flex-shrink: 0;
margin: 40rpx 0 36rpx 0;
width: 14rpx;
height: 30rpx;
}

.screen-inp {
padding: 0 20rpx;
text-align: right;
margin-top: 20rpx;
}
}
}

.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;
font-weight: 600;
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;
flex-wrap: wrap;

// justify-content: space-around;
.screen-record-chose {
width: 156rpx;
.screen-record-item {
min-width: 150rpx;
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;
}

}
@@ -997,28 +1189,37 @@

.screen-foot {
width: 100%;
height: 100rpx;
height: 78rpx;
display: flex;
margin: 30rpx 30rpx 0;

.screen-foot-reset {
width: 50%;
text-align: center;
height: 100rpx;
line-height: 100rpx;
width: 176rpx;
height: 78rpx;
line-height: 78rpx;
background: #FFFFFF;
border-radius: 8rpx;
border: 1px solid #2671E2;
margin-right: 30rpx;
font-size: 30rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #666666;
color: #2671E2;
text-align: center;
}

.screen-foot-sure {
width: 50%;
text-align: center;
line-height: 100rpx;
height: 100rpx;
width: 484rpx;
height: 78rpx;
line-height: 78rpx;
background: #2671E2;
border: 1px solid #2671E2;
border-radius: 8rpx;
font-size: 30rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #FFFFFF;
background: #2671E2;
text-align: center;
}
}
}


+ 72
- 77
pages/index/consumer/index.vue View File

@@ -1,6 +1,6 @@
<template>
<view class="box">
<view style="flex-shrink: 0;">
<view class="top-search">
<view class="search-box">
<view class="search" @click="goSearch">
<view class="search-img">
@@ -8,10 +8,10 @@
</view>
<view class="search-text">输入客户姓名/手机号</view>
</view>
<!-- <image @click="filterFun" class="filter" src="../../../static/images/filter.png" mode="" /> -->
</view>
<image class="filter-icon" @click="screenShow = true"
src="https://static.quhouse.com/f4feade4a19d413085b591612179457f.png" mode="" />
</view>

<!-- 选择器 -->
<view class="boxtittab">
<view class="tabbox" :class="{activeColor: sortFilter!=='排序'}" @click="tapsoltishow">
@@ -79,6 +79,14 @@
</block>
</template>
</view>
<view class="content-sec-lab">
<view class="u-flex" style="flex:1">
挖掘执行:<view class="content-sec-lab1">10%</view>
</view>
<view class="u-flex" style="flex:1">
挖掘成功:<view class="content-sec-lab1">10%</view>
</view>
</view>
<view class="content-sec-lab">
添加时间:<view class="content-sec-lab1">{{item.createTime | formatTime}}</view>
</view>
@@ -127,7 +135,6 @@
<image class="screen-sel-img" src="../../../static/images/right.png" mode=""></image>
</view>
</view>
<!-- 录音标示 -->
<view class="screen-record">
<view class="screen-record-text">
客户等级
@@ -168,22 +175,6 @@
{{item.label}}
</view>
</block>
<!-- <view :class="[screen.visitRecord==1?'screen-record-chose':'screen-record-nochose']"
@click="screenvisitRecord(1)">
首次到访
</view>
<view :class="[screen.visitRecord==2?'screen-record-chose':'screen-record-nochose']"
@click="screenvisitRecord(2)">
2次到访
</view>
<view :class="[screen.visitRecord==3?'screen-record-chose':'screen-record-nochose']"
@click="screenvisitRecord(3)">
3次到访
</view>
<view :class="[screen.visitRecord==4?'screen-record-chose':'screen-record-nochose']"
@click="screenvisitRecord(4)">
3次以上
</view> -->
</view>
</view>
<view class="screen-foot">
@@ -815,6 +806,67 @@
background: #F8F8F8;
display: flex;
flex-direction: column;
.top-search {
display: flex;
align-items: center;
justify-content: space-between;
background: #fff;
padding-right: 30rpx;

.filter-icon {
width: 40rpx;
height: 40rpx;
padding: 15rpx;
}

.search-box {
width: 670rpx;
height: 102rpx;
background: #ffffff;
display: flex;
align-items: center;
justify-content: center;

.search {
width: 94%;
height: 70rpx;
display: flex;
align-items: center;
background: #f8f8f8;
border-radius: 33rpx;

.search-img {
width: 26rpx;
height: 30rpx;
margin-left: 20rpx;

.search-img1 {
width: 100%;
height: 100%;
margin-top: 2rpx;
}
}

.search-text {
font-size: 28rpx;
font-weight: 400;
color: #999999;
margin-left: 10rpx;
}
}

.search-screen {
width: 40rpx;
height: 40rpx;
margin-left: 30rpx;

.search-screen1 {
width: 100%;
height: 100%;
}
}
}
}

.content {
flex-grow: 1;
@@ -876,63 +928,6 @@
justify-content: center;
}
}

.search-box {
width: 100%;
height: 102rpx;
background: #FFFFFF;
display: flex;
align-items: center;
justify-content: center;

.filter {
width: 40rpx;
height: 40rpx;
margin-left: 30rpx;
}

.search {
width: 620rpx;
height: 70rpx;
display: flex;
align-items: center;
background: #F8F8F8;
border-radius: 33rpx;

.search-img {
width: 26rpx;
height: 30rpx;
margin-left: 20rpx;

.search-img1 {
width: 100%;
height: 100%;
margin-top: 2rpx;
}
}

.search-text {
font-size: 28rpx;
font-weight: 400;
color: #999999;
margin-left: 10rpx;
}
}

.search-screen {
width: 40rpx;
height: 40rpx;
margin-left: 30rpx;

.search-screen1 {
width: 100%;
height: 100%;
}
}
}



.count {
width: 100%;
height: 82rpx;


+ 18
- 37
pages/index/index.vue View File

@@ -13,7 +13,6 @@
我的工牌:{{imeiCode||'未绑定'}}
</view>
<view class="" style="color: #2671E2; font-weight: normal;">
<!-- 接待中 -->
{{openFlag=='start'?'接待中':''}}
</view>
</view>
@@ -65,24 +64,6 @@
</view>
</view>
</view>

<!--
<view class="title" v-if="permissions.shebeinum">待处理</view>
<view class="shebenbox" v-if="permissions.shebeinum" >
<view class="shebenche" @click="indexStatus(0)">
<view class="shebenchenum">{{operation.receptionCount || 0}}</view>
<view class="shebenchetext">接待即将结束</view>
</view>
<view class="shebenche" @click="indexStatus(1)">
<view class="shebenchenum">{{operation.accountCount || 0}}</view>
<view class="shebenchetext">未标顾问</view>
</view>
<view class="shebenche" @click="indexStatus(3)">
<view class="shebenchenum">{{operation.forbiddenCount || 0}}</view>
<view class="shebenchetext">违禁提醒</view>
</view>
</view> -->

<!-- 设备总览 -->
<view class="contbox" v-if="permissions.shebeinum">
<view class="title">
@@ -125,6 +106,10 @@
</view>
<view class="realtext">平均执行率</view>
</view>
<view class="real">
<view class="realnum">{{realtimeobj.avgDuration|| 0}}</view>
<view class="realtext">平均挖掘率</view>
</view>
<view class="real" @click="tapjumpreception('11')">
<view class="realnum">{{realtimeobj.receptionCount || 0}}</view>
<view class="realtext">接待量</view>
@@ -133,12 +118,12 @@
<view class="realnum">{{realtimeobj.receivingCustomer || 0}}</view>
<view class="realtext">正在接待</view>
</view>
<view class="real" @click="tapjumpreception('6')">
</view>
<view class="timebox" >
<view class="real" @click="tapjumpreception('6')">
<view class="realnum">{{realtimeobj.activeCustomer|| 0}}</view>
<view class="realtext">有效接待</view>
</view>
</view>
<view class="timebox" style="margin-bottom:0;">
<view class="real" @click="tapjumpreception('1')">
<view class="realnum">{{realtimeobj.avgDuration|| 0}}<text
style="font-size: 30rpx;font-weight: 400;font-family: SimHei">min</text></view>
@@ -148,16 +133,13 @@
<view class="realnum">{{realtimeobj.tagCustomer || 0}}</view>
<view class="realtext">未标顾问</view>
</view>
<view class="real">
<view @click="prohibitedtap(1)" v-if="methodsisshow==true" class="realnum" style="color: red;">
<view class="real" @click="prohibitedtap(1)" v-if="methodsisshow">
<view class="realnum" style="color: red;">
{{realtimeobj.prohibitedCustomer || 0}}
</view>
<view @click="prohibitedtap(1)" v-if="methodsisshow==true" class="realtext">违禁预警</view>
</view>
<view class="real">
<view class="realnum"></view>
<view class="realtext"></view>
<view class="realtext">违禁预警</view>
</view>

</view>
</view>
@@ -172,26 +154,29 @@
{{choiceIndex}}累计<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
</view>
<!-- <view class="timeshow">统计时间:2022.05.20-2022.05.27</view> -->
<view class="real-timebox">
<view class="timebox">
<view class="real" @click="tapjumpreception('3')">
<view class="realnum u-flex" style="justify-content: center">{{Thisweekobj.fraction || 0}}<text
style="font-weight: 400;font-family: SimHei;font-size: 30rpx;">%</text>
<!-- <image class="qushi-icon" src="/static/images/qushi-up.png" mode="" /> -->
</view>
<view class="realtext">平均执行率</view>
</view>
<view class="real">
<view class="realnum">{{Thisweekobj.receptionCount || 0}}</view>
<view class="realtext">平均挖掘率</view>
</view>
<view class="real" @click="tapjumpreception('33')">
<view class="realnum">{{Thisweekobj.receptionCount || 0}}</view>
<view class="realtext">接待量</view>
</view>
</view>
<view class="timebox" style="margin-bottom:0;">
<view class="real" @click="tapjumpreception('7')">
<view class="realnum">{{Thisweekobj.activeCustomer|| 0}}</view>
<view class="realtext">有效接待</view>
</view>
</view>
<view class="timebox" style="margin-bottom:0;">
<view class="real" @click="tapjumpreception('3')">
<view class="realnum">{{Thisweekobj.avgDuration || 0}}<text
style="font-size: 30rpx;font-weight: 400;font-family: SimHei">min</text></view>
@@ -205,10 +190,6 @@
<view class="realnum"></view>
<view class="realtext"></view>
</view>
<view class="real">
<view class="realnum"></view>
<view class="realtext"></view>
</view>
</view>
</view>
</view>


+ 157
- 34
pages/learning/Keywordsearch.vue View File

@@ -1,37 +1,84 @@
<template>
<view class="translation">
<view style="display: flex;align-items: center;width: 100%;padding: 0 30rpx;">
<!-- <view class="search-input">
<view style="flex-shrink: 0;width: 10%;height: 64rpx;display: flex;align-items: center;">
<image style="width: 28rpx;height: 28rpx;margin-left: 30rpx;" src="/static/images/search.png"
mode=""></image>
</view>
<view style="flex-grow: 1;height: 64rpx;display: flex;align-items: center;">
<input type="text" @input="searchinfo" v-model="keyword" placeholder="请输入关键字"
style="flex-grow: 1;color: #999999;font-size: 24rpx;" />
</view>
</view>
<view class="searchbtn" @click="searchinfo">搜索</view> -->
<u-search class="search-boxs" :disabled="disabled" placeholder="请输入" v-model="keyword" action-text="搜索" :show-action="true"
@search="searchinfo" @custom="searchinfo"></u-search>
</view>
<view style="width: 690rpx;margin: 0 auto;margin-top: 10rpx;">

<view
style="width: 100%;border-bottom: 1px solid #E0E0E0;display: flex;padding-bottom: 10rpx;margin-top: 40rpx;"
v-for="(item,index) in listarr" :key='index' @click="toaidoinfo(item.Content,item.corpusId,item.index)">
<view style="width: 26rpx;height: 36rpx;margin-top: 4rpx;">
<image style="width: 26rpx;height: 28rpx;" src="../../static/images/testimg.png" mode=""></image>
</view>
<view v-html="item.Content.text"
style="color: #666666;font-size: 28rpx;line-height: 36rpx;margin-left: 10rpx;width: 80%;"></view>
<view style="font-size: 28rpx;width: 10%;width: 14%;text-align: right;">{{item.Content.time}}</view>
</view>

</view>
</view>
<view class="box">
<view
style="width: 10%; height: 64rpx; display: flex; align-items: center"
>
<image
style="width: 28rpx; height: 28rpx; margin-left: 30rpx"
src="/static/images/search.png"
mode=""
></image>
</view>
<view
style="width: 90%; height: 64rpx; display: flex; align-items: center"
>
<input
type="text"
@input="searchinfo"
v-model="keyword"
placeholder="请输入关键字"
style="width: 100%; color: #999999; font-size: 24rpx"
/>
</view>
</view>
<view class="box-list">
<view
style="width: 100%; padding-bottom: 10rpx;"
v-for="(item, index) in listarr"
:key="index"
@click="toaidoinfo(item.Content, item.corpusId, item.index)"
>
<view class="item-list">
<view class="icon">
<image
style="width: 26rpx; height: 28rpx"
src="../../static/images/testimg.png"
mode=""
></image>
</view>
<view v-html="item.Content.text" class="text"></view>
<view class="time">{{ item.Content.time }}</view>
</view>
<!-- 1 客户画像 2销讲词 3违禁 4 需求挖掘 -->
<view class="newmark" v-if="item.Content.types">
<view
class="mark-item"
v-for="(subitem, i) in dealTypes(item.Content.types)"
:key="i"
>
<image
v-if="dealword(subitem)[0] == 1"
class="markicon"
src="https://static.quhouse.com/37e0de3f8d1c421dac8bf699d5e7992d.png"
></image>
<image
v-if="dealword(subitem)[0] == 2"
class="markicon"
src="https://static.quhouse.com/b106e8e75db24a59a579a15a78830a76.png"
></image>
<image
v-if="dealword(subitem)[0] == 3"
class="markicon"
src="https://static.quhouse.com/8443a2ecb81d4639991ab29c422e9949.png"
></image>
<image
v-if="dealword(subitem)[0] == 4"
class="markicon"
src="https://static.quhouse.com/1cd794cb6c974d9dad948a6dd444518b.png"
></image>
<view
class="marktext"
:style="
dealword(subitem)[0] == 3 ? 'color:#E7483C' : 'color:#3E50E8'
"
>{{ dealword(subitem)[1] }}</view
>
</view>
</view>
</view>
</view>
</view>
</template>

<script>
@@ -61,6 +108,26 @@
}
},
methods: {
// 对话加命中标签
dealTypes(type) {
if (type) {
let tem = type.substring(1).split(",");
return tem;
} else {
return [];
}
},
// 对话加命中标签
dealword(type) {
if (type) {
let a = type.split("-");
let rest = type.substring(2).split("-").join(",");
let arr = [a[0], rest];
return arr;
} else {
return [];
}
},
formatTime(num) {
//格式化时间格式
num = num.toFixed(0);
@@ -146,7 +213,63 @@
}
</script>
<style lang="scss" scoped>
.search-boxs {
width: 100%;
.box {
width: 690rpx;
height: 64rpx;
margin: 0 auto;
margin-top: 30rpx;
background: #f2f2f2;
border-radius: 32rpx;
display: flex;
align-items: center;
}
.box-list {
width: 690rpx;
margin: 30rpx auto 0;
}
.item-list {
display: flex;
border-bottom: 1px solid #e0e0e0;
.icon {
width: 26rpx;
height: 36rpx;
margin-top: 4rpx;
}
.text {
color: #666666;
font-size: 28rpx;
line-height: 36rpx;
margin-left: 10rpx;
width: 80%;
}
.time {
font-size: 28rpx;
width: 10%;
width: 14%;
text-align: right;
}
}
.newmark {
margin-top: 20rpx;
padding-left: 30rpx;
.mark-item {
display: flex;
flex-wrap: wrap;
margin-bottom: 12rpx;
.markicon {
width: 30rpx;
height: 30rpx;
margin-right: 12rpx;
}
.marktext {
flex: 1;
font-size: 24rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #3e50e8;
min-height: 30rpx;
line-height: 30rpx;
}
}
}
</style>

+ 172
- 3
pages/mine/details2.vue View File

@@ -299,6 +299,8 @@
</view>
<view v-if="permissions.commonly6" :class="{ activecllasscet: zhixingcenterindex == 1 }"
@click="recordclick(1)">禁忌执行</view>
<view :class="{ activecllasscet: zhixingcenterindex == 2 }"
@click="recordclick(2)">需求挖掘率</view>
</view>
<view v-if="zhixingcenterindex == 0" class="cenisbox">
<view
@@ -353,6 +355,107 @@
<view v-if="prohibitedlist.length==0" style="width: 100%;text-align: center;margin-top: 60rpx;">暂无数据
</view>
</view>
<!-- 需求挖掘率 -->
<view v-if="zhixingcenterindex == 2" class="cenisbox">
<view class="top-box">
<view style="width:50%;text-align:center">挖掘执行:{{KeyWordsfraction||0}}%</view>
<view style="width:50%;text-align:center">挖掘成功:{{percent||0}}%</view>
</view>
<view
style="width: 100%;height: 80rpx;border-bottom: 1rpx solid #E0E0E0;display: flex;align-items: center;">
<view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 28rpx;">指标
</view>
<view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-align:center">执行率
</view>
<view style="flex: 1;color: #333333;font-weight: 600;text-align:center;text-indent:28rpx">匹配标签
</view>
<view style="flex: 0 0 30rpx"></view>
</view>
<view class="Level-box" v-for="(item,index) in KeyWordsfractionList" :key="index">
<view class="Level1che" @click="hangeshow2(item,1)">
<view class="title1" style="flex:1">{{item.name}}</view>
<view class="Level1-middle" style="flex:2;display:flex;">
<view class="item" style="flex:1;text-align:center;">执行{{item.fraction || 0}}%</view>
<view class="item" style="flex:1;text-align:center;color:#2671E2"
v-if="item.keywordsList&&item.keywordsList.length">已匹配({{
item.keywordsList.length
}})</view>
<view class="item" v-else style="flex:1;text-align:center;">未匹配</view>
</view>
<view class="jiantobox">
<image v-if="!item.show" class="arrow rotatearrow" src="/static/images/down.png"
mode="" />
<image v-else class="arrow" src="/static/images/up.png" mode="" />
</view>
</view>
<!-- 话术在一级下 -->
<view v-if="item.children&&item.children.length==0">
<view class="hhhbox" v-if="item.show" style="padding: 30rpx;">
<view class="hsnrtest" style="font-size:30rpx;color: #333;line-height: 42rpx;">
客户标签:{{ getKeywordsList(item.keywordsList) }}</view>
<view class="hsnrtest">话术内容:</view>
<view v-if="item.modelList.length==0">暂无话术</view>
<view class="Level3che" @click="clickWajue(che)" v-for="(che,inc) in item.modelList"
:key='inc'>
<view class="title1"
:style="che.isAskQuestions==2?'color:#FF8C13':che.isAskQuestions==0?'':'color: #666'">
{{inc+1}}.{{che.showFormatExpression}}
</view>
<view class="jiantobox">
<!-- 0本次选中 1未选中 2上次选中 -->
<image v-if="che.isAskQuestions==0" class="arrow"
src="/static/images/rate-checked.png" mode="" />
<image v-else-if="che.isAskQuestions==2" class="arrow"
src="/static/images/checked-yellow.png" mode="" />
<image v-else class="arrow" src="/static/images/rate-nocheck.png" mode="" />
</view>
</view>
</view>
</view>
<!-- 话术二级下 -->
<view v-if="item.children&&item.children.length">
<view class="hhhbox" v-if="item.show" v-for="(subitem,i) in item.children" :key="i">
<view class="Level2che" @click="hangeshow2(subitem,1)">
<view class="title1 u-line-1">{{subitem.name}}</view>
<view class="leve1-jindu">
<view class="zhixing" v-if="subitem.isAskQuestions==0">已执行</view>
<view class="zhixing2" v-else>未执行</view>
</view>
<view class="leve1-jindu">
<view class="zhixing" v-if="subitem.selected==0">已匹配</view>
<view class="zhixing2" v-else>未匹配</view>
</view>
<view class="jiantobox">
<image v-if="!subitem.show" class="arrow rotatearrow"
src="/static/images/down.png" mode="" />
<image v-else class="arrow" src="/static/images/up.png" mode="" />
</view>
</view>
<view v-if="subitem.show" style="padding: 30rpx 0;">
<view class="hsnrtest" style="font-size:30rpx;color: #333;line-height: 42rpx;">
客户标签:{{ getKeywordsList(subitem.keywordsList) }}</view>
<view class="hsnrtest">话术内容:</view>
<view v-if="subitem.modelList.length==0">暂无话术</view>
<view class="Level3che" @click="clickWajue(che)"
v-for="(che,inc) in subitem.modelList" :key='inc'>
<view class="title1"
:style="che.isAskQuestions==2?'color:#FF8C13':che.isAskQuestions==0?'':'color: #666'">
{{inc+1}}.{{che.showFormatExpression}}
</view>
<view class="jiantobox">
<!-- 0本次选中 1未选中 2上次选中 -->
<image v-if="che.isAskQuestions==0" class="arrow"
src="/static/images/rate-checked.png" mode="" />
<image v-else-if="che.isAskQuestions==2" class="arrow"
src="/static/images/checked-yellow.png" mode="" />
<image v-else class="arrow" src="/static/images/rate-nocheck.png" mode="" />
</view>
</view>
</view>
</view>
</view>
</view>
</view>
</view>

<!-- 客户意向 -->
@@ -491,6 +594,8 @@
},
data() {
return {
KeyWordsfractionList: [],
KeyWordsfraction: 0,
customStyle: {
'width': '320rpx',
'font-size': '34rpx',
@@ -621,6 +726,8 @@
this.customerId = options.customerId;
this.itemobj = uni.getStorageSync('searchobj');
this.stateisshow = options.stateisshow;
this.KeyWordsfraction = options.wordFraction == 'undefined' ? 0 : options.wordFraction;

this.$zaudio.autoPlay = true
if (options.refresh) this.refresh = options.refresh

@@ -699,6 +806,59 @@
},

methods: {
hangeshow2(item, type) {
item.show = !item.show;
},
//挖掘率话术客户标签展示
getKeywordsList(list) {
let keywords = [];
if (list && list.length) {
keywords = list.map((item) => item.name);
} else {
return "--";
}
return keywords.join(",");
},
// 计算挖掘执行的完成率
getPercent() {
let countArr = this.KeyWordsfractionList.filter(item => item.selected == 0)
this.percent = (countArr.length / this.KeyWordsfractionList.length) * 100
this.percent = this.percent.toFixed(0)
},
// 客户详情需求挖掘话术
getfindKeyWordsBycusId() {
this.$u.get("/cusLvStatistics/findKeyWordsBycusId?cusId=" + this.customerId).then(res => {
// console.log(res)
if (res.length) {
res.forEach((item, index) => {
item.show = false
if (index == 0) {
item.show = true
}
item.children.forEach((obj, i) => {
obj.show = false
if (i == 0 && index == 0) {
obj.show = true;
}
})
})
this.KeyWordsfractionList = res
this.getPercent()
} else {
this.KeyWordsfractionList = []
}
})
},
clickWajue(item) {
if (item.isAskQuestions == 0) {
this.Pinspeak = false
uni.navigateTo({
url: '/pages/learning/Keywordsearch?customerId=' + this.customerId + "&keyword=" + item
.showFormatExpression +
"&skpl=" + "2" + '&UpDateEvent=DETAILS2INIT'
})
}
},
// 对话加命中标签
dealTypes(type) {
if (type) {
@@ -840,8 +1000,10 @@
this.zhixingcenterindex = i;
if (i == 0) {
this.getRatelist()
} else {
} else if(i ==1) {
this.huoqujinji()
}else{
this.getfindKeyWordsBycusId()
}
},
//获取禁忌
@@ -2010,13 +2172,13 @@
line-height: 60rpx;
border-bottom: 1px solid #E0E0E0;
display: flex;
justify-content: space-around;
}

.pingfenbox view {
flex: 1;
text-align: center;
font-size: 28rpx;
text-indent: 20rpx;
padding: 0 18rpx;
}

.activecllasscet {
@@ -2419,6 +2581,13 @@
.cenisbox {
flex: 1;
overflow: auto;
.top-box {
height: 80rpx;
line-height: 80rpx;
display: flex;
color: #2671E2;
border-bottom: 1rpx solid #ccc;
}

.jianbox {
width: 100%;


Loading…
Cancel
Save