Browse Source

修改

newyun
douzhuo 2 years ago
parent
commit
96f1167cd3
10 changed files with 1042 additions and 550 deletions
  1. +1
    -1
      env/sh.js
  2. +157
    -167
      pages/center/consumer/consumerDetail.vue
  3. +401
    -99
      pages/center/prohibited/details.vue
  4. +135
    -48
      pages/center/records/index.vue
  5. +85
    -8
      pages/index/consumer/index.vue
  6. +9
    -27
      pages/index/index.vue
  7. +132
    -157
      pages/learning/Keywordsearch.vue
  8. +112
    -36
      pages/mine/ScoringPlaylist.vue
  9. +1
    -0
      pages/mine/calibration.vue
  10. +9
    -7
      pages/mine/details2.vue

+ 1
- 1
env/sh.js View File

@@ -1,5 +1,5 @@
const ENV_PATH = {
baseUrl: 'http://192.168.31.149:9999', // 胜浩
baseUrl: 'http://192.168.31.85:9999', // 胜浩
}

module.exports = ENV_PATH

+ 157
- 167
pages/center/consumer/consumerDetail.vue View File

@@ -11,7 +11,9 @@
<view class="img B" v-else-if="customerInfo.level==2">B</view>
<view class="img C" v-else-if="customerInfo.level==3">C</view>
<view class="img D" v-else-if="customerInfo.level==4">D</view>
<view v-if="customerInfo.clientStageName" class="clientStageName">{{ customerInfo.clientStageName }}</view>
<view v-if="customerInfo.clientStageName" class="clientStageName">
{{ customerInfo.clientStageName }}
</view>
</view>
<view class="edit" @click="goedit()" v-if="isHavePermission">
<image class="screen-sel-img" src="../../../static/images/edit.png" mode=""></image>
@@ -29,10 +31,10 @@
</view>
<view class="content-sec-lab">
<view class="u-flex" style="flex:1">
挖掘执行:<view class="content-sec-lab1">{{customerInfo.wordFraction||0}}%</view>
挖掘执行:<view class="content-sec-lab1">{{customerInfo.wordFraction||0}}%</view>
</view>
<view class="u-flex" style="flex:1">
挖掘成功:<view class="content-sec-lab1">{{customerInfo.wordFinishFraction||0}}%</view>
<view class="u-flex" style="flex:1">
挖掘成功:<view class="content-sec-lab1">{{customerInfo.wordFinishFraction||0}}%</view>
</view>
</view>
<view class="content-sec-lab">
@@ -41,7 +43,7 @@
<view class="content-sec-num">
<view>到访{{customerInfo.visitRecord || '--'}}次</view>
<view>
{{customerInfo.mm || '0'}}min/{{customerInfo.fraction || '0'}}%
{{customerInfo.mm || '0'}}min/{{customerInfo.fraction || '0'}}%
</view>
</view>
</view>
@@ -119,7 +121,8 @@
<view class="tab2-first-left">
<view class="img">{{item.agentName.slice(0,1) || '--'}}</view>
<view class="name">{{item.agentName || '||'}}</view>
<view v-if="item.clientStageName" class="clientStageName">{{ item.clientStageName }}</view>
<view v-if="item.clientStageName" class="clientStageName">{{ item.clientStageName }}
</view>
</view>
<view class="tab2-first-right">{{item.createTime}}</view>
</view>
@@ -142,11 +145,11 @@
<view style="text-align: center;color: #07B79D;">{{customerInfo.fraction}}%</view>
</u-circle-progress>
</view>
<view class="ratetetle-desc">销讲执行率</view>
<view class="ratetetle-desc">销讲执行率</view>
</view>
<view class="rateyuanboxzuo">
<view class="boxzuoview">{{customerInfo.mm}}min</view>
<view class="ratetetle-desc">接待时长</view>
<view class="ratetetle-desc">接待时长</view>
</view>
</view>
<view class="middle-title">
@@ -197,8 +200,7 @@
<view class="jiantobox">
<image v-if="che.selected==0" class="arrow" src="/static/images/rate-checked.png"
mode="" />
<image v-else class="arrow" src="/static/images/no-checked.png"
mode="" />
<image v-else class="arrow" src="/static/images/no-checked.png" mode="" />
</view>
</view>
<view v-if="subitem.show" style="width: 100%;height: 30rpx;"></view>
@@ -206,162 +208,133 @@
</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 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">挖掘成功率:{{customerInfo.wordFinishFraction||0}}%</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">挖掘成功:{{customerInfo.wordFinishFraction||0}}%</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="
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 style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 70rpx;">执行率
</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="
<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 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 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 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>
<!-- 话术在二级下 -->
<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="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 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">
<!-- 0本次选中 1未选中 2上次选中 -->
<image v-if="che.isAskQuestions==0" class="arrow"
<image v-if="che.isAskQuestions == 0" class="arrow"
src="/static/images/rate-checked.png" mode="" />
<image v-else-if="che.isAskQuestions==2" class="arrow"
<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>

<view class="pon-foot" v-if="buttonisshow">
@@ -381,7 +354,7 @@
</scroll-view>

