Browse Source

修改挖掘执行率话术搜索页标签展示问题

newyun
corala 2 years ago
parent
commit
ed1aa6ce95
3 changed files with 295 additions and 156 deletions
  1. +7
    -7
      pages/center/consumer/consumerDetail.vue
  2. +284
    -145
      pages/learning/Keywordsearch.vue
  3. +4
    -4
      pages/mine/details2.vue

+ 7
- 7
pages/center/consumer/consumerDetail.vue View File

@@ -314,7 +314,7 @@
<!-- 话术在一级下 -->
<view v-if="item.children&&item.children.length==0">
<view class="hhhbox" v-if="item.show" style="padding: 30rpx;">
<view class="hsnrtest"
<view class="hsnrtest" style="font-size:30rpx;color: #333"
>客户标签:{{ getKeywordsList(item.keywordsList) }}</view
>
<view class="hsnrtest">话术内容:</view>
@@ -371,7 +371,7 @@
</view>
</view>
<view v-if="subitem.show" style="padding: 30rpx 0">
<view class="hsnrtest"
<view class="hsnrtest" style="font-size: 30rpx;color: #333"
>客户标签:{{ getKeywordsList(subitem.keywordsList) }}</view
>
<view class="hsnrtest">话术内容:</view>
@@ -908,7 +908,7 @@
border-bottom: 1rpx solid #E0E0E0;
background: #FFFFFF;
.hsnrtest {
font-size: 24rpx;
font-size: 28rpx;
font-weight: 400;
color: #666666;
line-height: 30rpx;
@@ -917,15 +917,15 @@

.Level3che {
width: 100%;
height: 28rpx;
height: 30rpx;
display: flex;
line-height: 28rpx;
line-height: 30rpx;
align-items: center;
margin-top: 30rpx;

.title1 {
flex: 1;
font-size: 28rpx;
font-size: 30rpx;
color: #2671E2;
font-weight: 400;
}
@@ -953,7 +953,7 @@

.title1 {
flex: 3;
font-size: 28rpx;
font-size: 30rpx;
color: #333333;
font-weight: 400;
}


+ 284
- 145
pages/learning/Keywordsearch.vue View File

@@ -1,153 +1,292 @@
<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" :disabled="disabled" v-model="keyword" placeholder="请输入关键字"
style="width: 100%;color: #999999;font-size: 24rpx;"/>
</view>
</view>
<view style="width: 690rpx;margin: 0 auto;margin-top: 10rpx;">
<view style="width: 100%;border-bottom: 1px solid #E0E0E0;display: flex;padding-bottom: 10rpx;margin-top: 40rpx;"
v-for="(item,index) in listarr" :key='index' @click="toaidoinfo(item.Content,item.corpusId,item.index)">
<view style="width: 26rpx;height: 36rpx;margin-top: 4rpx;">
<image style="width: 26rpx;height: 28rpx;" src="../../static/images/testimg.png" mode=""></image>
</view>
<view v-html="item.Content.text" style="color: #666666;font-size: 28rpx;line-height: 36rpx;margin-left: 10rpx;width: 80%;"></view>
<view style="font-size: 28rpx;width: 10%;width: 14%;text-align: right;">{{item.Content.time}}</view>
</view>
</view>
</view>
<view class="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"
:disabled="disabled"
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; margin-top: 40rpx"
v-for="(item, index) in listarr"
:key="index"
@click="toaidoinfo(item.Content, item.corpusId, item.index)"
>
<view class="item-list">
<view class="icon">
<image
style="width: 26rpx; height: 28rpx"
src="../../static/images/testimg.png"
mode=""
></image>
</view>
<view v-html="item.Content.text" class="text"></view>
<view class="time">{{ item.Content.time }}</view>
</view>
<!-- 1 客户画像 2销讲词 3违禁 4 需求挖掘 -->
<view class="newmark" v-if="item.Content.types">
<view
class="mark-item"
v-for="(subitem, i) in dealTypes(item.Content.types)"
:key="i"
>
<image
v-if="dealword(subitem)[0] == 1"
class="markicon"
src="https://static.quhouse.com/37e0de3f8d1c421dac8bf699d5e7992d.png"
></image>
<image
v-if="dealword(subitem)[0] == 2"
class="markicon"
src="https://static.quhouse.com/b106e8e75db24a59a579a15a78830a76.png"
></image>
<image
v-if="dealword(subitem)[0] == 3"
class="markicon"
src="https://static.quhouse.com/8443a2ecb81d4639991ab29c422e9949.png"
></image>
<image
v-if="dealword(subitem)[0] == 4"
class="markicon"
src="https://static.quhouse.com/1cd794cb6c974d9dad948a6dd444518b.png"
></image>
<view
class="marktext"
:style="
dealword(subitem)[0] == 3 ? 'color:#E7483C' : 'color:#3E50E8'
"
>{{ dealword(subitem)[1] }}</view
>
</view>
</view>
</view>
</view>
</view>
</template>

<script>
var util = require("../../utils/util.js");
var config = require("../../config");
export default {
data() {
return {
customerId:'',
listarr:[],
keyword:'',
skpl:'',
disabled:false,
tipsFncName: '', // 通知其他页面的方法名称
};
},
onLoad(options) {
this.customerId = options.customerId;
this.keyword=options.keyword;
this.skpl=options.skpl;
if (options.UpDateEvent) this.tipsFncName = options.UpDateEvent
if(this.skpl==2){
this.searchinfo()
this.disabled=true;
}else{
this.disabled=false;
}
},
methods: {
formatTime(num) {
//格式化时间格式
num = num.toFixed(0);
let second = num % 60;
if (second < 10) second = '0' + second;
let min = Math.floor(num / 60);
if (min < 10) min = '0' + min;
return min + ":" + second;
},
searchinfo(){
if(this.keyword.length==0){
return
}else{
let parames={
keyword:this.keyword,
customerId:this.customerId
}
this.$u.post("/corpus/keyWordsMatching", parames).then(res => {
res.forEach(item=>{
item.Content=JSON.parse(item.transferContent)
})
res.forEach(cet=>{
cet.Content.time=this.formatTime(cet.Content.bg/1000)
cet.Content.text=this.brightKeyword(cet.Content.onebest)
})
this.listarr=res;
})
}
},
//替换方法
brightKeyword(val) {
if (val.indexOf(this.keyword) !== -1) {
return val.replace(this.keyword, `<font style='color: red'>${this.keyword}</font>`);
} else {
return val;
}
},
//跳转
toaidoinfo(item,id,index){
uni.setStorageSync("entrance", 2); //写入缓存
item.customerId=this.customerId;
item.id=id;
item.index=index;
if(this.skpl==2){
this.infostust(item)
}else{
let pages = getCurrentPages() //获取当前页面栈的信息
let prevPage = pages[pages.length - 2] //获取上一个页面
if (this.tipsFncName) uni.$emit(this.tipsFncName, item)
prevPage.setData({ //把需要回传的值保存到上一个页面
info: item
});
wx.navigateBack({ //然后返回上一个页面
delta: 1
})
}
},
//只有一条的时候
infostust(item){
uni.setStorageSync("searchobj", item); //写入缓存
const parames = {
pageNum: 1,
pageSize: 100,
query: {
customerId: this.customerId,
}
}
this.$u.post("/corpus/findByPage", parames).then(res => {
if(res[0].merge==0){
let newobj = res[0];
if (this.tipsFncName) {
uni.$emit(this.tipsFncName, item)
uni.navigateBack()
return
}
uni.navigateTo({
url: `/pages/mine/details2?customerId=${newobj.customerId}&status=${newobj.status}&stateisshow=${'2'}`
})
}else{
let newobj = res[0];
uni.navigateTo({
url: `/pages/mine/details?customerId=${newobj.customerId}&status=${newobj.status}&stateisshow=${'2'}`
})
}
})
},
},
}
var util = require("../../utils/util.js");
var config = require("../../config");
export default {
data() {
return {
customerId: "",
listarr: [],
keyword: "",
skpl: "",
disabled: false,
tipsFncName: "", // 通知其他页面的方法名称
};
},
onLoad(options) {
this.customerId = options.customerId;
this.keyword = options.keyword;
this.skpl = options.skpl;
console.log(111);
if (options.UpDateEvent) this.tipsFncName = options.UpDateEvent;
if (this.skpl == 2) {
this.searchinfo();
this.disabled = true;
} else {
this.disabled = false;
}
},
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);
let second = num % 60;
if (second < 10) second = "0" + second;
let min = Math.floor(num / 60);
if (min < 10) min = "0" + min;
return min + ":" + second;
},
searchinfo() {
if (this.keyword.length == 0) {
return;
} else {
let parames = {
keyword: this.keyword,
customerId: this.customerId,
};
this.$u.post("/corpus/keyWordsMatching", parames).then((res) => {
res.forEach((item) => {
item.Content = JSON.parse(item.transferContent);
});
res.forEach((cet) => {
cet.Content.time = this.formatTime(cet.Content.bg / 1000);
cet.Content.text = this.brightKeyword(cet.Content.onebest);
});
this.listarr = res;
});
}
},
//替换方法
brightKeyword(val) {
if (val.indexOf(this.keyword) !== -1) {
return val.replace(
this.keyword,
`<font style='color: red'>${this.keyword}</font>`
);
} else {
return val;
}
},
//跳转
toaidoinfo(item, id, index) {
uni.setStorageSync("entrance", 2); //写入缓存
item.customerId = this.customerId;
item.id = id;
item.index = index;
if (this.skpl == 2) {
this.infostust(item);
} else {
let pages = getCurrentPages(); //获取当前页面栈的信息
let prevPage = pages[pages.length - 2]; //获取上一个页面
if (this.tipsFncName) uni.$emit(this.tipsFncName, item);
prevPage.setData({
//把需要回传的值保存到上一个页面
info: item,
});
wx.navigateBack({
//然后返回上一个页面
delta: 1,
});
}
},
//只有一条的时候
infostust(item) {
uni.setStorageSync("searchobj", item); //写入缓存
const parames = {
pageNum: 1,
pageSize: 100,
query: {
customerId: this.customerId,
},
};
this.$u.post("/corpus/findByPage", parames).then((res) => {
if (res[0].merge == 0) {
let newobj = res[0];
if (this.tipsFncName) {
uni.$emit(this.tipsFncName, item);
uni.navigateBack();
return;
}
uni.navigateTo({
url: `/pages/mine/details2?customerId=${newobj.customerId}&status=${
newobj.status
}&stateisshow=${"2"}`,
});
} else {
let newobj = res[0];
uni.navigateTo({
url: `/pages/mine/details?customerId=${newobj.customerId}&status=${
newobj.status
}&stateisshow=${"2"}`,
});
}
});
},
},
};
</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 {
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: 0 auto;
margin-top: 10rpx;
}
.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>

+ 4
- 4
pages/mine/details2.vue View File

@@ -353,7 +353,7 @@
<!-- 话术在一级下 -->
<view v-if="item.children&&item.children.length==0">
<view class="hhhbox" v-if="item.show" style="padding: 30rpx;">
<view class="hsnrtest"
<view class="hsnrtest" style="font-size:30rpx;color: #333"
>客户标签:{{ getKeywordsList(item.keywordsList) }}</view
>
<view class="hsnrtest">话术内容:</view>
@@ -394,7 +394,7 @@
</view>
</view>
<view v-if="subitem.show" style="padding: 30rpx 0;">
<view class="hsnrtest">客户标签:{{ getKeywordsList(subitem.keywordsList) }}</view>
<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" @click="clickWajue(che)"
@@ -2817,7 +2817,7 @@
background: #FFFFFF;
.hsnrtest {
min-height: 30rpx;
font-size: 24rpx;
font-size: 28rpx;
font-weight: 400;
color: #666666;
line-height: 30rpx;
@@ -2832,7 +2832,7 @@

.title1 {
flex: 1;
font-size: 28rpx;
font-size: 30rpx;
color: #2671E2;
font-weight: 400;
}


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