@@ -728,6 +728,44 @@ | |||
<div v-if="role == 2"> | |||
<!-- 卡片部分 --> | |||
<div class="page-container"> | |||
<div class="pagechen"> | |||
<div class="pageboxtitle1">平均执行率</div> | |||
<div class="pageboxtitle2"> | |||
<div class="span1">{{ sysSec.avgFration || 0 }}</div> | |||
<div class="span2"> | |||
<span class="span2-1"> | |||
环比:{{ sysCompare.avgFration || 0 }}</span | |||
> | |||
<span class="span2-2" v-if="orderBy.avgFration > 0"> | |||
<i class="el-icon-top" style="color: red"></i> | |||
{{ orderBy.avgFration || 0 }}% | |||
</span> | |||
<span class="span2-3" v-if="orderBy.avgFration < 0"> | |||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||
{{ orderBy.avgFration || 0 }}% | |||
</span> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="pagechen"> | |||
<div class="pageboxtitle1">平均接待时长(分钟)</div> | |||
<div class="pageboxtitle2"> | |||
<div class="span1">{{ sysSec.receptionTimeWithAvg || 0 }}</div> | |||
<div class="span2"> | |||
<span class="span2-1"> | |||
环比:{{ sysCompare.receptionTimeWithAvg || 0 }}</span | |||
> | |||
<span class="span2-2" v-if="orderBy.receptionTimeWithAvg > 0"> | |||
<i class="el-icon-top" style="color: red"></i> | |||
{{ orderBy.receptionTimeWithAvg || 0 }} | |||
</span> | |||
<span class="span2-3" v-if="orderBy.receptionTimeWithAvg < 0"> | |||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||
{{ orderBy.receptionTimeWithAvg || 0 }} | |||
</span> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="pagechen"> | |||
<div class="pageboxtitle1">接待量</div> | |||
<div class="pageboxtitle2"> | |||
@@ -747,7 +785,6 @@ | |||
</div> | |||
</div> | |||
</div> | |||
<div class="pagechen"> | |||
<div class="pageboxtitle1">有效接待</div> | |||
<div class="pageboxtitle2"> | |||
@@ -786,6 +823,11 @@ | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div style="margin-top: 20px" class="page-container"> | |||
<div class="pagechen"> | |||
<div class="pageboxtitle1">接待时长(小时)</div> | |||
@@ -807,47 +849,6 @@ | |||
</div> | |||
</div> | |||
<div class="pagechen"> | |||
<div class="pageboxtitle1">平均接待时长(分钟)</div> | |||
<div class="pageboxtitle2"> | |||
<div class="span1">{{ sysSec.receptionTimeWithAvg || 0 }}</div> | |||
<div class="span2"> | |||
<span class="span2-1"> | |||
环比:{{ sysCompare.receptionTimeWithAvg || 0 }}</span | |||
> | |||
<span class="span2-2" v-if="orderBy.receptionTimeWithAvg > 0"> | |||
<i class="el-icon-top" style="color: red"></i> | |||
{{ orderBy.receptionTimeWithAvg || 0 }} | |||
</span> | |||
<span class="span2-3" v-if="orderBy.receptionTimeWithAvg < 0"> | |||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||
{{ orderBy.receptionTimeWithAvg || 0 }} | |||
</span> | |||
</div> | |||
</div> | |||
</div> | |||
</div> | |||
<div style="margin-top: 20px" class="page-container"> | |||
<div class="pagechen"> | |||
<div class="pageboxtitle1">平均执行率</div> | |||
<div class="pageboxtitle2"> | |||
<div class="span1">{{ sysSec.avgFration || 0 }}</div> | |||
<div class="span2"> | |||
<span class="span2-1"> | |||
环比:{{ sysCompare.avgFration || 0 }}</span | |||
> | |||
<span class="span2-2" v-if="orderBy.avgFration > 0"> | |||
<i class="el-icon-top" style="color: red"></i> | |||
{{ orderBy.avgFration || 0 }}% | |||
</span> | |||
<span class="span2-3" v-if="orderBy.avgFration < 0"> | |||
<i class="el-icon-bottom" style="color: #25ceba"></i> | |||
{{ orderBy.avgFration || 0 }}% | |||
</span> | |||
</div> | |||
</div> | |||
</div> | |||
<div class="pagechen"> | |||
<div class="pageboxtitle1">违禁接待次数</div> | |||
<div class="pageboxtitle2"> | |||
@@ -562,6 +562,22 @@ | |||
> | |||
文本优化 | |||
</div> | |||
<div style="width: 100%; display: flex; height: 32px;justify-content: space-between;padding: 0 15px; margin-bottom: 20px;"> | |||
<div style="width: 100%; height: 100%;display: flex;justify-content: center;"> | |||
<!-- <input | |||
v-model="searchText" | |||
class="inputclass" | |||
type="text" | |||
placeholder="请输入关键词搜索" | |||
/> --> | |||
<el-input placeholder="请输入关键词搜索" v-model="searchText" style="width:300px"> | |||
<el-button slot="append" icon="el-icon-search"></el-button> | |||
</el-input> | |||
</div> | |||
<!-- <div style="height: 100%"> | |||
<div class="inputclass2" style="margin: 0 auto;width: 110px;">搜索</div> | |||
</div> --> | |||
</div> | |||
<div | |||
class="center3" | |||
style=" | |||
@@ -576,7 +592,7 @@ | |||
class="text" | |||
:data-bg="item.bg" | |||
:data-ed="item.ed" | |||
v-for="(item, index) in optimizetext" | |||
v-for="(item, index) in optimizetext1" | |||
:key="index" | |||
:class="{ actRight: item.speaker % 2 == 0 }" | |||
:data-speaker="item.speaker" | |||
@@ -586,7 +602,7 @@ | |||
>纠正</span | |||
> | |||
| |||
<span style="cursor: pointer" @click="optimdel(index)">删除</span> | |||
<span style="cursor: pointer" @click="optimdel(item,index)">删除</span> | |||
<span | |||
style="cursor: pointer; margin-left: 10px" | |||
@click="editRole(item, index)" | |||
@@ -761,6 +777,7 @@ import JSZipUtils from "jszip-utils"; | |||
import { saveAs } from "file-saver"; | |||
export default { | |||
name:"receiveIndex", | |||
data() { | |||
return { | |||
recordsText:[], | |||
@@ -825,6 +842,7 @@ export default { | |||
textItself: "", //原词内容 | |||
Acquirecustomerintentlist2: [], //校准列表 | |||
dialogFormtext: false, | |||
optimizetextTemp: [], //文本优化list | |||
optimizetext: [], //文本优化list | |||
optimizeobj: {}, //文本优化obj | |||
textarea: "", | |||
@@ -843,6 +861,7 @@ export default { | |||
rec_index_textyh: false, | |||
isNum:false, | |||
outSpeechSkillList: [], // 导出话术列表 | |||
searchText:"", | |||
}; | |||
}, | |||
created() { | |||
@@ -863,6 +882,11 @@ export default { | |||
}, | |||
computed: { | |||
...mapGetters(["permissions"]), | |||
optimizetext1(){ | |||
return this.optimizetext.filter(value => { | |||
return value.onebest.match(this.searchText) | |||
}) | |||
} | |||
}, | |||
destroyed() { | |||
this.aplayer.destroy(); | |||
@@ -898,6 +922,27 @@ export default { | |||
}, | |||
methods: { | |||
// searchTextFun(){ | |||
// let arr = this.optimizetext | |||
// if(this.searchText==""){ | |||
// this.optimizetext = arr | |||
// }else{ | |||
// this.optimizetext = this.optimizetext.filter(item=>{ | |||
// return item.onebest.match(this.searchText) | |||
// }) | |||
// } | |||
// let arr = this.optimizetext.filter((item,index)=>{ | |||
// var reg = new RegExp(this.searchText); | |||
// return item.onebest.match(reg); | |||
// }) | |||
// let tempArr = [] | |||
// for (let i = 0; i < arr.length; i++) { | |||
// tempArr.push(arr[i]); | |||
// console.log(tempArr) | |||
// } | |||
// this.optimizetext = tempArr | |||
// }, | |||
// 格式化话术内容 | |||
formatAudioList() { | |||
let list = this.arr[0].audioContent | |||
@@ -1011,7 +1056,7 @@ export default { | |||
customerId: this.fileId, | |||
}, | |||
}).then((res) => { | |||
this.optimizetext[this.roleidx].speaker = this.roleFlag / 1 + 1; | |||
this.optimizetext1[this.roleidx].speaker = this.roleFlag / 1 + 1; | |||
this.roleVisible = false; | |||
}); | |||
}, | |||
@@ -1159,6 +1204,7 @@ export default { | |||
.then((res) => { | |||
this.dialogFormtext = false; | |||
this.$message.success("优化完成"); | |||
if (i == 1) { | |||
this.init(); | |||
} | |||
@@ -1166,7 +1212,7 @@ export default { | |||
}, | |||
//文本编辑确认 | |||
summunct() { | |||
this.optimizetext[this.textareaindex].onebest = this.textarea; | |||
this.optimizetext1[this.textareaindex].onebest = this.textarea; | |||
this.texteditorishow = false; | |||
}, | |||
//文本编辑 | |||
@@ -1177,7 +1223,7 @@ export default { | |||
this.texteditorishow = true; | |||
}, | |||
//文本优化删除 | |||
optimdel(i) { | |||
optimdel(t,i) { | |||
console.log(i); | |||
var that = this; | |||
this.$confirm("此操作将删除该条, 是否继续?", "提示", { | |||
@@ -1186,7 +1232,8 @@ export default { | |||
type: "warning", | |||
}) | |||
.then(() => { | |||
that.optimizetext.splice(i, 1); | |||
this.optimizetext = this.optimizetext.filter(tt=>tt.onebest!=t.onebest) | |||
this.$forceUpdate() | |||
this.$message({ | |||
type: "success", | |||
message: "删除成功!", | |||
@@ -1203,12 +1250,14 @@ export default { | |||
texttap() { | |||
this.optimizeobj = {}; | |||
this.optimizetext = []; | |||
this.optimizetextTemp = []; | |||
this.$api.http | |||
.findText({ corpusId: this.arr[this.aplayerId].id }) | |||
.then((res) => { | |||
console.log(res, "获取文本"); | |||
this.optimizeobj = res.data; | |||
this.optimizetext = JSON.parse(res.data.textContent); | |||
this.optimizetextTemp = JSON.parse(res.data.textContent); | |||
this.dialogFormtext = true; | |||
}); | |||
}, | |||
@@ -1459,8 +1508,8 @@ export default { | |||
}else{ | |||
this.$refs.form.validate((valid) => { | |||
if (valid) { | |||
this.form.correctWord = this.form.correctWord.replace(/[^\w\u4e00-\u9fa5]/g,"") | |||
this.form.wrongWord = this.form.wrongWord.replace(/[^\w\u4e00-\u9fa5]/g,"") | |||
// this.form.correctWord = this.form.correctWord.replace(/[^\w\u4e00-\u9fa5]/g,"") | |||
// this.form.wrongWord = this.form.wrongWord.replace(/[^\w\u4e00-\u9fa5]/g,"") | |||
this.dialogFormVisible = false; | |||
let sas = this.textItself.replace( | |||
this.form.wrongWord, | |||
@@ -246,24 +246,29 @@ | |||
</el-table-column> | |||
<el-table-column prop="deptName" label="归属团队" align="center"> | |||
</el-table-column> | |||
<el-table-column prop="receptionCount" label="接待量" align="center"> | |||
<el-table-column prop="fraction" label="平均执行率" align="center" sortable> | |||
</el-table-column> | |||
<el-table-column prop="receptionCount" label="接待量" align="center" sortable> | |||
</el-table-column> | |||
<el-table-column | |||
prop="activeCustomer" | |||
label="有效接待" | |||
align="center" | |||
sortable | |||
> | |||
</el-table-column> | |||
<el-table-column | |||
prop="prohibitedCustomer" | |||
label="违禁接待次数" | |||
align="center" | |||
sortable | |||
> | |||
</el-table-column> | |||
<el-table-column | |||
prop="sumDuration" | |||
label="接待时长(分)" | |||
align="center" | |||
sortable | |||
> | |||
<template slot-scope="{ row }"> | |||
{{ Math.floor(row.sumDuration / 60) }} | |||
@@ -273,10 +278,10 @@ | |||
prop="prohibitedZb" | |||
label="违禁接待占比" | |||
align="center" | |||
sortable | |||
> | |||
</el-table-column> | |||
<el-table-column prop="fraction" label="平均执行率" align="center"> | |||
</el-table-column> | |||
<el-table-column | |||
v-for="(item, idx) in tablist1" | |||
:key="idx" | |||
@@ -10,8 +10,8 @@ | |||
// const url = 'http://62.234.122.43:9999' //正式 | |||
// const url = 'http://81.70.55.170:9999' // 新测试服务器IP | |||
// const url = 'http://192.168.31.89:9999' //sh | |||
const url = 'https://zanyong.hfju.com' // 正式域名 | |||
// const url = 'http://81.70.55.170:9999' // 新测试 | |||
// const url = 'https://zanyong.hfju.com' // 正式域名 | |||
const url = 'http://81.70.55.170:9999' // 新测试 | |||
// const url = 'http://82.156.35.22:9999' // 新正式ip | |||
const CompressionWebpackPlugin = require('compression-webpack-plugin') | |||
const productionGzipExtensions = ['js', 'css'] | |||