</u-popup>
<!-- 加载组件 -->
<u-loadings v-model="LOADING"></u-loadings>
</view>
@@ -510,9 +483,9 @@
this.getVisitList()
} else if (idx == 1) {
this.getFollowList()
} else if(idx == 2){
} else if (idx == 2) {
this.getRatelist()
}else{ // 需求挖掘率
} else { // 需求挖掘率
this.getfindKeyWordsBycusId()
}
},
@@ -682,9 +655,9 @@
})
},
},
filters: {
// 加密手机
phoneText(mobile) {
if (!mobile) return '--'
@@ -815,10 +788,12 @@
.Level-box {
padding-bottom: 2rpx;
border-bottom: 1rpx solid #E0E0E0;

.hhhbox {
width: 100%;
padding: 0 30rpx;
background: #f8f8f8;

.hsnrtest {
height: 36rpx;
font-size: 26rpx;
@@ -919,7 +894,7 @@
display: flex;
line-height: 98rpx;
align-items: center;
padding:0 30rpx;
padding: 0 30rpx;

.title1 {
flex: 2;
@@ -937,7 +912,8 @@
line-height: 28rpx;
border-radius: 14rpx;
position: relative;
background: rgba(7, 183, 157, 0.2);
background: rgba(7, 183, 157, 0.2);

.huanxing {
height: 100%;
background: #07B79D;
@@ -968,10 +944,12 @@
}
}
}

.ratecenter {
background-color: #FFFFFF;
padding-bottom: 30rpx;
width: 100%;

.ratetetle {
height: 42rpx;
font-size: 30rpx;
@@ -981,6 +959,7 @@
line-height: 42rpx;
padding: 24rpx 30rpx;
}

.rateyuanbox {
width: 100%;
height: 210rpx;
@@ -988,28 +967,33 @@
display: flex;
padding-left: 80rpx;
padding-right: 80rpx;

.rateyuanboxzuo {
width: 30%;
height: 100%;
}

.rateyuanboxyou {
width: 40%;
height: 100%;
}

.boxzuoview {
width: 100%;
height: 140rpx;
line-height: 140rpx;
text-align: center;
}
.ratetetle-desc{

.ratetetle-desc {
color: #666;
font-size:30rpx;
font-size: 30rpx;
font-weight: 400;
text-align: center;
}
}
.middle-title{

.middle-title {
height: 78rpx;
line-height: 78rpx;
display: flex;
@@ -1020,10 +1004,12 @@
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
color: #333333;

.item-title1 {
width: 450rpx;
padding-left: 30rpx;
}

.item-title {
flex: 1;
}
@@ -1052,6 +1038,7 @@
font-size: 30rpx;
display: flex;
justify-content: center;

.activecllasscet {
border-bottom: 6rpx solid #2671E2;
color: #2671E2;
@@ -1085,7 +1072,7 @@
display: flex;
align-items: center;
justify-content: space-between;
.img {
width: 48rpx;
height: 48rpx;
@@ -1109,6 +1096,7 @@
margin-right: 16rpx;
display: flex;
}

.clientStageName {
height: 48rpx;
line-height: 48rpx;
@@ -1128,12 +1116,13 @@
flex-shrink: 0;
height: 40rpx;
width: 40rpx;

image {
width: 100%;
height: 100%;
}
}
}

.right {
@@ -1208,6 +1197,7 @@
.content-last {
padding: 30rpx;
margin-top: 28rpx;

.content-last-con {
width: 690rpx;
min-height: 112rpx;
@@ -1380,7 +1370,7 @@
color: #333333;
margin-left: 20rpx;
}
.clientStageName {
height: 48rpx;
line-height: 48rpx;
@@ -1389,7 +1379,7 @@
border: 1rpx solid #ff981e;
box-sizing: border-box;
font-size: 28rpx;
font-family: PingFangSC-Regular,PingFang SC;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #ff981e;
margin-left: 16rpx;
@@ -1492,25 +1482,25 @@
height: 100%;
}
}
.A {
background: #E6625B;
}
background: #E6625B;
}

.B {
background: #FF981E;
}
.B {
background: #FF981E;
}

.C {
background: #F6BD16;
}
.C {
background: #F6BD16;
}

.D {
background: #E6625B;
}
.D {
background: #E6625B;
}

.top-box {
.top-box {
height: 80rpx;
line-height: 80rpx;
display: flex;


+ 401
- 99
pages/center/prohibited/details.vue View File

@@ -35,49 +35,58 @@
bg-color="transparent" :show-bar="false" :current="current" @change="change"></u-tabs>
</template>
<template v-if="current == 0">
<scroll-view :scroll-top="scrollTop" lower-threshold='100px' @scrolltolower="ltolower()"
upper-threshold='40px' @scrolltoupper="rolltoupper()" :scroll-into-view="scrollId" scroll-y="true"
class="zhuti text scroll-Y">
<scroll-view scroll-y="true" class="zhuti text scroll-Y">
<!-- 聊天记录-->
<view class="dialog-block" style="border-bottom: none;">
<block v-for="(item,index) in findTabooWordsList" :key="index">
<view class="text">
<view class="avatar">
<view :style="[SPEAKERSTYLE(item.speaker)]">
<text v-if="item.isShow == 0">顾</text>
<text v-else>{{ item.speaker | toCapital }}</text>
</view>
<view class="dialog-block" v-for="(item,i) in findTabooWordsList" :key="i">
<view class="fileName">录音文件</view>
<view class="text" :data-guwen="item.isShow" :data-speaker="item.speaker">
<view class="avatar">
<view>
<image v-if="item.isShow == 0"
src="https://static.quhouse.com/b11a7e1ccf914020b3ee23d3e4862637.png"
mode="widthFix">
</image>
<text v-else :style="[borderColor(item.speaker)]">{{ item.speaker | toCapital }}</text>
</view>

<view class="contentInfo">
<view class="info">
<!-- <text class="AudioUserName">{{ item.speaker | toCapital }}</text> -->
<text class="AudioUserName" v-if="item.isShow == 0">{{item.username}}</text>
<text class="AudioUserName" v-else>{{ item.speaker | toCapital }}</text>
<text>{{conversionTiame(item.bg/1000)}}</text>
</view>
<view class="contentMain">
<view class="content">
<view v-html="item.onebest"></view>
</view>
<template v-if="isShowMerge">
<image @click="clickbofang(0,item, 'show')" class="play"
src="@/static/images/recordingManagement/play.png"></image>
</template>
</view>
<view class="contentInfo">
<view class="info">
{{ item.speaker | toCapital }} {{conversionTiame(item.bg/1000)}}
</view>
<view class="contentMain" @click.stop>
<view class="content">
<view v-html="item.onebest"></view>
</view>
<image v-if="Math.floor(item.bg/1000) <= playNow && Math.floor(item.ed/1000) > playNow"
class="play" src="https://static.quhouse.com/ce73a5225f7f44be9f313b0e4e4c2c0e.png">
</image>
<image v-else @click="clickbofang(0,item, 'show')" class="play"
src="https://static.quhouse.com/1b6ac53247e043a1bdc59ecfb2167eba.png"></image>
</view>
</view>
<!-- 1 客户画像 2销讲词 3违禁 4 需求挖掘 -->
<view class="newmark" v-if="item.types">
<view class="mark-item" v-for="(subitem,i) in dealTypes(item.types)" :key="i">
<image v-if="dealword(subitem)[0]==3" class="markicon"
src="https://static.quhouse.com/8443a2ecb81d4639991ab29c422e9949.png"></image>
<view class="marktext" v-if="dealword(subitem)[0]==3" :style="dealword(subitem)[0]==3?'color:#E7483C':'color:#3E50E8'">
{{dealword(subitem)[1]}}
<!-- ----------对话下方新加话术标签标识------------ -->
<!-- 1 客户画像 2销讲词 3违禁 4 需求挖掘 -->
<view class="newmark" v-if="item.types">
<view class="mark-item" v-for="(subitem,i) in dealTypes(item.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>
</block>
</view>
</view>
</scroll-view>
</template>
@@ -92,7 +101,6 @@
:is-scroll="true">
</u-tabs-swiper>
</view>

</view>
</view>
<scroll-view :scroll-top="scrollTop" lower-threshold='100px' @scrolltolower="ltolower()"
@@ -102,32 +110,87 @@
<view class="dialog-block" v-for="(dialog,i) in dialogList" :key="i">
<view :id="'dialog'+i" class="fileName">录音文件</view>
<block v-for="(item,index) in dialog.message" :key="index">
<view class="text" :id="'dialog'+csdFileindex+'text'+item.bg"
:class="{active: item.bg < playNow && item.ed > playNow, reverse: Number(item.speaker) % 2 == 0}"
:data-speaker="item.speaker">
<view class="text"
:class="{active: Math.floor(item.bg/1000) <= playNow && Math.floor(item.ed/1000) > playNow, isGreen: item.isShow == 0}"
:data-guwen="item.isShow" :data-speaker="item.speaker"
:id="'dialog'+csdFileindex+'text'+item.bg">
<view class="avatar">
<view :style="[SPEAKERSTYLE(item.speaker)]">
<text v-if="item.isShow == 0">顾</text>
<text v-else>{{ item.speaker | toCapital }}</text>
<view>
<image v-if="item.isShow == 0"
src="https://static.quhouse.com/b11a7e1ccf914020b3ee23d3e4862637.png"
mode="widthFix">
</image>
<text v-else
:style="[borderColor(item.speaker)]">{{ item.speaker | toCapital }}</text>
</view>
</view>
<view class="contentInfo">
<view class="info">
<text class="AudioUserName" v-if="item.isShow == 0">{{ item.username }}</text>
<text class="AudioUserName" v-else>{{ item.speaker | toCapital }}</text>
<text>{{conversionTiame(item.bg/1000)}}</text>
{{ item.speaker | toCapital }} {{conversionTiame(item.bg/1000)}}
</view>
<view class="contentMain">
<view class="contentMain" @click.stop>
<view class="content">
<view v-html="item.onebest"></view>
<view v-html="item.onebest">
</view>

<template v-if="item.isshow">
<view class="tankuangcss" :class="{bottoms:index == 0}">
<view class="tankuangcss-items" @click="clickcopy">
<image src="@/static/images/detail/icon1.png" mode=""></image>
<text>复制</text>
</view>
<view v-if="permissions.commonly4" class="tankuangcss-items"
@click="Oftenthewrongword">
<image src="@/static/images/detail/icon2.png" mode=""></image>
<text>常错词</text>
</view>
<view v-if="permissions.commonly3" class="tankuangcss-items"
@click="Addtheessence">
<image src="@/static/images/detail/icon3.png" mode=""></image>
<text>加精华</text>
</view>
<view class="tankuangcss-items" @click="Modifyrole(index,item)">
<image src="@/static/images/detail/icon4.png" mode=""></image>
<text>修改角色</text>
</view>
</view>
</template>
</view>
<image
v-if="Math.floor(item.bg/1000) <= playNow && Math.floor(item.ed/1000) > playNow"
class="play"
src="https://static.quhouse.com/ce73a5225f7f44be9f313b0e4e4c2c0e.png">
</image>
<image v-else @click="clickbofang(dialog.backindex,item)" class="play"
src="https://static.quhouse.com/1b6ac53247e043a1bdc59ecfb2167eba.png"></image>
</view>
<!-- ----------对话下方新加话术标签标识------------ -->
<!-- 1 客户画像 2销讲词 3违禁 4 需求挖掘 -->
<view class="newmark" v-if="item.types">
<view class="mark-item" v-for="(subitem,i) in dealTypes(item.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>
<image @click="clickbofang(dialog.backindex,item)" class="play"
src="@/static/images/recordingManagement/play.png"></image>
</view>
</view>
</view>
</block>
</view>

</scroll-view>
</template>

@@ -227,7 +290,6 @@
textindex: 0, //下拉 转写文件下标
toptextindex: 0, //上拉 转写文件下标

dshfkjsdkksodofydwfkhwdfkjh: 0, // 顾问的id之类的
status: 0, // 状态(不明白是什么状态)
speaker: '', // 角色身份
customerId: '', // 楼盘id吧(猜)
@@ -314,10 +376,8 @@
var pages = getCurrentPages();
var currPage = pages[pages.length - 1]; //当前页面
this.infos = currPage.data.info;
}
!this.isPageHide && this.init(this.infos);
}!this.isPageHide && this.init(this.infos);
this.gituserlist()
this.findTabooWords()
},

onHide() {
@@ -329,30 +389,10 @@
this.$zaudio.off('stop', this.ACTION);
this.$zaudio.off('playing', this.ACTION);
// this.$zaudio.setAudio([])
},

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 []
}
},
// 获取违禁词
findTabooWords() {
this.$u.get('/customer/findTabooWords', {
@@ -365,10 +405,13 @@
arr.push(item.transferContents)
}
})
this.findTabooWordsList = arr
this.findTabooWordsList = arr.map(item => {
if (item.speaker == this.speaker) {
item.isShow = 0
}
return item
})
this.isFirstWords = arr[0].bg
console.log(this.findTabooWordsList, 'findTabooWordsList')
})
},

@@ -530,7 +573,7 @@

//取消标记
unmarktap() {
this.roleindexbiaoji = this.dshfkjsdkksodofydwfkhwdfkjh;
this.roleindexbiaoji = this.speaker;
},

//确认标记
@@ -582,7 +625,7 @@
} else {
this.kehuyixiangcenterindex = 1;
}
if (info.bg != 0) {
this.luyinList = res;
this.recordPath = res[0].recordPath
@@ -635,20 +678,16 @@
})
}
}
if (data.data.data.speaker == null) {
this.dshfkjsdkksodofydwfkhwdfkjh = 0;
} else {
// 顾问下标
this.speaker = data.data.data.speaker || 0;
if (data.data.data.speaker != null) {
if (data.data.data.viewNameFlag == 1) {
this.tablist[data.data.data.speaker].name = this.tablist[data.data.data
.speaker]
.name;
this.tablist[data.data.data.speaker].name = this.tablist[data.data.data.speaker].name;
} else {
this.tablist[data.data.data.speaker].name = this.tablist[data.data.data
.speaker]
.name + "顾问";
this.tablist[data.data.data.speaker].name = this.tablist[data.data.data.speaker].name + "顾问";
}
this.roleindexbiaoji = data.data.data.speaker - 1;
this.dshfkjsdkksodofydwfkhwdfkjh = data.data.data.speaker - 1;
}

if (data.data.data.viewNameFlag == 1) {
@@ -660,13 +699,12 @@
} else {
this.isSw = false
}

this.speaker = data.data.data.speaker;
//上拉标记点
this.textindex = data.data.data.index;
//下拉标记点
this.toptextindex = data.data.data.index;

// 获取违禁话列表
this.findTabooWords()
jsonInfo.forEach(item => {
item.message = JSON.parse(item.onebest)
item.backindex = this.csdFileindex;
@@ -682,6 +720,7 @@
this.newluyinList = jsonInfo;
this.dialogList.push(jsonInfo[0]);
console.log(this.dialogList, '12312321')

if (type == 'show') {
var itc = parseInt(info.bg / 1000)
this.adasdasdasd(itc)
@@ -691,7 +730,6 @@
})
},


//下一页
ltolower() {
var lengthcz = this.newluyinList.length - 1;
@@ -708,6 +746,7 @@
this.dialogList[0].message.push(item)
})
}
console.log("下一页", this.textindex)
},

