@@ -0,0 +1,124 @@ | |||
<template> | |||
<div> | |||
<el-dialog | |||
title="匹配规则" | |||
:visible.sync="value" | |||
append-to-body> | |||
<div style="max-height: 430px;overflow: auto"> | |||
<p> | |||
<b>匹配距离</b>:关键字匹配字数距离,主要针对near/after 生效; | |||
</p> | |||
<p style="padding-left: 15px"> | |||
例如:设置为10,面积 after 140</br> | |||
命中话术:"想买一个面积在140平的"</br> | |||
超出10个字,有关键字不命中话术参考:“房屋面积啊,你们这边有多大的,有没有140平左右的”; | |||
</p> | |||
<p> | |||
<b>or(或)</b>:多个关键词,匹配上1个就行 | |||
</p> | |||
<p style="padding-left: 15px"> | |||
例如标签:自住</br> | |||
匹配模型:自己住 or 给自己</br> | |||
命中话术:我们自己住/给自己买的 | |||
</p> | |||
<p> | |||
<b>and not(非)</b>:排除反面意思 | |||
</p> | |||
<p style="padding-left: 15px"> | |||
例如:北京户口,</br> | |||
匹配模型:是北京户口 and not 不是北京户口</br> | |||
命中话术:我是北京户口;</br> | |||
非面中话术:我不是北京户口 | |||
</p> | |||
<p> | |||
<b>near ( 临近)</b>:1个关键词前后一定范围出现过另一个关键词就算命中,有距离限制 | |||
</p> | |||
<p style="padding-left: 15px"> | |||
例如标签:购房预算 140w</br> | |||
匹配模型:预算 near 140</br> | |||
命中话术:我的预算是140w或大概140w的购房预算 | |||
</p> | |||
<p> | |||
<b>after(后面)</b>:一段文本出现2个关键词,并且按照先后的顺序即算命中,有距离限制 | |||
</p> | |||
<p style="padding-left: 15px"> | |||
例如标签:意向面积 140平</br> | |||
匹配模型: 面积 after 140 ,140在面积后面才算生效;</br> | |||
命中话术:想买一个面积在140平的; | |||
</p> | |||
<!-- <p><b>answer(挖掘话术业务)</b>:顾问执行了挖掘话术,客户回答结果,有距离限制,从客户话术文本开始</p> | |||
<p style="padding-left: 15px">例如标签:北京户口</br> | |||
匹配模型:(w-是 or w-有) and not (w-不是 or w-没有)</br> | |||
命中话术:销售:你有北京户口吗?</br> | |||
客户:有的; | |||
</p> --> | |||
<p> | |||
<b>-n(自定义命中距离)</b>:near/after-n ,单个near/after的匹配距离,n大于0,小于500 | |||
</p> | |||
<p style="padding-left: 15px"> | |||
例如 :面积 after-10 140</br> | |||
10个字内,命中话术参考:"想买一个面积在140平的"</br> | |||
超出10个字,有关键字不命中话术参考:“房屋面积啊,你们这边有多大的,有没有140平左右的”; | |||
</p> | |||
<p> | |||
<b style="color: red;">注意</b>:-n 与 near/after/answer 之间<b style="color: red;">不能有空格</b>; | |||
</p> | |||
<p> | |||
<b>挖掘话术中匹配标签</b>:是针对需求挖掘话术的回答,先选择画像标签,在设置对应的回答结果; | |||
</p> | |||
<p style="padding-left: 15px"> | |||
例如:</br> | |||
挖掘话术:你想买个居室;</br> | |||
标签一:一居 </br> | |||
对应回答:一居or1居or1房or1房 </br> | |||
标签二:两居 </br> | |||
对应回答:2居or两居or2房or两房 </br> | |||
</p> | |||
<p> | |||
<b style="font-weight: bold;">注</b>:优先匹配关键词可以排在前面; | |||
</p> | |||
</div> | |||
</el-dialog> | |||
</div> | |||
</template> | |||
<script> | |||
export default { | |||
data() { | |||
return { | |||
value: false, | |||
}; | |||
}, | |||
props: { | |||
// 控制显示的参数 | |||
innerVisible: { | |||
type: Boolean, | |||
default: false, | |||
}, | |||
}, | |||
created () { | |||
this.value = this.innerVisible | |||
}, | |||
watch: { | |||
innerVisible(newV, oldV) { | |||
console.log(newV, oldV) | |||
this.value = this.innerVisible | |||
} | |||
} | |||
}; | |||
</script> |
@@ -106,51 +106,13 @@ | |||
:close-on-click-modal="false" | |||
:visible.sync="dialogVisible" | |||
> | |||
<el-dialog | |||
title="匹配规则" | |||
:visible.sync="innerVisible" | |||
append-to-body> | |||
<div style="max-height: 430px;overflow: auto"> | |||
<p><b>匹配距离</b>:关键字匹配字数距离,主要针对near/after/w- 生效,w- 的字数统计从挖掘话术后,客户的第一句话开始统计;</p> | |||
<p style="padding-left: 15px">例如:设置为10,面积 after 140</br> | |||
命中话术:"想买一个面积在140平的"</br> | |||
超出10个字,有关键字不命中话术参考:“房屋面积啊,你们这边有多大的,有没有140平左右的”;</p> | |||
<p><b>or(或)</b>:多个关键词,匹配上1个就行</p> | |||
<p style="padding-left: 15px">例如标签:自住</br> | |||
匹配模型:自己住 or 给自己</br> | |||
命中话术:我们自己住/给自己买的</p> | |||
<p><b>and not(非)</b>:排除反面意思</p> | |||
<p style="padding-left: 15px">例如:北京户口,</br> | |||
匹配模型:是北京户口 and not 不是北京户口</br> | |||
命中话术:我是北京户口;</br> | |||
反面话术:我不是北京户口</p> | |||
<p><b>near ( 临近)</b>:1个关键词前后一定范围出现过另一个关键词就算命中,有距离限制</p> | |||
<p style="padding-left: 15px">例如标签:购房预算 140w</br> | |||
匹配模型:预算 near 140</br> | |||
命中话术:我的预算是140w或大概140w的购房预算</p> | |||
<p><b>after(后面)</b>:一段文本出现2个关键词,并且按照先后的顺序即算命中,有距离限制</p> | |||
<p style="padding-left: 15px">例如标签:意向面积 140平</br> | |||
匹配模型: 面积 after 140 ,140在面积后面才算生效;</br> | |||
命中话术:想买一个面积在140平的;</p> | |||
<p><b>answer(挖掘话术业务)</b>:顾问执行了挖掘话术,客户回答结果,有距离限制,从客户话术文本开始</p> | |||
<p style="padding-left: 15px">例如标签:北京户口</br> | |||
匹配模型:(w-是 or w-有) and not (w-不是 or w-没有)</br> | |||
命中话术:销售:你有北京户口吗?</br> | |||
客户:有的;</p> | |||
<p><b>-n(命中距离)</b>:near/after-n ,单个near/after的匹配距离,n大于0,小于500</p> | |||
<p style="padding-left: 15px">例如 :面积 after-10 140</br> | |||
10个字内,命中话术参考:"想买一个面积在140平的"</br> | |||
超出10个字,有关键字不命中话术参考:“房屋面积啊,你们这边有多大的,有没有140平左右的”;</p> | |||
<p><b>注意</b>:-n 与 near/after/answer 之间<b>不能有空格</b>;</p></br> | |||
<p><b>注意</b>:优先匹配关键词可以排在前面;</p> | |||
</div> | |||
</el-dialog> | |||
<matching-rules :key="timer" :innerVisible="innerVisible"></matching-rules> | |||
<el-form ref="form" size="mini" :inline="true" :model="form" label-position="right"> | |||
<el-form-item :label="keyType==0?'挖掘话术:':keyType==3?'违禁词:':'标签名称:'"> | |||
<div style="max-width:400px;min-width: 200px;">{{form.keywordsName}}</div> | |||
</el-form-item> | |||
<el-form-item label="after,near,answer 匹配距离:"> | |||
<el-input-number v-model="form.distance" controls-position="right" :min="0" :max="500"></el-input-number></el-input><span style="color:red;margin-left:10px">*请输入0~500内的整数</span> <el-button type="text" style="margin-left:30px" @click="innerVisible=true">规则说明</el-button> | |||
<el-input-number v-model="form.distance" controls-position="right" :min="0" :max="500"></el-input-number></el-input><span style="color:red;margin-left:10px">*请输入0~500内的整数</span> <el-button type="text" style="margin-left:30px" @click="innerVisible=true;timer=new Date().getTime()">规则说明</el-button> | |||
</el-form-item> | |||
<div contentEditable="true" | |||
@click="myeditorenter($event)" | |||
@@ -199,9 +161,12 @@ | |||
</template> | |||
<script> | |||
import matchingRules from "@/components/matchingRules/matchingRules.vue"; | |||
export default { | |||
components: { matchingRules }, | |||
data() { | |||
return { | |||
timer: 0, | |||
dynamiclist: [], | |||
taglist: [ | |||
{ | |||
@@ -109,45 +109,8 @@ | |||
:close-on-click-modal="false" | |||
:visible.sync="dialogVisible" | |||
> | |||
<el-dialog | |||
title="匹配规则" | |||
:visible.sync="innerVisible" | |||
append-to-body> | |||
<div style="max-height: 430px;overflow: auto"> | |||
<p><b>匹配距离</b>:关键字匹配字数距离,主要针对near/after/w- 生效,w- 的字数统计从挖掘话术后,客户的第一句话开始统计;</p> | |||
<p style="padding-left: 15px">例如:设置为10,面积 after 140</br> | |||
命中话术:"想买一个面积在140平的"</br> | |||
超出10个字,有关键字不命中话术参考:“房屋面积啊,你们这边有多大的,有没有140平左右的”;</p> | |||
<p><b>or(或)</b>:多个关键词,匹配上1个就行</p> | |||
<p style="padding-left: 15px">例如标签:自住</br> | |||
匹配模型:自己住 or 给自己</br> | |||
命中话术:我们自己住/给自己买的</p> | |||
<p><b>and not(非)</b>:排除反面意思</p> | |||
<p style="padding-left: 15px">例如:北京户口,</br> | |||
匹配模型:是北京户口 and not 不是北京户口</br> | |||
命中话术:我是北京户口;</br> | |||
反面话术:我不是北京户口</p> | |||
<p><b>near ( 临近)</b>:1个关键词前后一定范围出现过另一个关键词就算命中,有距离限制</p> | |||
<p style="padding-left: 15px">例如标签:购房预算 140w</br> | |||
匹配模型:预算 near 140</br> | |||
命中话术:我的预算是140w或大概140w的购房预算</p> | |||
<p><b>after(后面)</b>:一段文本出现2个关键词,并且按照先后的顺序即算命中,有距离限制</p> | |||
<p style="padding-left: 15px">例如标签:意向面积 140平</br> | |||
匹配模型: 面积 after 140 ,140在面积后面才算生效;</br> | |||
命中话术:想买一个面积在140平的;</p> | |||
<p><b>answer(挖掘话术业务)</b>:顾问执行了挖掘话术,客户回答结果,有距离限制,从客户话术文本开始</p> | |||
<p style="padding-left: 15px">例如标签:北京户口</br> | |||
匹配模型:(w-是 or w-有) and not (w-不是 or w-没有)</br> | |||
命中话术:销售:你有北京户口吗?</br> | |||
客户:有的;</p> | |||
<p><b>-n(命中距离)</b>:near/after-n ,单个near/after的匹配距离,n大于0,小于500</p> | |||
<p style="padding-left: 15px">例如 :面积 after-10 140</br> | |||
10个字内,命中话术参考:"想买一个面积在140平的"</br> | |||
超出10个字,有关键字不命中话术参考:“房屋面积啊,你们这边有多大的,有没有140平左右的”;</p> | |||
<p><b>注意</b>:-n 与 near/after/answer 之间<b>不能有空格</b>;</p></br> | |||
<p><b>注意</b>:优先匹配关键词可以排在前面;</p> | |||
</div> | |||
</el-dialog> | |||
<matching-rules :key="timer" :innerVisible="innerVisible"></matching-rules> | |||
<el-form ref="form" size="mini" :inline="true" :model="form" label-position="right"> | |||
<el-form-item :label="keyType==0?'挖掘话术:':'标签名称:'"> | |||
<div style="max-width:400px;min-width: 200px;font-weight: bold">{{form.keywordsName}}</div> | |||
@@ -157,7 +120,7 @@ | |||
<div v-else>暂无描述</div> | |||
</el-form-item> | |||
<el-form-item label="after,near,answer 匹配距离:"> | |||
<el-input-number v-model="form.distance" controls-position="right" :min="0" :max="500"></el-input-number><span style="color:red;margin-left:10px">*请输入0~500内的整数</span> <el-button type="text" style="margin-left:30px" @click="innerVisible=true">规则说明</el-button> | |||
<el-input-number v-model="form.distance" controls-position="right" :min="0" :max="500"></el-input-number><span style="color:red;margin-left:10px">*请输入0~500内的整数</span> <el-button type="text" style="margin-left:30px" @click="innerVisible=true;timer=new Date().getTime()">规则说明</el-button> | |||
</el-form-item> | |||
<div contentEditable="true" | |||
@click="myeditorenter($event)" | |||
@@ -205,7 +168,9 @@ | |||
</template> | |||
<script> | |||
import matchingRules from "@/components/matchingRules/matchingRules.vue"; | |||
export default { | |||
components: { matchingRules }, | |||
data() { | |||
return { | |||
huashu: "", | |||
@@ -188,52 +188,16 @@ | |||
:close-on-click-modal="false" | |||
:visible.sync="moxingVisible" | |||
> | |||
<el-dialog | |||
title="匹配规则" | |||
:visible.sync="innerVisible" | |||
append-to-body> | |||
<div style="max-height: 430px;overflow: auto"> | |||
<p><b>匹配距离</b>:关键字匹配字数距离,主要针对near/after/w- 生效,w- 的字数统计从挖掘话术后,客户的第一句话开始统计;</p> | |||
<p style="padding-left: 15px">例如:设置为10,面积 after 140</br> | |||
命中话术:"想买一个面积在140平的"</br> | |||
超出10个字,有关键字不命中话术参考:“房屋面积啊,你们这边有多大的,有没有140平左右的”;</p> | |||
<p><b>or(或)</b>:多个关键词,匹配上1个就行</p> | |||
<p style="padding-left: 15px">例如标签:自住</br> | |||
匹配模型:自己住 or 给自己</br> | |||
命中话术:我们自己住/给自己买的</p> | |||
<p><b>and not(非)</b>:排除反面意思</p> | |||
<p style="padding-left: 15px">例如:北京户口,</br> | |||
匹配模型:是北京户口 and not 不是北京户口</br> | |||
命中话术:我是北京户口;</br> | |||
反面话术:我不是北京户口</p> | |||
<p><b>near ( 临近)</b>:1个关键词前后一定范围出现过另一个关键词就算命中,有距离限制</p> | |||
<p style="padding-left: 15px">例如标签:购房预算 140w</br> | |||
匹配模型:预算 near 140</br> | |||
命中话术:我的预算是140w或大概140w的购房预算</p> | |||
<p><b>after(后面)</b>:一段文本出现2个关键词,并且按照先后的顺序即算命中,有距离限制</p> | |||
<p style="padding-left: 15px">例如标签:意向面积 140平</br> | |||
匹配模型: 面积 after 140 ,140在面积后面才算生效;</br> | |||
命中话术:想买一个面积在140平的;</p> | |||
<p><b>w-(挖掘话术业务)</b>:顾问执行了挖掘话术,客户回答结果,有距离限制,从客户话术文本开始</p> | |||
<p style="padding-left: 15px">例如标签:北京户口</br> | |||
匹配模型:(w-是 or w-有) and not (w-不是 or w-没有)</br> | |||
命中话术:销售:你有北京户口吗?</br> | |||
客户:有的;</p> | |||
<p><b>-n(命中距离)</b>:near/after-n ,单个near/after的匹配距离,n大于0,小于500</p> | |||
<p style="padding-left: 15px">例如 :面积 after-10 140</br> | |||
10个字内,命中话术参考:"想买一个面积在140平的"</br> | |||
超出10个字,有关键字不命中话术参考:“房屋面积啊,你们这边有多大的,有没有140平左右的”;</p> | |||
<p><b>注意</b>:-n 与 near/after/answer 之间<b>不能有空格</b>;</p></br> | |||
<p><b>注意</b>:优先匹配关键词可以排在前面;</p> | |||
</div> | |||
</el-dialog> | |||
<matching-rules :key="timer" :innerVisible="innerVisible"></matching-rules> | |||
<el-form ref="form" size="mini" :inline="true" :model="form" label-position="right"> | |||
<el-form-item label="挖掘话术:"> | |||
<div style="max-width:400px;min-width: 200px;font-weight: bold">{{form.keywordsName}}</div> | |||
</el-form-item> | |||
<el-form-item label="after,near,w- 匹配距离:"> | |||
<el-input-number v-model="form.distance" controls-position="right" :min="0" :max="500"></el-input-number></el-input><span style="color:red;margin-left:10px">*请输入0~500内的整数</span> <el-button type="text" style="margin-left:30px" @click="innerVisible=true">规则说明</el-button> | |||
<el-input-number v-model="form.distance" controls-position="right" :min="0" :max="500"></el-input-number></el-input><span style="color:red;margin-left:10px">*请输入0~500内的整数</span> <el-button type="text" style="margin-left:30px" @click="innerVisible=true;timer=new Date().getTime()">规则说明</el-button> | |||
</el-form-item> | |||
<div contentEditable="true" | |||
@click="myeditorenter($event)" | |||
@@ -276,12 +240,16 @@ | |||
<script> | |||
import { mapGetters } from "vuex"; | |||
import draggable from 'vuedraggable' | |||
import matchingRules from "@/components/matchingRules/matchingRules.vue"; | |||
export default { | |||
components: { | |||
draggable, | |||
matchingRules, | |||
}, | |||
data() { | |||
return { | |||
timer: 0, | |||
moxingVisible: false, | |||
innerVisible: false, | |||
innerVisible1: false, | |||
@@ -470,7 +438,7 @@ export default { | |||
keywordsId: item.markid, | |||
showFormatExpression: item.editText,//文本形式 | |||
formatExpression: this.replaceFun(item.editValue),// 问题表达式,关键词加#号 | |||
original: item.editValue // html,带span标签 | |||
originalExpression: item.editValue // html,带span标签 | |||
} | |||
}) | |||
this.$api.api.updateKeywordsModel({ | |||
@@ -123,45 +123,9 @@ | |||
:close-on-click-modal="false" | |||
:visible.sync="modelVisible" | |||
> | |||
<el-dialog | |||
title="匹配规则" | |||
:visible.sync="innerVisible" | |||
append-to-body> | |||
<div style="max-height: 430px;overflow: auto"> | |||
<p><b>匹配距离</b>:关键字匹配字数距离,主要针对near/after/w- 生效,w- 的字数统计从挖掘话术后,客户的第一句话开始统计;</p> | |||
<p style="padding-left: 15px">例如:设置为10,面积 after 140</br> | |||
命中话术:"想买一个面积在140平的"</br> | |||
超出10个字,有关键字不命中话术参考:“房屋面积啊,你们这边有多大的,有没有140平左右的”;</p> | |||
<p><b>or(或)</b>:多个关键词,匹配上1个就行</p> | |||
<p style="padding-left: 15px">例如标签:自住</br> | |||
匹配模型:自己住 or 给自己</br> | |||
命中话术:我们自己住/给自己买的</p> | |||
<p><b>and not(非)</b>:排除反面意思</p> | |||
<p style="padding-left: 15px">例如:北京户口,</br> | |||
匹配模型:是北京户口 and not 不是北京户口</br> | |||
命中话术:我是北京户口;</br> | |||
反面话术:我不是北京户口</p> | |||
<p><b>near ( 临近)</b>:1个关键词前后一定范围出现过另一个关键词就算命中,有距离限制</p> | |||
<p style="padding-left: 15px">例如标签:购房预算 140w</br> | |||
匹配模型:预算 near 140</br> | |||
命中话术:我的预算是140w或大概140w的购房预算</p> | |||
<p><b>after(后面)</b>:一段文本出现2个关键词,并且按照先后的顺序即算命中,有距离限制</p> | |||
<p style="padding-left: 15px">例如标签:意向面积 140平</br> | |||
匹配模型: 面积 after 140 ,140在面积后面才算生效;</br> | |||
命中话术:想买一个面积在140平的;</p> | |||
<p><b>answer(挖掘话术业务)</b>:顾问执行了挖掘话术,客户回答结果,有距离限制,从客户话术文本开始</p> | |||
<p style="padding-left: 15px">例如标签:北京户口</br> | |||
匹配模型:(w-是 or w-有) and not (w-不是 or w-没有)</br> | |||
命中话术:销售:你有北京户口吗?</br> | |||
客户:有的;</p> | |||
<p><b>-n(命中距离)</b>:near/after-n ,单个near/after的匹配距离,n大于0,小于500</p> | |||
<p style="padding-left: 15px">例如 :面积 after-10 140</br> | |||
10个字内,命中话术参考:"想买一个面积在140平的"</br> | |||
超出10个字,有关键字不命中话术参考:“房屋面积啊,你们这边有多大的,有没有140平左右的”;</p> | |||
<p><b>注意</b>:-n 与 near/after/answer 之间<b>不能有空格</b>;</p></br> | |||
<p><b>注意</b>:优先匹配关键词可以排在前面;</p> | |||
</div> | |||
</el-dialog> | |||
<matching-rules :key="timer" :innerVisible="innerVisible"></matching-rules> | |||
<el-form ref="form" size="mini" :inline="true" :model="form" label-position="right"> | |||
<el-form-item label="敏感词:"> | |||
<div style="max-width:400px;min-width: 200px;font-weight: bold">{{form.keywordsName||''}}</div> | |||
@@ -173,7 +137,7 @@ | |||
<el-form-item label="after,near,answer 匹配距离:"> | |||
<el-input-number v-model="form.distance" controls-position="right" :min="0" :max="500"></el-input-number> | |||
<span style="color:red;margin-left:10px">*请输入0~500内的整数</span> | |||
<el-button type="text" style="margin-left:30px" @click="innerVisible=true">规则说明</el-button> | |||
<el-button type="text" style="margin-left:30px" @click="innerVisible=true;timer=new Date().getTime()">规则说明</el-button> | |||
</el-form-item> | |||
<div contentEditable="true" | |||
@click="myeditorenter($event)" | |||
@@ -198,7 +162,9 @@ | |||
<script> | |||
import { mapGetters } from "vuex"; | |||
import { exportMethodPost } from "@/util/util"; | |||
import matchingRules from "@/components/matchingRules/matchingRules.vue"; | |||
export default { | |||
components: { matchingRules }, | |||
data() { | |||
return { | |||
dynamiclist: [], | |||