|
|
@@ -200,13 +200,6 @@ |
|
|
|
</view> |
|
|
|
<!-- 需求挖掘执行率 --> |
|
|
|
<view class="xuqiu" v-if="activeTotal==3"> |
|
|
|
<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: 20rpx;">指标 |
|
|
|
</view> |
|
|
|
<view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 170rpx;">执行率 |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<!-- 暂无数据 --> |
|
|
|
<view v-if="KeyWordsfractionList.length==0" |
|
|
|
style="width: 100%;height: 100%;display: flex;align-items: center;"> |
|
|
@@ -219,207 +212,213 @@ |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<!-- 需求挖掘执行率 --> |
|
|
|
<view class="xuqiu" v-if="activeTotal == 3"> |
|
|
|
<view |
|
|
|
style=" |
|
|
|
width: 100%; |
|
|
|
height: 80rpx; |
|
|
|
border-bottom: 1rpx solid #e0e0e0; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
background: #fff; |
|
|
|
" |
|
|
|
<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"> |
|
|
|
<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 |
|
|
|
style=" |
|
|
|
flex: 1; |
|
|
|
font-size: 28rpx; |
|
|
|
color: #333333; |
|
|
|
font-weight: 600; |
|
|
|
text-indent: 50rpx; |
|
|
|
" |
|
|
|
>指标</view |
|
|
|
<view class="item" style="flex:1;text-align:center;" v-if="item.keywordsList&&item.keywordsList.length">已匹配({{ |
|
|
|
item.keywordsList&&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" |
|
|
|
>客户标签:{{ getKeywordsList(item.keywordsList) }}</view |
|
|
|
> |
|
|
|
<view |
|
|
|
style=" |
|
|
|
flex: 1; |
|
|
|
font-size: 28rpx; |
|
|
|
color: #333333; |
|
|
|
font-weight: 600; |
|
|
|
text-indent: 70rpx; |
|
|
|
" |
|
|
|
>执行率</view |
|
|
|
<view class="hsnrtest">话术内容</view> |
|
|
|
<view class="Level3che" v-for="(che,inc) in item.modelList" :key='inc'> |
|
|
|
<view class="title1" |
|
|
|
:style="che.selected==2?'color:#FF8C13':che.selected==1?'color: #666':''"> |
|
|
|
{{inc+1}}.{{che.showFormatExpression || che.keywordsName}} |
|
|
|
</view> |
|
|
|
<view class="jiantobox"> |
|
|
|
<!-- 0本次选中 1未选中 2上次选中 --> |
|
|
|
<image v-if="che.selected==0" class="arrow" |
|
|
|
src="/static/images/rate-checked.png" mode="" /> |
|
|
|
<image v-else-if="che.selected==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" |
|
|
|
>客户标签:{{ getKeywordsList(subitem.keywordsList) }}</view |
|
|
|
> |
|
|
|
<view class="hsnrtest">话术内容</view> |
|
|
|
<view |
|
|
|
style=" |
|
|
|
flex: 1; |
|
|
|
font-size: 28rpx; |
|
|
|
color: #333333; |
|
|
|
font-weight: 600; |
|
|
|
text-indent: 70rpx; |
|
|
|
" |
|
|
|
>匹配</view |
|
|
|
class="Level3che" |
|
|
|
v-for="(che, inc) in subitem.modelList" |
|
|
|
:key="inc" |
|
|
|
> |
|
|
|
</view> |
|
|
|
<!-- 暂无数据 --> |
|
|
|
<view |
|
|
|
v-if="KeyWordsfractionList.length == 0" |
|
|
|
style="width: 100%; height: 100%; display: flex; align-items: center" |
|
|
|
> |
|
|
|
<view style="width: 100%; padding-top: 60rpx"> |
|
|
|
<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; |
|
|
|
class="title1" |
|
|
|
:style=" |
|
|
|
che.selected == 2 |
|
|
|
? 'color:#FF8C13' |
|
|
|
: che.selected == 1 |
|
|
|
? 'color: #666' |
|
|
|
: '' |
|
|
|
" |
|
|
|
>暂无数据</view |
|
|
|
>{{ inc + 1 }}.{{ |
|
|
|
che.showFormatExpression || che.keywordsName |
|
|
|
}}</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">匹配({{ |
|
|
|
item.keywordsList&&item.keywordsList.length||0 |
|
|
|
}})</view> |
|
|
|
</view> |
|
|
|
<view class="jiantobox"> |
|
|
|
<image |
|
|
|
v-if="!item.show" |
|
|
|
class="arrow rotatearrow" |
|
|
|
src="/static/images/down.png" |
|
|
|
v-if="che.selected == 0" |
|
|
|
class="arrow" |
|
|
|
src="/static/images/rate-checked.png" |
|
|
|
mode="" |
|
|
|
/> |
|
|
|
<image |
|
|
|
v-else-if="che.selected == 2" |
|
|
|
class="arrow" |
|
|
|
src="/static/images/checked-yellow.png" |
|
|
|
mode="" |
|
|
|
/> |
|
|
|
<image |
|
|
|
v-else |
|
|
|
class="arrow" |
|
|
|
src="/static/images/rate-nocheck.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" |
|
|
|
>客户标签:{{ getKeywordsList(item.keywordsList) }}</view |
|
|
|
> |
|
|
|
<view class="hsnrtest">话术内容</view> |
|
|
|
<view class="Level3che" v-for="(che,inc) in item.modelList" :key='inc'> |
|
|
|
<view class="title1" |
|
|
|
:style="che.selected==2?'color:#FF8C13':che.selected==1?'color: #666':''"> |
|
|
|
{{inc+1}}.{{che.showFormatExpression || che.keywordsName}} |
|
|
|
</view> |
|
|
|
<view class="jiantobox"> |
|
|
|
<!-- 0本次选中 1未选中 2上次选中 --> |
|
|
|
<image v-if="che.selected==0" class="arrow" |
|
|
|
src="/static/images/rate-checked.png" mode="" /> |
|
|
|
<image v-else-if="che.selected==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" |
|
|
|
>客户标签:{{ getKeywordsList(subitem.keywordsList) }}</view |
|
|
|
> |
|
|
|
<view class="hsnrtest">话术内容</view> |
|
|
|
<view |
|
|
|
class="Level3che" |
|
|
|
v-for="(che, inc) in subitem.modelList" |
|
|
|
:key="inc" |
|
|
|
> |
|
|
|
<view |
|
|
|
class="title1" |
|
|
|
:style=" |
|
|
|
che.selected == 2 |
|
|
|
? 'color:#FF8C13' |
|
|
|
: che.selected == 1 |
|
|
|
? 'color: #666' |
|
|
|
: '' |
|
|
|
" |
|
|
|
>{{ inc + 1 }}.{{ |
|
|
|
che.showFormatExpression || che.keywordsName |
|
|
|
}}</view |
|
|
|
> |
|
|
|
<view class="jiantobox"> |
|
|
|
<image |
|
|
|
v-if="che.selected == 0" |
|
|
|
class="arrow" |
|
|
|
src="/static/images/rate-checked.png" |
|
|
|
mode="" |
|
|
|
/> |
|
|
|
<image |
|
|
|
v-else-if="che.selected == 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> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
@@ -451,6 +450,7 @@ |
|
|
|
}, |
|
|
|
data() { |
|
|
|
return { |
|
|
|
percent: 0, |
|
|
|
tabactive: 0, |
|
|
|
activeTotal: 0, |
|
|
|
customerId: '', |
|
|
@@ -492,6 +492,15 @@ |
|
|
|
this.tabtimetap(0) |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
// 计算挖掘执行的完成率 |
|
|
|
getPercent(){ |
|
|
|
let countArr = this.KeyWordsfractionList.filter(item=> item.selected==0) |
|
|
|
console.log(countArr) |
|
|
|
this.percent = (countArr.length / this.KeyWordsfractionList.length)*100 |
|
|
|
console.log(this.percent.toFixed(0)) |
|
|
|
this.percent = this.percent.toFixed(0) |
|
|
|
|
|
|
|
}, |
|
|
|
//挖掘率话术客户标签展示 |
|
|
|
getKeywordsList(list) { |
|
|
|
let keywords = []; |
|
|
@@ -537,6 +546,7 @@ |
|
|
|
} |
|
|
|
}); |
|
|
|
this.KeyWordsfractionList = res; |
|
|
|
this.getPercent() |
|
|
|
} else { |
|
|
|
this.KeyWordsfractionList = []; |
|
|
|
} |
|
|
@@ -766,6 +776,13 @@ |
|
|
|
.rotatearrow { |
|
|
|
transform: rotate(270deg); |
|
|
|
} |
|
|
|
.top-box{ |
|
|
|
height: 80rpx; |
|
|
|
line-height: 80rpx; |
|
|
|
display: flex; |
|
|
|
color: #2671E2; |
|
|
|
border-bottom: 1rpx solid #ccc; |
|
|
|
} |
|
|
|
|
|
|
|
// 评分 |
|
|
|
.rate-box { |
|
|
|