//上一页
@@ -783,7 +822,7 @@

if (data.data.data.speaker == null) {
this.roleindexbiaoji = 0;
this.dshfkjsdkksodofydwfkhwdfkjh = 0;
this.speaker = 0;
} else {
if (data.data.data.viewNameFlag == 1) {
this.tablist[data.data.data.speaker].name = this.tablist[data.data.data
@@ -795,7 +834,7 @@
.name + "顾问";
}
this.roleindexbiaoji = data.data.data.speaker - 1;
this.dshfkjsdkksodofydwfkhwdfkjh = data.data.data.speaker - 1;
this.speaker = data.data.data.speaker;
}

if (data.data.data.viewNameFlag == 1) {
@@ -978,9 +1017,9 @@
//渲染第一首音频
this.$zaudio.setRender(0)
console.log(this.$zaudio)
if (this.isFirstWords != 0) {
if (this.isFirstWords != 0) {
setTimeout(() => {
this.stepPlay(Math.floor(this.isFirstWords/1000))
this.stepPlay(Math.floor(this.isFirstWords / 1000))
this.isFirstWords = 0
}, 2000)
}
@@ -996,7 +1035,84 @@
if (this.$zaudio.paused) {
this.$zaudio.operate()
}
}
},


// 对话加命中标签
dealTypes(type) {
if (type) {
// let tem = type.split(',')
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 []
}
},



borderColor(index) {
let obj = {
color: '',
borderRadius: '',
border: ''
}
switch (index) {
case 1:
obj.color = '#E6625B';
obj.borderRadius = '8rpx';
obj.border = '2rpx solid #E6625B';
break;
case 2:
obj.color = '#FF981E';
obj.borderRadius = '8rpx';
obj.border = '2rpx solid #FF981E';
break;
case 3:
obj.color = '#F6BD16';
obj.borderRadius = '8rpx';
obj.border = '2rpx solid #F6BD16';
break;
case 5:
obj.color = '#4980C8';
obj.borderRadius = '8rpx';
obj.border = '2rpx solid #4980C8';
break;
case 6:
obj.color = '#60CBEC';
obj.borderRadius = '8rpx';
obj.border = '2rpx solid #60CBEC';
break;
case 7:
obj.color = '##FF981E';
obj.borderRadius = '8rpx';
obj.border = '2rpx solid #FF981E';
break;
case 8:
obj.color = '#4F861E';
obj.borderRadius = '8rpx';
obj.border = '2rpx solid #4F861E';
break;
default:
obj.color = '#9F61C8';
obj.borderRadius = '8rpx';
obj.border = '2rpx solid #9F61C8';
break;
}
return obj
},

},
filters: {
// violatedStatus
@@ -1168,6 +1284,7 @@
color: #333333;
}
}

