|
|
@@ -70,20 +70,26 @@ |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<image v-if="!refined" @click="clickbofang(dialog.backindex,item)" class="play" |
|
|
|
|
|
|
|
<image v-if="!refined" @click="clickbofang(dialog.backindex,item)" class="play" |
|
|
|
src="../../static/images/recordingManagement/play.png"></image> |
|
|
|
</view> |
|
|
|
<!-- ----------对话下方新加话术标签标识------------ --> |
|
|
|
<!-- 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 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> |
|
|
|
</view> |
|
|
@@ -114,17 +120,24 @@ |
|
|
|
<image @click="Receivedetailsabouttab('Receivedetailsabout')" src="../../static/images/allimg.png" |
|
|
|
mode=""></image> |
|
|
|
<view @click="Receivedetailsabouttab('Receivedetailsabout')">更多</view> |
|
|
|
<view class="allimg" v-if="Thetapeidisshow"> |
|
|
|
|
|
|
|
<view class="allimg" :style="[getAllImgStyle]" v-if="Thetapeidisshow"> |
|
|
|
<template v-if="eqLog!=-1"> |
|
|
|
<view @click="eqLogClick()" style="line-height: 70rpx;margin-top: 10rpx;">设备日志 |
|
|
|
<view class="allimg-item" @click="eqLogClick()" style="line-height: 70rpx;">设备日志 |
|
|
|
</view> |
|
|
|
</template> |
|
|
|
<view @click="Receivetap()" style="line-height: 70rpx;margin-top: 10rpx;">接待信息</view> |
|
|
|
<view @click="Receivetap()" class="allimg-item" style="line-height: 70rpx;"> |
|
|
|
接待信息</view> |
|
|
|
<template v-if="Menulistisshow"> |
|
|
|
<view @click="alllogo()" style="line-height:70rpx;"> |
|
|
|
<view class="allimg-item" @click="alllogo()" style="line-height:70rpx;"> |
|
|
|
{{userlistobj.validInvalidName}} |
|
|
|
</view> |
|
|
|
</template> |
|
|
|
<template v-if="userlistobj.visitRecord == 1 && checkAuthority('修改到访次数')"> |
|
|
|
<view @click="showVisit = true;Thetapeidisshow=false" class="allimg-item" style="line-height:70rpx;"> |
|
|
|
到访次数 |
|
|
|
</view> |
|
|
|
</template> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
@@ -159,16 +172,16 @@ |
|
|
|
<view class="tian-view"> |
|
|
|
<view class="tian-view-t2" style="margin-left: 20rpx;"> |
|
|
|
常错词:<view class="word1"> |
|
|
|
<u-input v-if="isshow2" :auto-height="true" type="textarea" v-model="thewrongword" :border="false" |
|
|
|
:custom-style="customStyle" placeholder="请输入" /> |
|
|
|
<u-input v-if="isshow2" :auto-height="true" type="textarea" v-model="thewrongword" |
|
|
|
:border="false" :custom-style="customStyle" placeholder="请输入" /> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="tian-view"> |
|
|
|
<view class="tian-view-t2" style="margin-left: 20rpx;"> |
|
|
|
正确词:<view class="word1"> |
|
|
|
<u-input v-if="isshow2" :auto-height="true" type="textarea" v-model="reswrongword" :border="false" |
|
|
|
:custom-style="customStyle" placeholder="请输入" /> |
|
|
|
<u-input v-if="isshow2" :auto-height="true" type="textarea" v-model="reswrongword" |
|
|
|
:border="false" :custom-style="customStyle" placeholder="请输入" /> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
@@ -326,7 +339,8 @@ |
|
|
|
<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="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">执行率 |
|
|
@@ -340,10 +354,11 @@ |
|
|
|
<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;" v-if="item.keywordsList&&item.keywordsList.length">已匹配({{ |
|
|
|
<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 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" |
|
|
@@ -351,30 +366,30 @@ |
|
|
|
<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==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"> |
|
|
@@ -395,7 +410,8 @@ |
|
|
|
</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" 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)" |
|
|
@@ -450,16 +466,13 @@ |
|
|
|
<view class="jianbox-cen"> |
|
|
|
<view class="jianboxtext">{{item.name}}</view> |
|
|
|
<view class="jianboxjian" @click="Acquishow(index)"> |
|
|
|
<image v-if="item.isshow" class="jiantop1" |
|
|
|
src="../../static/images/jianbutton.png" mode=""></image> |
|
|
|
<image v-else class="jiantop" src="../../static/images/jiantop.png" |
|
|
|
<image v-if="item.isshow" class="jiantop1" src="../../static/images/jianbutton.png" |
|
|
|
mode=""></image> |
|
|
|
<image v-else class="jiantop" src="../../static/images/jiantop.png" mode=""></image> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view style="width: 690rpx;margin: 0 auto;display: flex;flex-wrap: wrap;" |
|
|
|
v-if="item.isshow"> |
|
|
|
<view class="sdfsaf" @click="argece(chend)" |
|
|
|
v-for="(chend,i) in item.children" :key='i'> |
|
|
|
<view style="width: 690rpx;margin: 0 auto;display: flex;flex-wrap: wrap;" v-if="item.isshow"> |
|
|
|
<view class="sdfsaf" @click="argece(chend)" v-for="(chend,i) in item.children" :key='i'> |
|
|
|
<view class="jiangshang sdfsaf">{{chend.text}}</view> |
|
|
|
</view> |
|
|
|
</view> |
|
|
@@ -475,10 +488,9 @@ |
|
|
|
<view class="jianbox-cen"> |
|
|
|
<view class="jianboxtext">{{item.name}}</view> |
|
|
|
<view class="jianboxjian" @click="Acquishow2(index)"> |
|
|
|
<image v-if="item.isshow" class="jiantop1" |
|
|
|
src="../../static/images/jianbutton.png" mode=""></image> |
|
|
|
<image v-else class="jiantop" src="../../static/images/jiantop.png" |
|
|
|
<image v-if="item.isshow" class="jiantop1" src="../../static/images/jianbutton.png" |
|
|
|
mode=""></image> |
|
|
|
<image v-else class="jiantop" src="../../static/images/jiantop.png" mode=""></image> |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="bioqianwayl" v-if="item.isshow"> |
|
|
@@ -544,6 +556,38 @@ |
|
|
|
<!-- 加载组件 --> |
|
|
|
<loading v-model="LOADING"></loading> |
|
|
|
|
|
|
|
<u-popup v-model="showVisit" mode="center" border-radius="16" width="600rpx"> |
|
|
|
<view class="show-visit-content"> |
|
|
|
<view class="visit-title"> |
|
|
|
修改次数 |
|
|
|
</view> |
|
|
|
|
|
|
|
<view class="visit-box"> |
|
|
|
<view class="v-t">本次属于客户第几次到访</view> |
|
|
|
<view class="visit-step"> |
|
|
|
<view class="mitems" @tap="reduce"> |
|
|
|
- |
|
|
|
</view> |
|
|
|
|
|
|
|
<input class="input" type="number" disabled v-model="visitParams.visitRecordNum"> |
|
|
|
|
|
|
|
<view class="mitems" @tap="add"> |
|
|
|
+ |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
<view class="tips"> |
|
|
|
注意:客户没有第一次到访记录,该客户所有的接待销讲执行率,不参与统计 |
|
|
|
</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
<view class="visit-btns"> |
|
|
|
<view class="btn-item" @tap="cancelVisitRecord">取消</view> |
|
|
|
<view class="btn-item" @tap="changeVisitRecord" style="border-left: none;">确认</view> |
|
|
|
</view> |
|
|
|
|
|
|
|
</view> |
|
|
|
</u-popup> |
|
|
|
|
|
|
|
</view> |
|
|
|
|
|
|
|
</template> |
|
|
@@ -668,7 +712,14 @@ |
|
|
|
isBand: false, // 阻止二次提交 |
|
|
|
refined: false, |
|
|
|
eqLog: 0, |
|
|
|
percent: 0 |
|
|
|
percent: 0, |
|
|
|
|
|
|
|
showVisit: false, // 操作框 |
|
|
|
visitParams: { |
|
|
|
id: '', |
|
|
|
projectId: uni.getStorageSync('buildingID').id, // 当前项目id |
|
|
|
visitRecordNum: 1, // 默认到访次数 |
|
|
|
}, |
|
|
|
}; |
|
|
|
}, |
|
|
|
computed: { |
|
|
@@ -677,6 +728,27 @@ |
|
|
|
return this.getTime(e); |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
// 获取距离 |
|
|
|
getAllImgStyle() { |
|
|
|
let position = 70 |
|
|
|
if (this.Menulistisshow) { |
|
|
|
position += 70 |
|
|
|
} |
|
|
|
|
|
|
|
if (this.eqLog != -1) { |
|
|
|
position += 70 |
|
|
|
} |
|
|
|
|
|
|
|
if (this.userlistobj.visitRecord == 1 && this.checkAuthority('修改到访次数')) { |
|
|
|
position += 70 |
|
|
|
} |
|
|
|
|
|
|
|
return { |
|
|
|
height: `${position}rpx`, |
|
|
|
top: `-${position+20}rpx` |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
onLoad(options) { |
|
|
|
this.LOADING = true |
|
|
@@ -684,6 +756,7 @@ |
|
|
|
this.eqLog = menu.findIndex(item => item.name == '设备日志'); |
|
|
|
this.status = options.status; |
|
|
|
this.customerId = options.customerId; |
|
|
|
this.visitParams.id = options.customerId; |
|
|
|
this.KeyWordsfraction = options.wordFraction == 'undefined' ? 0 : options.wordFraction; |
|
|
|
this.itemobj = uni.getStorageSync('searchobj'); |
|
|
|
this.stateisshow = options.stateisshow; |
|
|
@@ -758,43 +831,77 @@ |
|
|
|
}, |
|
|
|
|
|
|
|
methods: { |
|
|
|
// 对话加命中标签 |
|
|
|
dealTypes(type){ |
|
|
|
if(type){ |
|
|
|
// 加减 |
|
|
|
reduce() { |
|
|
|
if (this.visitParams.visitRecordNum == 1) { |
|
|
|
uni.showToast({ |
|
|
|
title: '不能再减了~', |
|
|
|
duration: 2000 |
|
|
|
}); |
|
|
|
return |
|
|
|
} |
|
|
|
this.visitParams.visitRecordNum-- |
|
|
|
}, |
|
|
|
|
|
|
|
add() { |
|
|
|
this.visitParams.visitRecordNum++ |
|
|
|
}, |
|
|
|
|
|
|
|
// 取消 |
|
|
|
cancelVisitRecord() { |
|
|
|
this.visitParams.visitRecordNum = 1 |
|
|
|
this.showVisit = false |
|
|
|
}, |
|
|
|
|
|
|
|
// 确定 |
|
|
|
changeVisitRecord() { |
|
|
|
this.$u.post('/customer/updateVisitRecord', this.visitParams).then(res => { |
|
|
|
this.cancelVisitRecord() |
|
|
|
}).catch(res => { |
|
|
|
uni.showToast({ |
|
|
|
title: '操作失败,请稍候重试!', |
|
|
|
duration: 2000 |
|
|
|
}); |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
// 对话加命中标签 |
|
|
|
dealTypes(type) { |
|
|
|
if (type) { |
|
|
|
let tem = type.substring(1).split(',') |
|
|
|
return tem |
|
|
|
}else{ |
|
|
|
} 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 [] |
|
|
|
} |
|
|
|
}, |
|
|
|
//挖掘率话术客户标签展示 |
|
|
|
getKeywordsList(list) { |
|
|
|
let keywords = []; |
|
|
|
if (list && list.length) { |
|
|
|
keywords = list.map((item) => item.name); |
|
|
|
} else { |
|
|
|
return "--"; |
|
|
|
} |
|
|
|
return keywords.join(","); |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 对话加命中标签 |
|
|
|
dealword(type) { |
|
|
|
if (type) { |
|
|
|
let a = type.split('-') |
|
|
|
let rest = type.substring(2).split('-').join(',') |
|
|
|
let arr = [a[0], rest] |
|
|
|
return arr |
|
|
|
} else { |
|
|
|
return [] |
|
|
|
} |
|
|
|
}, |
|
|
|
//挖掘率话术客户标签展示 |
|
|
|
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) |
|
|
|
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) |
|
|
|
this.percent = (countArr.length / this.KeyWordsfractionList.length) * 100 |
|
|
|
// console.log(this.percent.toFixed(0)) |
|
|
|
this.percent = this.percent.toFixed(0) |
|
|
|
|
|
|
|
}, |
|
|
|
clickWajue(item) { |
|
|
@@ -884,7 +991,7 @@ |
|
|
|
roletab() { |
|
|
|
// let itso=this.dialogList[this.csdFileindex].message[this.roletiaoshu]; |
|
|
|
let itso = Object.assign({}, this.dialogList[this.csdFileindex].message[this.roletiaoshu]); |
|
|
|
|
|
|
|
|
|
|
|
itso.onebest = itso.onebest.replace(/<.*?>/ig, ""); |
|
|
|
this.$u.post("/corpus/updateRole", { |
|
|
|
corpusId: this.luyinList[this.csdFileindex].id, |
|
|
@@ -959,6 +1066,7 @@ |
|
|
|
}) |
|
|
|
} |
|
|
|
}, |
|
|
|
|
|
|
|
//获取用户信息 |
|
|
|
gituserlist() { |
|
|
|
this.$u.get("/matchKeywords/personalReceptionRecord", { |
|
|
@@ -969,8 +1077,6 @@ |
|
|
|
}) |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Acquishow2(i) { |
|
|
|
this.Acquirecustomerintentlist2[i].isshow = !this.Acquirecustomerintentlist2[i].isshow; |
|
|
|
}, |
|
|
@@ -1085,38 +1191,44 @@ |
|
|
|
}, |
|
|
|
//标记 |
|
|
|
alllogo() { |
|
|
|
var that = this; |
|
|
|
let msg = ''; |
|
|
|
if (this.userlistobj.validInvalid != 0) { |
|
|
|
msg = '是否标记为"有效录音"?'; |
|
|
|
if (this.userlistobj.validInvalid == 0 || this.userlistobj.validInvalid == 1) { |
|
|
|
msg = '是否标记为"有效录音"?'; |
|
|
|
} else { |
|
|
|
msg = '是否撤销"无效(待审核)"?'; |
|
|
|
} |
|
|
|
uni.showModal({ |
|
|
|
title: '提示', |
|
|
|
content: msg, |
|
|
|
success: function(res) { |
|
|
|
that.isBand = true |
|
|
|
if (that.noClick) { |
|
|
|
that.noClick = false; |
|
|
|
success: (res) => { |
|
|
|
this.isBand = true |
|
|
|
if (this.noClick) { |
|
|
|
this.noClick = false; |
|
|
|
if (res.confirm) { |
|
|
|
let parames = { |
|
|
|
id: that.customerId, |
|
|
|
id: this.customerId, |
|
|
|
validInvalid: '', |
|
|
|
invalidReason: 0 |
|
|
|
invalidReason: 0, |
|
|
|
} |
|
|
|
if (that.userlistobj.validInvalid == 0) { |
|
|
|
if (this.userlistobj.validInvalid == 0) { |
|
|
|
parames.validInvalid = 1; |
|
|
|
} else { |
|
|
|
} else if (this.userlistobj.validInvalid == 1) { |
|
|
|
parames.validInvalid = 0; |
|
|
|
} else if (this.userlistobj.validInvalid == 2) { |
|
|
|
parames.auditReception = 1 |
|
|
|
parames.validInvalid = 1; |
|
|
|
} |
|
|
|
that.$u.post("/customer/updateValidInvalid", parames).then(res => { |
|
|
|
this.$u.post("/customer/updateValidInvalid", parames).then(res => { |
|
|
|
console.log(res) |
|
|
|
that.isBand = false |
|
|
|
that.Thetapeidisshow = false; |
|
|
|
this.isBand = false |
|
|
|
this.Thetapeidisshow = false; |
|
|
|
}).catch(e => { |
|
|
|
that.isBand = false |
|
|
|
this.isBand = false |
|
|
|
}) |
|
|
|
} |
|
|
|
setTimeout(() => { |
|
|
|
that.noClick = true; |
|
|
|
this.noClick = true; |
|
|
|
}, 2000) |
|
|
|
} else { |
|
|
|
// 这里是重复点击的判断 |
|
|
@@ -1180,7 +1292,6 @@ |
|
|
|
} else { |
|
|
|
this.Acquirecustomerintent2() |
|
|
|
} |
|
|
|
|
|
|
|
this.intention = true; |
|
|
|
} |
|
|
|
}, |
|
|
@@ -1386,15 +1497,16 @@ |
|
|
|
} |
|
|
|
this.$forceUpdate() |
|
|
|
}, |
|
|
|
formatSecond(seconds){ |
|
|
|
var result = typeof seconds === "string" ? parseFloat(seconds) : seconds; |
|
|
|
if (isNaN(result)) return ""; |
|
|
|
let h = Math.floor(result / 3600) < 10 ? "0" + Math.floor(result / 3600) : Math.floor(result / 3600); |
|
|
|
let m = Math.floor((result / 60) % 60) < 10 ? "0" + Math.floor((result / 60) % 60) : Math.floor((result / 60) % 60); |
|
|
|
let s = Math.floor(result % 60) < 10 ? "0" + Math.floor(result % 60) : Math.floor(result % 60); |
|
|
|
|
|
|
|
return `${h}:${m}:${s}`; |
|
|
|
}, |
|
|
|
formatSecond(seconds) { |
|
|
|
var result = typeof seconds === "string" ? parseFloat(seconds) : seconds; |
|
|
|
if (isNaN(result)) return ""; |
|
|
|
let h = Math.floor(result / 3600) < 10 ? "0" + Math.floor(result / 3600) : Math.floor(result / 3600); |
|
|
|
let m = Math.floor((result / 60) % 60) < 10 ? "0" + Math.floor((result / 60) % 60) : Math.floor((result / |
|
|
|
60) % 60); |
|
|
|
let s = Math.floor(result % 60) < 10 ? "0" + Math.floor(result % 60) : Math.floor(result % 60); |
|
|
|
|
|
|
|
return `${h}:${m}:${s}`; |
|
|
|
}, |
|
|
|
|
|
|
|
|
|
|
|
init(info) { |
|
|
@@ -1477,16 +1589,14 @@ |
|
|
|
}, |
|
|
|
// 取消全部加精 |
|
|
|
notappick() { |
|
|
|
var that = this; |
|
|
|
uni.showModal({ |
|
|
|
title: '提示', |
|
|
|
content: '确认取消加精?', |
|
|
|
success: function(res) { |
|
|
|
success: (res) => { |
|
|
|
if (res.confirm) { |
|
|
|
console.log('用户点击确定'); |
|
|
|
uni.request({ |
|
|
|
url: config.service.delATD + "?carId=" + that.customerId + '&itemId=' + |
|
|
|
that.buildingID, |
|
|
|
url: config.service.delATD + "?carId=" + this.customerId + '&itemId=' + |
|
|
|
this.buildingID, |
|
|
|
method: "GET", |
|
|
|
header: { |
|
|
|
'content-type': 'application/json', |
|
|
@@ -1495,7 +1605,7 @@ |
|
|
|
}, |
|
|
|
success: (data) => { |
|
|
|
if (data.data.code == 10000) { |
|
|
|
that.status = 1 |
|
|
|
this.status = 1 |
|
|
|
uni.showToast({ |
|
|
|
title: '取消成功', |
|
|
|
duration: 2000 |
|
|
@@ -1516,17 +1626,16 @@ |
|
|
|
}, |
|
|
|
//全部加精 |
|
|
|
tappick(i) { |
|
|
|
var that = this; |
|
|
|
uni.showModal({ |
|
|
|
title: '提示', |
|
|
|
content: '确认加精?', |
|
|
|
success: function(res) { |
|
|
|
success: (res) => { |
|
|
|
if (res.confirm) { |
|
|
|
console.log('用户点击确定'); |
|
|
|
let objdata = { |
|
|
|
"carId": that.customerId, //客户id |
|
|
|
"carId": this.customerId, //客户id |
|
|
|
"status": 0, |
|
|
|
"itemId": that.buildingID, |
|
|
|
"itemId": this.buildingID, |
|
|
|
} |
|
|
|
uni.request({ |
|
|
|
url: config.service.addATD, |
|
|
@@ -1539,7 +1648,7 @@ |
|
|
|
data: objdata, |
|
|
|
success: (data) => { |
|
|
|
if (data.data.code == 10000) { |
|
|
|
that.status = 0 |
|
|
|
this.status = 0 |
|
|
|
uni.showToast({ |
|
|
|
title: '加精成功', |
|
|
|
duration: 2000 |
|
|
@@ -1564,11 +1673,11 @@ |
|
|
|
this.biaoqianindex = index; |
|
|
|
this.biaoqianid = this.biaoqianlist[index].id |
|
|
|
}, |
|
|
|
|
|
|
|
//复制 |
|
|
|
clickcopy() { |
|
|
|
var that = this; |
|
|
|
uni.setClipboardData({ |
|
|
|
data: that.thewrongword, |
|
|
|
data: this.thewrongword, |
|
|
|
success: () => { |
|
|
|
this.cancelBeast() |
|
|
|
this.$forceUpdate(); |
|
|
@@ -1605,7 +1714,7 @@ |
|
|
|
translateHtmlContent: this.messagelisy, |
|
|
|
id: uni.getStorageSync('buildingID').id |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
let sas = this.textItself.replace(this.thewrongword, this.reswrongword) |
|
|
|
console.log(sas) |
|
|
|
this.dialogList[this.argtextindex1].message[this.argtextindex2].onebest = sas |
|
|
@@ -1643,7 +1752,7 @@ |
|
|
|
|
|
|
|
//取消加入常错词 |
|
|
|
Cancelout() { |
|
|
|
this.thewrongword = '' |
|
|
|
this.thewrongword = '' |
|
|
|
this.isshow2 = false; |
|
|
|
this.cancelBeast() |
|
|
|
}, |
|
|
@@ -1765,14 +1874,16 @@ |
|
|
|
this.$u.get("/cusLvStatistics/findKeyWordsBycusId?cusId=" + this.customerId).then(res => { |
|
|
|
// console.log(res) |
|
|
|
if (res.length) { |
|
|
|
res.forEach((item,index) => { |
|
|
|
res.forEach((item, index) => { |
|
|
|
item.show = false |
|
|
|
if(index==0){item.show = true} |
|
|
|
item.children.forEach((obj,i) => { |
|
|
|
if (index == 0) { |
|
|
|
item.show = true |
|
|
|
} |
|
|
|
item.children.forEach((obj, i) => { |
|
|
|
obj.show = false |
|
|
|
if (i == 0 && index == 0) { |
|
|
|
obj.show = true; |
|
|
|
} |
|
|
|
obj.show = true; |
|
|
|
} |
|
|
|
}) |
|
|
|
}) |
|
|
|
this.KeyWordsfractionList = res |
|
|
@@ -2016,7 +2127,7 @@ |
|
|
|
</script> |
|
|
|
|
|
|
|
|
|
|
|
<style lang="scss" > |
|
|
|
<style lang="scss"> |
|
|
|
.box { |
|
|
|
width: 100%; |
|
|
|
height: 100vh; |
|
|
@@ -2066,9 +2177,12 @@ |
|
|
|
height: 170rpx; |
|
|
|
border-top: 1px solid #E0E0E0; |
|
|
|
/* iphonex 等安全区设置,底部安全区适配 */ |
|
|
|
padding-bottom: constant(safe-area-inset-bottom); /* 兼容 iOS < 11.2 */ |
|
|
|
padding-bottom: env(safe-area-inset-bottom); /* 兼容 iOS >= 11.2 */ |
|
|
|
padding-bottom: constant(safe-area-inset-bottom); |
|
|
|
/* 兼容 iOS < 11.2 */ |
|
|
|
padding-bottom: env(safe-area-inset-bottom); |
|
|
|
/* 兼容 iOS >= 11.2 */ |
|
|
|
box-sizing: content-box; |
|
|
|
|
|
|
|
.bottomhead { |
|
|
|
width: 100%; |
|
|
|
height: 81rpx; |
|
|
@@ -2243,19 +2357,21 @@ |
|
|
|
} |
|
|
|
|
|
|
|
.tmmchen { |
|
|
|
position: relative; |
|
|
|
width: 25%; |
|
|
|
height: 88rpx; |
|
|
|
text-align: center; |
|
|
|
color: #666666; |
|
|
|
font-size: 18rpx; |
|
|
|
position: relative; |
|
|
|
|
|
|
|
.allimg { |
|
|
|
position: absolute; |
|
|
|
width: 168rpx; |
|
|
|
min-height: 210rpx; |
|
|
|
top: -240rpx; |
|
|
|
border: 1px solid #E0E0E0; |
|
|
|
z-index: 10; |
|
|
|
right: 20rpx; |
|
|
|
top: -372rpx; |
|
|
|
width: 200rpx; |
|
|
|
height: 352rpx; |
|
|
|
border: 1rpx solid #E0E0E0; |
|
|
|
background: #FFFFFF; |
|
|
|
font-size: 26rpx; |
|
|
|
color: #333333; |
|
|
@@ -2338,20 +2454,21 @@ |
|
|
|
font-size: 30rpx; |
|
|
|
font-weight: 600; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.cenisbox { |
|
|
|
flex: 1; |
|
|
|
overflow: auto; |
|
|
|
.top-box{ |
|
|
|
height: 80rpx; |
|
|
|
line-height: 80rpx; |
|
|
|
display: flex; |
|
|
|
color: #2671E2; |
|
|
|
border-bottom: 1rpx solid #ccc; |
|
|
|
} |
|
|
|
|
|
|
|
.top-box { |
|
|
|
height: 80rpx; |
|
|
|
line-height: 80rpx; |
|
|
|
display: flex; |
|
|
|
color: #2671E2; |
|
|
|
border-bottom: 1rpx solid #ccc; |
|
|
|
} |
|
|
|
|
|
|
|
.jianbox { |
|
|
|
width: 100%; |
|
|
@@ -2580,7 +2697,7 @@ |
|
|
|
} |
|
|
|
|
|
|
|
.scroll-Y .text { |
|
|
|
margin:0 30upx 20rpx; |
|
|
|
margin: 0 30upx 20rpx; |
|
|
|
line-height: 60upx; |
|
|
|
display: flex; |
|
|
|
} |
|
|
@@ -2687,36 +2804,41 @@ |
|
|
|
.scroll-Y .text .contentInfo .contentMain { |
|
|
|
display: flex; |
|
|
|
} |
|
|
|
.contentInfo .newmark{ |
|
|
|
margin: 30rpx 0 10rpx 30rpx; |
|
|
|
.mark-item{ |
|
|
|
display: flex; |
|
|
|
flex-wrap: wrap; |
|
|
|
margin-bottom: 12rpx; |
|
|
|
.markicon { |
|
|
|
width: 30rpx; |
|
|
|
height: 30rpx; |
|
|
|
margin-right: 12rpx; |
|
|
|
} |
|
|
|
.marktext{ |
|
|
|
font-size: 24rpx; |
|
|
|
font-family: PingFangSC-Regular, PingFang SC; |
|
|
|
font-weight: 400; |
|
|
|
color: #3E50E8; |
|
|
|
min-height: 30rpx; |
|
|
|
line-height: 30rpx; |
|
|
|
max-width: 420rpx; |
|
|
|
text-align: left; |
|
|
|
word-break: break-all; |
|
|
|
} |
|
|
|
|
|
|
|
.contentInfo .newmark { |
|
|
|
margin: 30rpx 0 10rpx 30rpx; |
|
|
|
|
|
|
|
.mark-item { |
|
|
|
display: flex; |
|
|
|
flex-wrap: wrap; |
|
|
|
margin-bottom: 12rpx; |
|
|
|
|
|
|
|
.markicon { |
|
|
|
width: 30rpx; |
|
|
|
height: 30rpx; |
|
|
|
margin-right: 12rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.marktext { |
|
|
|
font-size: 24rpx; |
|
|
|
font-family: PingFangSC-Regular, PingFang SC; |
|
|
|
font-weight: 400; |
|
|
|
color: #3E50E8; |
|
|
|
min-height: 30rpx; |
|
|
|
line-height: 30rpx; |
|
|
|
max-width: 420rpx; |
|
|
|
text-align: left; |
|
|
|
word-break: break-all; |
|
|
|
} |
|
|
|
} |
|
|
|
.scroll-Y .text[data-speaker="2"] .newmark, |
|
|
|
.scroll-Y .text[data-speaker="4"] .newmark, |
|
|
|
.scroll-Y .text[data-speaker="8"] .newmark, |
|
|
|
.scroll-Y .text[data-speaker="6"] .newmark{ |
|
|
|
margin-left: 84rpx; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.scroll-Y .text[data-speaker="2"] .newmark, |
|
|
|
.scroll-Y .text[data-speaker="4"] .newmark, |
|
|
|
.scroll-Y .text[data-speaker="8"] .newmark, |
|
|
|
.scroll-Y .text[data-speaker="6"] .newmark { |
|
|
|
margin-left: 84rpx; |
|
|
|
} |
|
|
|
|
|
|
|
.scroll-Y .text .contentInfo .contentMain .content { |
|
|
|
margin-left: 30upx; |
|
|
@@ -2729,7 +2851,7 @@ |
|
|
|
background: #F6F6F6; |
|
|
|
color: #999999; |
|
|
|
position: relative; |
|
|
|
|
|
|
|
|
|
|
|
.tankuangcss { |
|
|
|
position: absolute; |
|
|
|
top: -140rpx; |
|
|
@@ -2746,6 +2868,7 @@ |
|
|
|
border-radius: 15rpx; |
|
|
|
z-index: 1000; |
|
|
|
} |
|
|
|
|
|
|
|
.bottoms { |
|
|
|
top: unset; |
|
|
|
bottom: -140rpx; |
|
|
@@ -2841,12 +2964,14 @@ |
|
|
|
|
|
|
|
.Level-box { |
|
|
|
padding-bottom: 2rpx; |
|
|
|
|
|
|
|
.hhhbox { |
|
|
|
width: 100%; |
|
|
|
padding-left: 30rpx; |
|
|
|
padding-right: 30rpx; |
|
|
|
border-bottom: 1rpx solid #E0E0E0; |
|
|
|
background: #FFFFFF; |
|
|
|
|
|
|
|
.hsnrtest { |
|
|
|
min-height: 30rpx; |
|
|
|
font-size: 28rpx; |
|
|
@@ -2860,7 +2985,7 @@ |
|
|
|
width: 100%; |
|
|
|
display: flex; |
|
|
|
line-height: 36rpx; |
|
|
|
margin-top:24rpx; |
|
|
|
margin-top: 24rpx; |
|
|
|
|
|
|
|
.title1 { |
|
|
|
flex: 1; |
|
|
@@ -2983,7 +3108,7 @@ |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.jiantobox { |
|
|
|
width: 30rpx; |
|
|
@@ -3033,4 +3158,73 @@ |
|
|
|
// background: #2BC805 !important; |
|
|
|
// color: #FFFFFF; |
|
|
|
// } |
|
|
|
|
|
|
|
.show-visit-content { |
|
|
|
width: 100%; |
|
|
|
height: 100%; |
|
|
|
display: flex; |
|
|
|
flex-direction: column; |
|
|
|
|
|
|
|
.visit-title { |
|
|
|
font-size: 32rpx; |
|
|
|
font-weight: bold; |
|
|
|
line-height: 70rpx; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
|
|
|
|
.visit-box { |
|
|
|
flex-grow: 1; |
|
|
|
display: flex; |
|
|
|
flex-direction: column; |
|
|
|
align-items: center; |
|
|
|
|
|
|
|
.visit-step { |
|
|
|
margin: 20rpx 0 0 0; |
|
|
|
display: flex; |
|
|
|
justify-content: center; |
|
|
|
|
|
|
|
.mitems { |
|
|
|
flex-shrink: 0; |
|
|
|
width: 50rpx; |
|
|
|
height: 50rpx; |
|
|
|
border: 1rpx solid #999; |
|
|
|
background-color: #F2F2F2; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: center; |
|
|
|
} |
|
|
|
|
|
|
|
.input { |
|
|
|
width: 100rpx; |
|
|
|
height: 47rpx; |
|
|
|
border: 1rpx solid #999; |
|
|
|
border-left: none; |
|
|
|
border-right: none; |
|
|
|
font-size: 32rpx; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.tips { |
|
|
|
padding: 20rpx 0; |
|
|
|
width: 80%; |
|
|
|
font-size: 26rpx; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
.visit-btns { |
|
|
|
width: 100%; |
|
|
|
height: 88rpx; |
|
|
|
display: flex; |
|
|
|
|
|
|
|
.btn-item { |
|
|
|
flex-grow: 1; |
|
|
|
height: 100%; |
|
|
|
display: flex; |
|
|
|
align-items: center; |
|
|
|
justify-content: center; |
|
|
|
border: 1rpx solid #999; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
</style> |