Browse Source

新功能搬迁

newStyle
corala 2 years ago
parent
commit
3d5f31cc6a
2 changed files with 333 additions and 104 deletions
  1. +61
    -0
      src/page/wel.vue
  2. +272
    -104
      src/views/Receive/index.vue

+ 61
- 0
src/page/wel.vue View File

@@ -455,6 +455,67 @@
<i class="down"></i> <i class="down"></i>
</span> </span>


<span
style="margin-left: 15px"
v-if="cardlist.liftlist.prohibitedZb > 0"
>数据有所增长</span
>
<span
style="margin-left: 15px"
v-if="cardlist.liftlist.prohibitedZb < 0"
>数据有所下降</span
>
</div>
</div>
</div>
</div>
<div
class="pagechen"
@click="
toDetail('/ReceivingRecords/index', nowSelectTime(4), '接待记录')
"
>
<div style="width: 100%">
<div class="pageboxtitle1 projectCardItem">
<div class="sum">
<div class="sum-top">
<div>平均需求挖掘率</div>
<el-tooltip
effect="light"
content="筛选时间内,已标记的有效接待需求挖掘率成功的平均值;"
placement="bottom-end"
>
<i class="pop"></i>
</el-tooltip>
</div>
<div class="span1">
{{ cardlist.datalist.prohibitedZb || 0 }}%
</div>
</div>

<div class="cardicon">
<img
src="../../public/img/indexIcon/indexCardIcon20.png"
alt=""
srcset=""
/>
</div>
</div>
<div class="pageboxtitle2 projectColumn">
<div class="span2">
<span class="span2-1">
环比:{{ cardlist.sequential.prohibitedZb || 0 }}</span
>

<span class="span2-2" v-if="cardlist.liftlist.prohibitedZb > 0">
+{{ cardlist.liftlist.prohibitedZb || 0 }}%
<i class="up"></i>
</span>
<span class="span2-3" v-if="cardlist.liftlist.prohibitedZb < 0">
{{ cardlist.liftlist.prohibitedZb || 0 }}%
<i class="down"></i>
</span>

<span <span
style="margin-left: 15px" style="margin-left: 15px"
v-if="cardlist.liftlist.prohibitedZb > 0" v-if="cardlist.liftlist.prohibitedZb > 0"


+ 272
- 104
src/views/Receive/index.vue View File

@@ -482,7 +482,7 @@
<el-radio-group v-model="zhixingcenterindex" size="small"> <el-radio-group v-model="zhixingcenterindex" size="small">
<el-radio-button :label="0" >销讲总执行率{{ userinformationlist.fraction || 0 }}%</el-radio-button> <el-radio-button :label="0" >销讲总执行率{{ userinformationlist.fraction || 0 }}%</el-radio-button>
<el-radio-button :label="1">禁忌执行</el-radio-button> <el-radio-button :label="1">禁忌执行</el-radio-button>
<el-radio-button :label="2">需求挖掘率</el-radio-button>
<el-radio-button :label="2">需求挖掘率{{ userinformationlist.fraction || 0 }}%</el-radio-button>
</el-radio-group> </el-radio-group>
</div> </div>
@@ -512,8 +512,7 @@
</div> </div>
</div> </div>
</div> </div>