// 违禁正则标签
.newmark {
margin: 30rpx 0 10rpx 120rpx;
@@ -1562,4 +1679,189 @@
/deep/.u-tab-item {
border: 1rpx solid #dedede;
}



.dialog-block {
margin: 20rpx 0;
border-bottom: 1px solid #ccc;

// .fileName {
// max-width: 220rpx;
// text-align: center;
// margin: 10rpx auto;
// font-size: 28rpx;
// font-weight: 400;
// color: #666;
// height: 52rpx;
// line-height: 52rpx;
// background: #F8F8F8;
// border-radius: 4rpx;
// padding: 0 20rpx;
// }
}

.scroll-Y {
font-size: 36rpx;
color: #999999;
background: #FFFFFF;
margin-top: 30rpx;
flex: 1;
overflow-y: scroll;
width: 100%;
}

// 顾问默认在右边显示
.scroll-Y .text[data-guwen="0"] {
flex-direction: row-reverse;
text-align: right;

.contentInfo {
.info {
color: #666;
font-size: 22rpx;
padding: 0 28rpx;
height: 62rpx;
}

.contentMain {
display: flex;
flex-direction: row-reverse;
align-items: center;

.content {
margin-left: 0;
margin-right: 30rpx;
}

.play {
width: 50rpx;
height: 50rpx;
margin-right: 20rpx;
}
}
}



}

.scroll-Y .text[data-guwen="0"] {
.contentInfo {
.info {
.AudioUserName {
margin-left: 10rpx;
}

display: flex;
flex-direction: row-reverse;
}
}
}

.scroll-Y .text {
position: relative;
margin: 30rpx;
line-height: 80rpx;
display: flex;

.contentInfo {
.info {
.AudioUserName {
margin-right: 10rpx;
}
}
}
}

.scroll-Y .text .avatar {
text {
display: block;
width: 72rpx;
height: 72rpx;
line-height: 72rpx;
text-align: center;
background: #FFFFFF;
border-radius: 8rpx;
font-size: 30rpx;
font-family: PingFangSC-Medium, PingFang SC;
font-weight: 500;
box-sizing: border-box;
}

image {
width: 72rpx;
height: 72rpx;
}
}

.scroll-Y .text .contentInfo .info {
color: #666;
font-size: 22rpx;
padding: 0 28rpx;
height: 50rpx;
line-height: 50rpx;
}

.scroll-Y .text .contentInfo .contentMain {
display: flex;
align-items: center;
}

.scroll-Y .text .contentInfo .contentMain .content {
margin-left: 30rpx;
line-height: 42rpx;
text-align: left;
padding: 15rpx 20rpx;
border-radius: 8rpx;
max-width: 442rpx;
background: #F8F8F8;
font-size: 30rpx;
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #505050;

.tankuangcss {
position: absolute;
top: -140rpx;
left: 50%;
transform: translateX(-50%);
z-index: 1000;
min-width: 150rpx;
height: 140rpx;
display: flex;
background: rgba(48, 48, 48, 0.8);
border-radius: 15rpx;

.tankuangcss-items {
width: 150rpx;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;

image {
width: 36rpx;
height: 36rpx;
}

text {
margin: 12rpx 0 0 0;
font-size: 24rpx;
color: #fff;
}
}
}

.bottoms {
top: unset;
bottom: -140rpx;
}
}

.scroll-Y .text .contentInfo .contentMain .play {
width: 50rpx;
height: 50rpx;
margin-left: 20rpx;
}
</style>

+ 135
- 48
pages/center/records/index.vue View File

@@ -2,20 +2,23 @@
<view class="box">
<!-- 选择器 -->
<view class="boxtittab">
<view class="tabbox" :class="{activeColor: arriveFilter!=='接待时间'}" @click="timeshow = true">
{{ arriveFilter }}<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:counselorName!=='接待顾问'}" @click="selectshow=true">
{{ counselorName }}<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="soltishow = true">
{{ sortText }}<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
<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 = true">
<view class="tabbox" :class="{activeColor: chooseMore}" @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>条
@@ -40,13 +43,17 @@
</view>