<!-- 销讲 -->
<div id="zxldiv" v-if="zhixingcenterindex == 0"> <div id="zxldiv" v-if="zhixingcenterindex == 0">
<div class="zxlBox" v-for="(item, index) in ratelist" :key="index"> <div class="zxlBox" v-for="(item, index) in ratelist" :key="index">
<div class="zxlLev1" @click="changeshow(index)"> <div class="zxlLev1" @click="changeshow(index)">
@@ -594,7 +593,7 @@
</div> </div>
</div> </div>
</div> </div>
<!-- 禁忌执行 -->
<div <div
id="zxldiv" id="zxldiv"
v-if="zhixingcenterindex == 1" v-if="zhixingcenterindex == 1"
@@ -609,7 +608,7 @@
</div> </div>
</div> </div>
<!-- 需求挖掘 --> <!-- 需求挖掘 -->
<div v-if="zhixingcenterindex == 2">
<div v-if="zhixingcenterindex == 2">
<div <div
style=" style="
width: 100%; width: 100%;
@@ -622,89 +621,79 @@
> >
<div style="width: 40%;font-size: 16px;color: #333333;text-indent: 20px;" > 指标 </div> <div style="width: 40%;font-size: 16px;color: #333333;text-indent: 20px;" > 指标 </div>
<div style="width: 20%; flex: 1; font-size: 16px; color: #333333">执行</div> <div style="width: 20%; flex: 1; font-size: 16px; color: #333333">执行</div>
<div style="width: 40%; flex: 1; font-size: 16px; color: #333333">
匹配标签
</div>
<div style="width: 40%; flex: 1; font-size: 16px; color: #333333">匹配标签</div>
</div> </div>
<div id="zxldiv" v-if="zhixingcenterindex == 2">
<div class="zxlBox" v-for="(item, index) in ratelist" :key="index">
<div class="zxlLev1" @click="changeshow(index)">
<div style="width: 40%" class="zxlLev1box">
{{ item.name }}
</div>
<div style="width: 60%; display: flex; align-items: center">
<div
style="
width: 100%;
height: 16px;
background: #c8e8e4;
border-radius: 8px;
position: relative;
"
>
<div
:style="{
width:
(
(item.ratepercent / item.rate).toFixed(2) * 100
).toFixed() + '%',
height: '16px',
background: '#07B79D',
borderRadius: '8px',
}"
></div>
<span
style="
position: absolute;
top: -12px;
font-size: 10px;
right: 12px;
color: #000;
"
>{{
(
(item.ratepercent / item.rate).toFixed(2) * 100
).toFixed()
}}%</span
>
</div>
<div id="zxldiv" v-if="zhixingcenterindex == 2">
<div style="width: 100%;" v-for="(item,index) in keyWordsList" :key="index">
<!-- 有二级-->
<div v-if="item.children.length">
<div class="rateboxcenttit" @click="changeshow1(item)" style="cursor:pointer">
<div style="flex:1">{{item.name}} </div>
<div style="flex:1">执行{{item.fraction||0}}%</div>
<div style="flex:1" v-if="item.keywordsList&&item.keywordsList.length">已匹配({{item.keywordsList&&item.keywordsList.length}})</div>
<div style="flex:1" v-else>未匹配</div>
<div style="flex:0 0 18px">
<i v-if="item.show" style="font-size: 18px" class="el-icon-arrow-up"></i>
<i v-else style="font-size: 18px" class="el-icon-arrow-down"></i>
</div>
</div>
<div v-if="item.show" v-for="(subitem,i) in item.children" :key="i" >
<el-tooltip placement="bottom" effect="light">
<div slot="content">
<div class="huashu-title">客户标签:{{getKeywordsList(subitem.keywordsList)}}</div>
<div class="huashu-title">需求挖掘话术</div>
<div class="huashu">
<div class="huashu-item" v-for="(question,questionindex) in subitem.modelList" :key="questionindex">
<i class="el-icon-success" :style="question.isAskQuestions==0?'color: #409eff':question.isAskQuestions==2?'color: orange':'color: #666'"></i>
<div class="text" :style="question.isAskQuestions==0?'color: #409eff':question.isAskQuestions==2?'color: orange':'color:#666'">{{question.showFormatExpression||question.keywordsName}}</div>
</div>
</div>
</div>
<div class="rateboxcent">
<div>{{subitem.name}}</div>
<div>
<div class="ratebutton" v-if="subitem.isAskQuestions==0">已执行</div>
<div class="ratebutton1" v-else>未执行</div>
</div>
<div>
<div class="ratebutton" v-if="subitem.selected==0">已匹配</div>
<div class="ratebutton1" v-else>未匹配</div>
</div>
<div style="flex:0 0 18px"></div>
</div>
</el-tooltip>
</div>
</div> </div>
<div style="width: 40px; text-align: center">
<i
v-if="item.show == true"
style="font-size: 18px"
class="el-icon-arrow-up"
></i>
<i
v-if="item.show == false"
style="font-size: 18px"
class="el-icon-arrow-down"
></i>
<!-- 只有一级标签 -->
<div v-if="item.children.length==0">
<div class="rateboxcenttit" style="cursor:pointer">
<el-tooltip placement="bottom" effect="light">
<div slot="content">
<div class="huashu-title">客户标签:{{getKeywordsList(item.keywordsList)}}</div>
<div class="huashu-title">需求挖掘话术</div>
<div class="huashu">
<div class="huashu-item" v-for="(question,index) in item.modelList" :key="index">
<i class="el-icon-success" :style="question.isAskQuestions==0?'color: #409eff':question.isAskQuestions==2?'color: orange':'color: #666'"></i>
<div class="text" :style="question.isAskQuestions==0?'color: #409eff':question.isAskQuestions==2?'color: orange':'color: #666'">{{question.showFormatExpression||question.keywordsName}}</div>
</div>
</div>
</div>
<div style="display: flex">
<div style="flex:1">{{item.name}} </div>
<div style="flex:1">执行{{item.fraction||0}}%</div>
<div style="flex:1" v-if="item.keywordsList&&item.keywordsList.length">已匹配({{item.keywordsList&&item.keywordsList.length}})</div>
<div style="flex:1" v-else>未匹配</div>
<div style="flex:0 0 18px"></div>
</div>
</el-tooltip>
</div>
</div> </div>
</div>
</div>
<div
class="zxlLev2"
v-if="item.show"
v-for="(subitem, i) in item.children"
:key="i"
>
<div
style="
width: 40%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
"
class="zxlLev2tit"
>
{{ subitem.name }}
</div>
<div style="width: 60%; display: flex; align-items: center">
<div class="zxlzx" v-if="!subitem.selected">已执行</div>
<div v-else class="zxlzx2">未执行</div>
</div>
</div> </div>
</div>
<div class="mydesc" v-if="zhixingcenterindex==2">
<span style="color: #409eff"><i class="el-icon-success" style="margin-right:5px"></i>本次接待执行</span>
<span style="color: orange"><i class="el-icon-success" style="margin-right:5px"></i>之前接待执行</span>
<span style="color: gray"><i class="el-icon-success" style="margin-right:5px"></i>未执行</span>
</div> </div>
</div> </div>
</div> </div>
@@ -1182,6 +1171,7 @@ import { saveAs } from "file-saver";
export default { export default {
data() { data() {
return { return {
keyWordsList: [],
imgArr: ['', 'https://static.quhouse.com/37e0de3f8d1c421dac8bf699d5e7992d.png', 'https://static.quhouse.com/b106e8e75db24a59a579a15a78830a76.png', 'https://static.quhouse.com/8443a2ecb81d4639991ab29c422e9949.png', 'https://static.quhouse.com/1cd794cb6c974d9dad948a6dd444518b.png',], imgArr: ['', 'https://static.quhouse.com/37e0de3f8d1c421dac8bf699d5e7992d.png', 'https://static.quhouse.com/b106e8e75db24a59a579a15a78830a76.png', 'https://static.quhouse.com/8443a2ecb81d4639991ab29c422e9949.png', 'https://static.quhouse.com/1cd794cb6c974d9dad948a6dd444518b.png',],
mg: 0, mg: 0,
recordsText: [], recordsText: [],
@@ -1276,6 +1266,7 @@ export default {
this.fileId = this.$route.query.flag; this.fileId = this.$route.query.flag;
this.AudioIdx = this.$route.query.AudioIdx; this.AudioIdx = this.$route.query.AudioIdx;
this.info = getStore({ name: "userInfo" }); this.info = getStore({ name: "userInfo" });
this.findKeyWordsBycusId();
this.init(); this.init();
}, },
computed: { computed: {
@@ -1337,6 +1328,95 @@ export default {
}, },


methods: { methods: {
changeshow1(item){
item.show = !item.show
},
//挖掘率话术客户标签展示
getKeywordsList(list){
let keywords = []
if(list&&list.length){
keywords = list.map(item=>item.name)
}else{
return '--'
}
return keywords.join(',')
},
//需求挖掘率-需求话术
findKeyWordsBycusId() {
// axios({
// url: `${jypath}/customer/findKeyWordsBycusId`,
// method: 'get',
// params: {
// cusId: this.fileId
// }
// }).then(data => {
// if (data.data.res == 1) {
// // console.log(data.data.obj)
// let tempData = data.data.obj
// if(tempData.length){
// tempData.forEach((item,index)=>{
// item.show = false
// if(index==0){
// item.show = true
// }
// })
// }else{
// tempData = []
// }
// this.keyWordsList = tempData
// console.log(this.keyWordsList)
// }
// })
this.keyWordsList = [{
show: true,
fraction: 10,
name:'中亚',
children: [{
name:'sdcsd',
isAskQuestions: 1,
},{
name:'大城市sdcsd',
isAskQuestions: 0,
}],
modelList: [
{isAskQuestions: 2,
selected: 0,
keywordsName:'as',
name: 'as'},
{isAskQuestions: 2,
selected: 1,
keywordsName:'aeeeees',
name: 'addds'},
]
},{
show: false,
fraction: 10,
name:'中ddd亚',
children: [],
modelList: [
{isAskQuestions: 0,
selected: 0,
keywordsName:'aeeeees',
name: 'as'},
{isAskQuestions: 1,
keywordsName:'aeees',
selected: 1,
name: 'addds'},
{isAskQuestions: 1,
keywordsName:'aeees',
selected: 1,
name: 'addds'},
{isAskQuestions: 1,
keywordsName:'aeees',
selected: 1,
name: 'addds'},
{isAskQuestions: 1,
keywordsName:'aeees',
selected: 1,
name: 'addds'},
]
}]
},
// 对话加命中标签 // 对话加命中标签
dealTypes(type){ dealTypes(type){
if(type){ if(type){
@@ -1376,7 +1456,7 @@ export default {
}); });
}); });


console.log(this.outSpeechSkillList);
// console.log(this.outSpeechSkillList);
}, },


// 导出word // 导出word
@@ -2387,6 +2467,110 @@ export default {
background-color: #2671e2 !important; background-color: #2671e2 !important;
border-color: #2671e2 !important; border-color: #2671e2 !important;
} }
/deep/.el-radio-button--small .el-radio-button__inner{
padding: 9px 10px !important;
}
.rateboxcenttit {
width: 100%;
height: 44px;
background: #F8F8F8;
display: flex;
align-items: center;
color: #333333;
font-size: 16px;
&>div {
flex:1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-align: center;
}
}
.ratebutton {
width: 68px;
height: 26px;
background: #2671E2;
border-radius: 4px;
font-size: 14px;
font-weight: 400;
color: #FFFFFF;
text-align: center;
line-height: 26px;
margin:0 auto;
}

.ratebutton1 {
width: 68px;
height: 26px;
background: #F2F2F2;
border-radius: 4px;
font-size: 14px;
font-weight: 400;
color: #999999;
text-align: center;
line-height: 26px;
margin:0 auto;
}

/*话术*/
.huashu-title{
background: #fff;
font-size: 16px;
line-height: 20px;
padding: 10px 20px;
}
.huashu{
width: 400px;
padding: 0 20px 30px;
display: flex;
align-items: center;
flex-wrap: wrap;
background: #fff;
.huashu-item{
margin-right: 20px;
height: 30px;
line-height: 30px;
display: flex;
align-items: center;
.text{
font-size: 14px;
color: #666;
margin-left: 5px;

}
}
}
.rateboxcent {
width: 100%;
height: 50px;
border-bottom: 1px solid #F8F8F8;
display: flex;
align-items: center;
color: #666666;
font-size: 14px;
&>div{
flex:1;
text-align: center;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
}

.mydesc{
position: absolute;
bottom: 0;
left: 0;
right: 0;
padding: 0 10px;
height: 40px;
border-top: 1px solid #ccc;
display: flex;
justify-content: space-between;
align-items: center;
background: #fff;
}
/*对话的标签标识*/ /*对话的标签标识*/
.content123 .showmark{ .content123 .showmark{
font-size: 14px; font-size: 14px;
@@ -2426,9 +2610,10 @@ export default {
} }


#zxldiv { #zxldiv {
height: calc(70vh - 220px);
// padding-bottom: 50px;
overflow-y: scroll; overflow-y: scroll;
// height: 100%;
height: calc(70vh - 248px);
position: relative;
} }


.biaotibox { .biaotibox {
@@ -2481,7 +2666,6 @@ export default {
width: 100%; width: 100%;
height: 95%; height: 95%;
min-width: 1000px; min-width: 1000px;
// padding-bottom: 100px;
background: #ffffff; background: #ffffff;
} }


@@ -2562,7 +2746,6 @@ export default {
.center2 .text .avatar { .center2 .text .avatar {
width: 34px; width: 34px;
height: 34px; height: 34px;
// background-color: #ccc;
border-radius: 50%; border-radius: 50%;
display: flex; display: flex;
justify-content: center; justify-content: center;
@@ -2650,7 +2833,6 @@ export default {
height: 100%; height: 100%;
text-align: center; text-align: center;
line-height: 38px; line-height: 38px;
// color: #ffffff;
font-size: 24px; font-size: 24px;
border-radius: 4px; border-radius: 4px;
} }
@@ -2726,7 +2908,6 @@ export default {
width: 94%; width: 94%;
margin: 0 auto; margin: 0 auto;
padding-bottom: 12px; padding-bottom: 12px;
// border-bottom: 1px solid #e0e0e0;
} }


.intentionChe { .intentionChe {
@@ -2985,7 +3166,6 @@ export default {


.aplayer { .aplayer {
box-shadow: none; box-shadow: none;
/*width: 80%;*/
width: 95.3%; width: 95.3%;
} }


@@ -3102,13 +3282,7 @@ export default {
.searchbox54 .avatar { .searchbox54 .avatar {
width: 40px; width: 40px;
height: 40px; height: 40px;
/*background-color: #f2f2f2;*/
// background-color: #ccc;
border-radius: 4px; border-radius: 4px;
// margin-left: 5px;
// display: flex;
// justify-content: center;
// align-items: center;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
@@ -3117,13 +3291,7 @@ export default {
.searchbox54 .avatar div { .searchbox54 .avatar div {
width: 40px; width: 40px;
height: 40px; height: 40px;
/*background-color: #f2f2f2;*/
// background-color: #ccc;
border-radius: 4px; border-radius: 4px;
// margin-left: 5px;
// display: flex;
// justify-content: center;
// align-items: center;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: center;


Loading…
Cancel
Save