<view class="right" v-if="item.recording!=0">
<view v-if="item.receptionStatusName" style="margin-right: 6rpx;color: red;">{{item.receptionStatusName.slice(0, 2) || ''}}</view>
<view v-if="item.receptionStatusName" style="margin-right: 6rpx;color: red;">
{{item.receptionStatusName.slice(0, 2) || ''}}
</view>
<text style="margin-right: 6rpx;" v-if="item.receptionStatusName"> |</text>
<view v-if="methodsisshow">
<text style="margin-right: 6rpx;color: red;" v-if="item.taboo==1">违禁接待</text>
<text style="margin-right: 6rpx;" v-if="item.taboo==1"> |</text>
</view>
<view v-if="item.validInvalidName" style="margin-right: 6rpx;">{{item.validInvalidName.slice(0, 2)||''}}</view>
<view v-if="item.validInvalidName" style="margin-right: 6rpx;">
{{item.validInvalidName.slice(0, 2)||''}}
</view>
<text style="margin-right: 6rpx;" v-if="item.validInvalidName"> |</text>
<view v-if="item.markAdvisor==0" class="">未标记</view>
<view v-if="item.markAdvisor==1" class="">已标记</view>
@@ -63,7 +70,7 @@
<view class="arriveNum">{{ item.phone | encryption }}</view>
</view>
<view class="right">
销讲业务:{{item.marketingBusiness || 'xxx'}}
<!-- 销讲业务:{{item.marketingBusiness || ''}} -->
</view>
</view>
<view class="content-newadd">
@@ -138,7 +145,7 @@
<!-- 需求挖掘率 -->
<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"
@@ -154,6 +161,25 @@
</block>
</view>
</view>
<!-- 需求挖掘率 -->
<view class="screen-record">
<view class="screen-record-text" @click="wajueArrows=!wajueArrows">
挖掘成功率
<image v-if="wajueArrows" 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="wajueArrows">
<block v-for="(item,index) in wajueLists" :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="jiedaiArrow=!jiedaiArrow">
@@ -263,21 +289,26 @@
<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, '接待时间')">
<view class="timeview" :style="{ color: activeTotal == 5 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(5, '接待时间')">
全部</view>
<view class="timeview" :style="{ color: activeTotal == 0 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(0, '今天')">
<view class="timeview" :style="{ color: activeTotal == 0 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(0, '今天')">
今天</view>
<view class="timeview" :style="{ color: activeTotal == 1 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(1, '昨天')">
<view class="timeview" :style="{ color: activeTotal == 1 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(1, '昨天')">
昨天</view>
<view class="timeview" :style="{ color: activeTotal == 2 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(2, '近7天')">
<view class="timeview" :style="{ color: activeTotal == 2 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(2, '近7天')">
近7天</view>
<view class="timeview" :style="{ color: activeTotal == 3 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(3, '近30天')">
<view class="timeview" :style="{ color: activeTotal == 3 ? '#2B6EFF' : '#333333' }"
@click="tabtimetap(3, '近30天')">
近30天</view>
<view class="timeview" :style="{ color: activeTotal == 4 ? '#2B6EFF' : '#333333' }" @click="tabtimetap(4)">
自定义</view>
</u-popup>
<u-select v-model="soltishow" :list="orderBylist" @confirm="selectCallback2"></u-select>
<!-- 加载组件 -->
<u-loadings v-model="LOADING"></u-loadings>
</view>
@@ -365,6 +396,23 @@
value: 4,
isShow: false,
}],
wajueLists: [{
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,
@@ -386,6 +434,7 @@
value: '',
screenShow: false,
wajueArrow: true,
wajueArrows: true,
jiedaiArrow: true,
markArrow: true,
visitArrow: true,
@@ -401,6 +450,7 @@
validInvalid: '', // 录音标识
visitRecord: [], // 到访次数
wajueVal: [], // 需求挖掘
wajueVals: [], // 需求挖掘
xiaojiangVal: [], //销讲执行率
jiedaiVal: [], // 接待时长
marketingBusiness: [], // 选中销讲业务id
@@ -419,9 +469,9 @@
soltishow: false,
methodsisshow: false,
userInfo: {},
counselorName: '接待顾问',//接待顾问
counselorName: '接待顾问', //接待顾问
arriveFilter: '接待时间', // 接待时间
sortText: '排序',
sortText: '排序',
visitList: [{
label: '首次到访',
value: 1,
@@ -439,9 +489,11 @@
value: 4,
isShow: false,
}, ],
isRefresh:false
isRefresh: false,
chooseMore: false,
}
},

onLoad(options) {
this.LOADING = true
this.isnorefresh = options.refresh;
@@ -450,13 +502,13 @@
this.screen.validInvalid = options.validInvalid
if (options.staTime) {
this.staTime = options.staTime;
this.endtime = options.endtime +' 23:59:59';
this.endtime = options.endtime + ' 23:59:59';
}
},
onShow() {
try {
this.$store.commit('stopAduio')
} catch(e) {
} catch (e) {
console.log(e)
}
this.userInfo = uni.getStorageSync('weapp_session_userInfo_data');
@@ -477,12 +529,12 @@
this.isnorefresh = '';
}
},
onPullDownRefresh(){
onPullDownRefresh() {
this.isRefresh = true;
this.nextPage = 1;
this.getMyCustom()
setTimeout(function () {
uni.stopPullDownRefresh();
setTimeout(function() {
uni.stopPullDownRefresh();
}, 1000);
},
onReachBottom() {
@@ -513,11 +565,11 @@
})
})
},
taptimetuisshow() {
this.timetushow = true;
},
//选择标签
selectCallback2(e) {
this.sortText = e[0].label
@@ -527,11 +579,11 @@
this.isRefresh = false;
this.getMyCustom();
},
//时间选择
tabtimetap(index, text) {
this.timeshow = false;
if(text) {
if (text) {
this.arriveFilter = text
}
if (index == 4) {
@@ -561,8 +613,8 @@
if (newmenulist.jdjl_ck != true) {
return
}
this.wordFinishFraction=item.wordFinishFraction
this.wordFraction=item.wordFraction
this.wordFinishFraction = item.wordFinishFraction
this.wordFraction = item.wordFraction
uni.showLoading({
title: '加载中',
mask: true
@@ -637,6 +689,7 @@
}
this.screen.jiedaiVal = []
this.screen.wajueVal = []
this.screen.wajueVals = []
this.screen.xiaojiangVal = []
this.screen.visitRecord = []
this.screen.marketingBusiness = []
@@ -652,6 +705,10 @@
this.wajueList.forEach(i => {
if (i.isShow) this.screen.wajueVal.push(i.value)
})
// 需求挖掘成功
this.wajueLists.forEach(i => {
if (i.isShow) this.screen.wajueVals.push(i.value)
})
// 销讲执行率
this.xiaojiangList.forEach(i => {
if (i.isShow) this.screen.xiaojiangVal.push(i.value)
@@ -672,13 +729,15 @@
dateType: dateType,
recDurationInterval: recDurationInterval,
orderBy: this.screen.orderBy == '' ? '' : this.screen.orderBy, //排序,
validInvalid:this.screen.validInvalid==2?null:this.screen.validInvalid,//录音标识
recording:this.screen.validInvalid==2?0:null,
visitRecords:this.screen.visitRecord.length? this.screen.visitRecord.join(","): '',//到访次数
validInvalid: this.screen.validInvalid == 2 ? null : this.screen.validInvalid, //录音标识
recording: this.screen.validInvalid == 2 ? 0 : null,
visitRecords: this.screen.visitRecord.length ? this.screen.visitRecord.join(",") : '', //到访次数
wordFractions: this.screen.wajueVal.length ? this.screen.wajueVal.join(',') : '', //需求挖掘
wordFinishFractions: this.screen.wajueVals.length ? this.screen.wajueVals.join(',') : '', //需求挖掘
duractionNums: this.screen.jiedaiVal.length ? this.screen.jiedaiVal.join(',') : '', //接待时长
fractions: this.screen.xiaojiangVal.length ? this.screen.xiaojiangVal.join(',') : '', //销讲执行
marketingBusiness: this.screen.marketingBusiness.length ? this.screen.marketingBusiness.join(',') : '', //销讲执行
marketingBusiness: this.screen.marketingBusiness.length ? this.screen.marketingBusiness.join(
',') : '', //销讲执行
}
};
if (this.screen.agentId) {
@@ -688,14 +747,14 @@
this.LOADING = false
// console.log(data)
let list = data.records || [];
if(this.isRefresh){
if (this.isRefresh) {
this.recordList = list;
}else{
this.recordList = [].concat(this.recordList,list)
} else {
this.recordList = [].concat(this.recordList, list)
}
this.totalRecord = data.pages;
this.totalRecords = data.total;
if(this.staTime && this.endtime) {
if (this.staTime && this.endtime) {
this.arriveFilter = `${this.staTime}-${this.endtime}`
}
}).catch(e => {
@@ -704,7 +763,9 @@
},
//获取顾问列表
getFreeList() {
this.$u.post("/cusLvStatistics/selectAllAccountIdByHouseId", {houseId: this.buildingID}).then(res => {
this.$u.post("/cusLvStatistics/selectAllAccountIdByHouseId", {
houseId: this.buildingID
}).then(res => {
this.freeList = res;
this.freeList.forEach(item => {
item.label = item.name;
@@ -718,10 +779,10 @@
},
//select接待顾问
actionSelectCallback(e) {
if(e[0].label=='全部'){
if (e[0].label == '全部') {
this.counselorName = '接待顾问'
this.screen.agentId = ''
}else{
} else {
this.screen.agentId = e[0].value;
this.counselorName = e[0].label
}
@@ -737,6 +798,7 @@
this.screen.orderBy = '';
this.screen.jiedaiVal = []
this.screen.wajueVal = []
this.screen.wajueVals = []
this.screen.xiaojiangVal = []
this.screen.visitRecord = []
this.screen.marketingBusiness = []
@@ -766,6 +828,25 @@
this.isRefresh = false;
this.getMyCustom();
},


chooseMores() {
let change1 = this.templateList.some(item => item.isShow == true)
let change2 = this.xiaojiangList.some(item => item.isShow == true)
let change3 = this.wajueList.some(item => item.isShow == true)
let change8 = this.wajueLists.some(item => item.isShow == true)
let change4 = this.jiedaiList.some(item => item.isShow == true)
let change5 = this.screen.validInvalid != null && this.screen.validInvalid != ''
let change6 = this.screen.markAdvisor != null && this.screen.markAdvisor != ''
let change7 = this.visitList.some(item => item.isShow == true)
console.log(change1, change2, change3, change4, change5, change6, change7)
if (change1 || change2 || change3 || change4 || change5 || change6 || change7 || change8) {
return true
} else {
return false
}
},

choice(item) {
item.isShow = !item.isShow;
},
@@ -786,6 +867,7 @@
}
},
screensure() {
this.chooseMore = this.chooseMores()
this.screenShow = false;
this.recordList = [];
this.nextPage = 1;
@@ -852,7 +934,8 @@
-webkit-box-orient: vertical;
/* 设置或检索伸缩盒对象的子元素的排列方式 */
}
.activeColor{

.activeColor {
font-weight: bold;
color: #2671E2;
}
@@ -906,7 +989,7 @@
}
}
}
.count {
width: 100%;
height: 82rpx;
@@ -919,7 +1002,7 @@
font-family: PingFangSC-Regular, PingFang SC;
font-weight: 400;
color: #333333;
text {
color: #E7483C;
}
@@ -931,9 +1014,11 @@
box-sizing: border-box;
overflow: hidden;
margin-bottom: 20rpx;
&:last-child{

&:last-child {
margin-bottom: 0
}

.content-first {
padding: 0 30rpx;
height: 92rpx;
@@ -948,6 +1033,7 @@
display: flex;
align-items: center;
overflow: hidden;

.adviser {
margin-right: 10rpx;
padding: 5rpx 11rpx;
@@ -1055,7 +1141,8 @@
align-items: center;
}
}
.content-newadd{

.content-newadd {
padding: 0 30rpx 34rpx;
display: flex;
align-items: center;


+ 85
- 8
pages/index/consumer/index.vue View File

@@ -33,7 +33,7 @@
{{ agentIdtext }}
<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
<view class="tabbox" @click="huaxiangShow = true">
<view class="tabbox" :class="{activeColor: tagSign}" @click="huaxiangShow = true">
画像标签<u-icon name="arrow-down" size="24" style="padding-left: 12rpx;"></u-icon>
</view>
</view>
@@ -212,7 +212,7 @@
<!-- 需求挖掘率 -->
<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"
@@ -228,6 +228,26 @@
</block>
</view>
</view>
<!-- 需求挖掘率 -->
<view class="screen-record">
<view class="screen-record-text" @click="wajueArrows=!wajueArrows">
挖掘成功率
<image v-if="wajueArrows" 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="wajueArrows">
<block v-for="(item,index) in wajueLists" :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="xiaojiangArrow = !xiaojiangArrow">
@@ -358,6 +378,7 @@
phaseList: [], // 客户阶段
huaxiangShow: false,
wajueArrow: true,
wajueArrows: true,
jieduanArrow: true,
sourceArrow: true,
levelArrow: true,
@@ -447,6 +468,23 @@
isShow: false,
},
],
wajueLists: [{
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,
@@ -547,15 +585,17 @@
value: 4,
isShow: false,
}, ],
isRefresh: false
isRefresh: false,
showFilterOption: false, // 筛选
tagSign: false, // 画像标签active
}
},

computed: {
showFilterOption() {
return this.sortFilter !== '排序' || this.arriveFilter !== '接待时间' || this.agentIdtext !== '接待顾问'
}
},
// computed: {
// showFilterOption() {
// return this.sortFilter !== '排序' || this.arriveFilter !== '接待时间' || this.agentIdtext !== '接待顾问'
// }
// },

onLoad(options) {
this.LOADING = true
@@ -782,6 +822,10 @@
this.wajueList.forEach(i => {
if (i.isShow) this.screen.wajueVal.push(i.value)
})
// 需求挖掘成功
this.wajueLists.forEach(i => {
if (i.isShow) this.screen.wajueVals.push(i.value)
})
// 销讲执行率
this.xiaojiangList.forEach(i => {
if (i.isShow) this.screen.xiaojiangVal.push(i.value)
@@ -985,6 +1029,9 @@
this.wajueList.map((i) => {
i.isShow = false;
});
this.wajueLists.forEach(i => {
i.isShow = false
})
this.phaseList.map((i) => {
i.isShow = false;
});
@@ -1018,8 +1065,38 @@
})
}
},
chooseMores() {
let change1 = this.templateList.some(item => item.isShow == true)
let change2 = this.jiedaiList.some(item => item.isShow == true)
let change3 = this.levelList.some(item => item.isShow == true)
let change4 = this.sourceList.some(item => item.isShow == true)
let change5 = this.phaseList.some(item => item.isShow == true)
let change6 = this.wajueList.some(item => item.isShow == true)
let change9 = this.wajueLists.some(item => item.isShow == true)
let change7 = this.xiaojiangList.some(item => item.isShow == true)
let change8 = this.visitList.some(item => item.isShow == true)
if (change1 || change2 || change3 || change4 || change5 || change6 || change7 || change8 || change9) {
return true
} else {
return false
}
},
chooseMore() {
let a = false
this.huaxiangList.forEach(item => {
if (item.children.some(so => so.isShow == true)) {
a = true
}
})
return a
},
//筛选确认
screensure() {
this.showFilterOption = this.chooseMores()
this.tagSign = this.chooseMore()
this.nextPage = 1;
this.recordList = [];
this.keywordsIds = []


+ 9
- 27
pages/index/index.vue View File

@@ -105,9 +105,9 @@
</view>
<view class="realtext">平均执行率</view>
</view>
<view class="real">
<view class="realnum">{{realtimeobj.wordFraction|| 0}}</view>
<view class="realtext">平均挖掘率</view>
<view class="real" @click="tapjumpreception('6')">
<view class="realnum">{{realtimeobj.wordFraction|| 0}}%</view>
<view class="realtext">平均挖掘执行率</view>
</view>
<view class="real" @click="tapjumpreception('11')">
<view class="realnum">{{realtimeobj.receptionCount || 0}}</view>
@@ -161,9 +161,9 @@
</view>
<view class="realtext">平均执行率</view>
</view>
<view class="real">
<view class="realnum">{{Thisweekobj.wordFraction || 0}}</view>
<view class="realtext">平均挖掘率</view>
<view class="real" @click="tapjumpreception('7')">
<view class="realnum">{{Thisweekobj.wordFraction || 0}}%</view>
<view class="realtext">平均挖掘执行率</view>
</view>
<view class="real" @click="tapjumpreception('33')">
<view class="realnum">{{Thisweekobj.receptionCount || 0}}</view>
@@ -254,7 +254,7 @@
</view>
<view class="commonly-text">员工分析</view>
</view>
<view class="commonly" @click="toRequireAnalysis()">
<view class="commonly" @click="toRequireAnalysis()" v-if="permissions.xqwjfx">
<view class="commonly-img">
<image class="commonly-img1"
src="https://static.quhouse.com/c2d3801540cf4880a68cce0e04eb59b0.png" mode=""></image>
@@ -641,16 +641,7 @@
if (data.data.data == null) {
return
} else {
this.Thisweekobj = {
sumCustomer: data.data.data.sumCustomer,
receivingCustomer: data.data.data.receivingCustomer,
activeCustomer: data.data.data.activeCustomer,
prohibitedCustomer: data.data.data.prohibitedCustomer,
avgDuration: data.data.data.avgDuration || 0,
tagCustomer: data.data.data.tagCustomer,
fraction: data.data.data.fraction,
receptionCount: data.data.data.receptionCount
}
this.Thisweekobj = data.data.data
}
}
})
@@ -672,16 +663,7 @@
if (data.data.data == null) {
return
} else {
this.realtimeobj = {
sumCustomer: data.data.data.sumCustomer,
receivingCustomer: data.data.data.receivingCustomer,
activeCustomer: data.data.data.activeCustomer,
prohibitedCustomer: data.data.data.prohibitedCustomer,
avgDuration: data.data.data.avgDuration || 0,
tagCustomer: data.data.data.tagCustomer,
fraction: data.data.data.fraction,
receptionCount: data.data.data.receptionCount
}
this.realtimeobj = data.data.data
}
},
fail: () => {


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

@@ -1,84 +1,45 @@
<template>
<view class="translation">
<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="
<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>
">{{ dealword(subitem)[1] }}</view>
</view>
</view>
</view>
</view>
</view>
</template>

<script>
@@ -93,6 +54,7 @@
skpl: '',
disabled: false,
tipsFncName: '', // 通知其他页面的方法名称
types: 0,
};
},
onLoad: function(options) {
@@ -100,6 +62,7 @@
this.keyword = options.keyword;
this.skpl = options.skpl;
if (options.UpDateEvent) this.tipsFncName = options.UpDateEvent
if (options.types) this.types = options.types
if (this.skpl == 2) {
this.searchinfo()
this.disabled = true;
@@ -109,25 +72,25 @@
},
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 [];
}
},
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);
@@ -143,7 +106,10 @@
} else {
let parames = {
keyword: this.keyword,
customerId: this.customerId
customerId: this.customerId,
}
if (this.types == 1) {
parames.type = 1
}
this.$u.post("/corpus/keyWordsMatching", parames).then(res => {
res.forEach(item => {
@@ -213,63 +179,72 @@
}
</script>
<style lang="scss" scoped>
.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;
}
}
}
.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>

+ 112
- 36
pages/mine/ScoringPlaylist.vue View File

@@ -1,16 +1,31 @@
<template>
<view class="translation">
<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 class="cont-box" v-for="(item, index) in listarr" :key="index"
@click="toaidoinfo(item.Content, item.corpusId, item.index)">
<view class="top-cont">
<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.onebest"
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>
<!-- 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 v-html="item.Content.onebest" 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>
</template>
@@ -21,23 +36,44 @@
export default {
data() {
return {
customerId:'',
listarr:[],
id:'',
type:'',
customerId: '',
listarr: [],
id: '',
type: '',
tipsFncName: '', // 提醒页面变更的值
from: '', // 标记需要刷新的来源
};
},
onLoad(options) {
this.customerId = options.customerId;
this.id=options.id;
this.type=options.type;
this.id = options.id;
this.type = options.type;
if (options.UpDateEvent) this.tipsFncName = options.UpDateEvent
if (options.from) this.from = options.from
this.searchinfo()
},
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);
@@ -48,35 +84,35 @@
return min + ":" + second;
},
//搜索
searchinfo(){
let parames={
marketingId:this.id,
customerId:this.customerId,
type:this.type
searchinfo() {
let parames = {
marketingId: this.id,
customerId: this.customerId,
type: this.type
}
this.$u.post("/corpus/pinWordMatching", parames).then(res => {
res.forEach(item=>{
item.Content=JSON.parse(item.transferContent)
res.forEach(item => {
item.Content = JSON.parse(item.transferContent)
})
res.forEach(cet=>{
cet.Content.time=this.formatTime(cet.Content.bg/1000)
res.forEach(cet => {
cet.Content.time = this.formatTime(cet.Content.bg / 1000)
})
this.listarr=res;
this.listarr = res;
})
},
//跳转
toaidoinfo(item,id,index){
item.customerId=this.customerId;
item.id=id;
item.index=index;
toaidoinfo(item, id, index) {
item.customerId = this.customerId;
item.id = id;
item.index = index;
this.infostust(item)
},
//只有一条的时候
infostust(item){
infostust(item) {
console.log("zobudao")
let d = JSON.parse(JSON.stringify([item]))
d[0].onebest="";
console.log(d)
d[0].onebest = "";
console.log(d)
const parames = {
pageNum: 1,
pageSize: 100,
@@ -87,7 +123,7 @@
this.$u.post("/corpus/findByPage", parames).then(res => {
uni.setStorageSync("entrance", 2); //写入缓存
uni.setStorageSync("searchobj", d[0]); //写入缓存
if(res[0].merge==0){
if (res[0].merge == 0) {
let newobj = res[0];
if (this.tipsFncName) {
uni.$emit(this.tipsFncName, d[0])
@@ -100,11 +136,11 @@
url: `/pages/mine/details2?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(d[0])}&stateisshow=${'2'}&refresh=true`
})
}
uni.navigateTo({
url: `/pages/mine/details2?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(d[0])}&stateisshow=${'2'}`
})
}else{
} else {
let newobj = res[0];
uni.navigateTo({
url: `/pages/mine/details?customerId=${newobj.customerId}&status=${newobj.status}&itemobj=${JSON.stringify(d[0])}&stateisshow=${'2'}`
@@ -112,10 +148,50 @@
}
})
},
},
}
</script>
<style lang="scss" scoped>
.translation {
width: 100%;
padding: 0 30rpx;

.cont-box {
width: 100%;
margin-bottom: 20rpx;

.top-cont {
display: flex;
border-bottom: 1px solid #e0e0e0;
}

.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>

+ 1
- 0
pages/mine/calibration.vue View File

@@ -79,6 +79,7 @@
let param = {
keywordIds:'',
id: this.customerId,
projectId: uni.getStorageSync("buildingID").id
}
let str = []
this.allList.map(item => {


+ 9
- 7
pages/mine/details2.vue View File

@@ -295,7 +295,7 @@
</view>
</view>
<view class="pingfenbox">
<view :class="{ activecllasscet: zhixingcenterindex == 0 }" @click="recordclick(0)">销讲总执行率{{totalRate}}%
<view style="overflow: hidden;" :class="{ activecllasscet: zhixingcenterindex == 0 }" @click="recordclick(0)">销讲总执行率{{totalRate}}%
</view>
<view v-if="permissions.commonly6" :class="{ activecllasscet: zhixingcenterindex == 1 }"
@click="recordclick(1)">禁忌执行</view>
@@ -367,7 +367,7 @@
</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 style="flex: 1;color: #333333;font-weight: 600;text-align:center;text-indent:28rpx">挖掘成功
</view>
<view style="flex: 0 0 30rpx"></view>
</view>
@@ -377,10 +377,10 @@
<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">已匹配({{
v-if="item.keywordsList&&item.keywordsList.length">已完成({{
item.keywordsList.length
}})</view>
<view class="item" v-else style="flex:1;text-align:center;">未匹配</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"
@@ -422,8 +422,8 @@
<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 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"
@@ -1259,7 +1259,7 @@
this.stateisshow = 1;
uni.navigateTo({
url: '/pages/learning/Keywordsearch?customerId=' + this.customerId + "&status=" + this.status +
"&skpl=" + "1" + '&UpDateEvent=DETAILS2INIT'
"&skpl=" + "1" + '&UpDateEvent=DETAILS2INIT&types=1'
})
},
//标记选择角色
@@ -2175,6 +2175,8 @@
}

.pingfenbox view {
width: 100%;
height: 100%;
text-align: center;
font-size: 28rpx;
padding: 0 18rpx;


||||||
x
 
000:0
Loading…
Cancel
Save