@@ -2,9 +2,9 @@ | |||||
* 小程序配置文件 | * 小程序配置文件 | ||||
*/ | */ | ||||
// 此处主机域名修改成腾讯云解决方案分配的域名 | // 此处主机域名修改成腾讯云解决方案分配的域名 | ||||
// var host = 'http://121.42.63.138:9091/autoSR/api'; // 测试站 | |||||
var host = 'http://121.42.63.138:9091/autoSR/api'; // 测试站 | |||||
// var host = 'http://192.168.31.163:8080/autoSR/api'; // 长龙 | // var host = 'http://192.168.31.163:8080/autoSR/api'; // 长龙 | ||||
var host = 'http://192.168.31.128:8080/autoSR/api'; // 佳豪 | |||||
// var host = 'http://192.168.31.128:8080/autoSR/api'; // 佳豪 | |||||
// var host = 'http://10.2.1.104:8081/autoSR/api'; // 刘敏 | // var host = 'http://10.2.1.104:8081/autoSR/api'; // 刘敏 | ||||
// var host = 'https://zkgj.quhouse.com/api'; // 质控正式 | // var host = 'https://zkgj.quhouse.com/api'; // 质控正式 | ||||
// var host = 'https://hfju.com/api'; // 数智正式 | // var host = 'https://hfju.com/api'; // 数智正式 | ||||
@@ -247,33 +247,46 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="cenisbox"> | <view class="cenisbox"> | ||||
<!-- 评分模块 --> | |||||
<view class="rate-box"> | |||||
<view class="title">总执行率 {{totalRate}}%</view> | |||||
<view v-for="(item,index) in ratelist" :key="index" class="u-m-b-14" style="margin-top: 30rpx;"> | |||||
<view class="level1"> | |||||
<view class="level-name u-line-1"> | |||||
{{item.name}} | |||||
</view> | |||||
<view class="level-progress"> | |||||
<view class="color" :style="{width: item.ratepercent/item.rate*100+'%'}"></view> | |||||
</view> | |||||
<view class="level-rate">{{((item.ratepercent/item.rate).toFixed(2)*100).toFixed()}}%</view> | |||||
<image v-if="!item.show" class="arrow rotatearrow" @click="changeshow(item,1)" | |||||
src="/static/images/down.png" mode="" /> | |||||
<image v-else class="arrow" @click="changeshow(item,0)" src="/static/images/up.png" | |||||
mode="" /> | |||||
<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: 20rpx;">指标</view> | |||||
<view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 170rpx;">执行率</view> | |||||
</view> | |||||
<view class="Level-box" v-for="(item,index) in ratelist" :key="index"> | |||||
<view class="Level1che"> | |||||
<view class="title1">{{item.name}}</view> | |||||
<view class="leve1-jindu"> | |||||
<view class="jindutiao"> | |||||
<view class="huanxing" :style="{width: item.ratepercent/item.rate*100+'%'}"></view> | |||||
<view class="text">{{((item.ratepercent/item.rate).toFixed(2)*100).toFixed()}}%</view> | |||||
</view> | </view> | ||||
<view class="level1-subbox" v-if="item.show"> | |||||
<view class="sub-name" v-for="(subitem,i) in item.children" :key="i"> | |||||
<view class="subitem-name u-line-1" @tap="clickaudeopal(subitem)">{{subitem.name}}</view> | |||||
<image class="checkimg" v-if="!subitem.selected" | |||||
src="/static/images/rate-checked.png" mode="" /> | |||||
<image class="checkimg" v-else src="/static/images/rate-nocheck.png" mode="" /> | |||||
</view> | |||||
</view> | |||||
<view class="jiantobox"> | |||||
<image @click="changeshow(item,1)" v-if="!item.show" class="arrow rotatearrow" src="/static/images/down.png" mode="" /> | |||||
<image @click="changeshow(item,0)" v-else class="arrow" src="/static/images/up.png" mode="" /> | |||||
</view> | |||||
</view> | |||||
<view class="hhhbox" v-if="item.show" v-for="(subitem,i) in item.children" :key="i"> | |||||
<view class="Level2che" > | |||||
<view class="title1" @tap="clickaudeopal(subitem)">{{subitem.name}}</view> | |||||
<view class="leve1-jindu" @tap="clickaudeopal(subitem)"> | |||||
<view class="zhixing" v-if="!subitem.selected">已执行</view> | |||||
<view class="zhixing2" v-else>未执行</view> | |||||
</view> | |||||
<view class="jiantobox"> | |||||
<image @click="changeshow2(subitem,1)" v-if="!subitem.show" class="arrow rotatearrow" src="/static/images/down.png" mode="" /> | |||||
<image @click="changeshow2(subitem,0)" v-else class="arrow" src="/static/images/up.png" mode="" /> | |||||
</view> | |||||
</view> | |||||
<view class="hsnrtest" v-if="subitem.show">话术内容</view> | |||||
<view class="Level3che" @tap="clickaudeopal(che)" v-if="subitem.show" v-for="(che,inc) in subitem.children" :key='inc'> | |||||
<view class="title1" >{{inc+1}}.{{che.name}}</view> | |||||
<view class="jiantobox"> | |||||
<image v-if="che.selected==0" class="arrow" src="/static/images/rate-checked.png" mode="" /> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view v-if="subitem.show" style="width: 100%;height: 30rpx;"></view> | |||||
</view> | </view> | ||||
</view> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
@@ -1213,6 +1226,13 @@ | |||||
item.show = false | item.show = false | ||||
} | } | ||||
}, | }, | ||||
changeshow2(item, type){ | |||||
if (type == 1) { | |||||
item.show = true | |||||
} else { | |||||
item.show = false | |||||
} | |||||
}, | |||||
// 获取评分 | // 获取评分 | ||||
getRatelist() { | getRatelist() { | ||||
if (this.ratelist.length == 0) { | if (this.ratelist.length == 0) { | ||||
@@ -1224,7 +1244,6 @@ | |||||
}).then(res => { | }).then(res => { | ||||
if (res.length) { | if (res.length) { | ||||
let level1 = [] | let level1 = [] | ||||
let level2rate = 0 | |||||
res.forEach(item => { | res.forEach(item => { | ||||
if (item.pid == 0) { | if (item.pid == 0) { | ||||
level1.push({ | level1.push({ | ||||
@@ -1236,13 +1255,9 @@ | |||||
ratepercent: 0, | ratepercent: 0, | ||||
children: [] | children: [] | ||||
}) | }) | ||||
} else { | |||||
if (item.selected == 0) { | |||||
level2rate += item.fraction | |||||
} | |||||
} | |||||
} | |||||
}) | }) | ||||
this.totalRate = level2rate | |||||
// this.totalRate = level2rate; | |||||
res.forEach(subitem => { | res.forEach(subitem => { | ||||
let subitempid = subitem.pid | let subitempid = subitem.pid | ||||
level1.forEach(item => { | level1.forEach(item => { | ||||
@@ -1255,12 +1270,31 @@ | |||||
rate: subitem.fraction, | rate: subitem.fraction, | ||||
selected: subitem.selected, | selected: subitem.selected, | ||||
name: subitem.name, | name: subitem.name, | ||||
marketingId:subitem.marketingId | |||||
show: false, | |||||
marketingId:subitem.marketingId, | |||||
children: [] | |||||
}) | }) | ||||
} | } | ||||
}) | }) | ||||
}) | }) | ||||
res.forEach(subitem => { | |||||
let subitempid = subitem.pid | |||||
level1.forEach(chen=>{ | |||||
chen.children.forEach(zxc=>{ | |||||
if(subitempid == zxc.marketingId){ | |||||
zxc.children.push({ | |||||
id: subitem.id, | |||||
rate: subitem.fraction, | |||||
selected: subitem.selected, | |||||
name: subitem.name, | |||||
marketingId:subitem.marketingId, | |||||
}) | |||||
} | |||||
}) | |||||
}) | |||||
}) | |||||
level1[0].show = true; | level1[0].show = true; | ||||
level1[0].children[0].show = true; | |||||
this.ratelist = level1 | this.ratelist = level1 | ||||
} | } | ||||
setTimeout(function() { | setTimeout(function() { | ||||
@@ -1866,103 +1900,6 @@ | |||||
height: 34upx; | height: 34upx; | ||||
} | } | ||||
} | } | ||||
// 评分 | |||||
.rate-box { | |||||
padding: 10rpx 20rpx; | |||||
.date { | |||||
width: 300rpx; | |||||
height: 33rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 400; | |||||
color: #333333; | |||||
line-height: 33rpx; | |||||
letter-spacing: 1rpx; | |||||
margin-bottom: 8rpx; | |||||
} | |||||
.title { | |||||
width: 100%; | |||||
height: 42rpx; | |||||
font-size: 30rpx; | |||||
font-weight: 500; | |||||
color: #333333; | |||||
line-height: 42rpx; | |||||
letter-spacing: 2rpx; | |||||
margin-bottom: 20rpx; | |||||
} | |||||
.level1 { | |||||
display: flex; | |||||
align-items: center; | |||||
.level-name { | |||||
width: 104rpx; | |||||
height: 33rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 500; | |||||
color: #333333; | |||||
line-height: 33rpx; | |||||
letter-spacing: 1rpx; | |||||
margin-right: 10rpx; | |||||
} | |||||
.level-progress { | |||||
flex: 1; | |||||
border-radius: 11rpx; | |||||
height: 21rpx; | |||||
background-color: #F2F2F2; | |||||
position: relative; | |||||
.color { | |||||
width: 0; | |||||
position: absolute; | |||||
top: 0; | |||||
left: 0; | |||||
height: 21rpx; | |||||
border-radius: 11rpx 0 0 11rpx; | |||||
background-color: #60D7A0; | |||||
} | |||||
} | |||||
.level-rate { | |||||
width: 65rpx; | |||||
height: 33rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 500; | |||||
color: #333333; | |||||
line-height: 33rpx; | |||||
letter-spacing: 1rpx; | |||||
margin: 0 20rpx 0 15rpx; | |||||
} | |||||
.arrow { | |||||
width: 34rpx; | |||||
height:26rpx; | |||||
padding: 5rpx 20rpx; | |||||
} | |||||
.rotatearrow { | |||||
transform: rotate(270deg); | |||||
} | |||||
} | |||||
.level1-subbox { | |||||
display: flex; | |||||
margin-top: 20rpx; | |||||
flex-wrap: wrap; | |||||
.sub-name { | |||||
width: 50%; | |||||
display: flex; | |||||
margin-bottom: 18rpx; | |||||
.subitem-name { | |||||
width: 104rpx; | |||||
height: 33rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 400; | |||||
color: #999999; | |||||
line-height: 33rpx; | |||||
letter-spacing: 1rpx; | |||||
margin-right: 12rpx; | |||||
} | |||||
.checkimg { | |||||
width: 27rpx; | |||||
height: 27rpx; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.jiangshang{ | .jiangshang{ | ||||
color: #2671E2; | color: #2671E2; | ||||
background: #F4F8FD; | background: #F4F8FD; | ||||
@@ -2025,4 +1962,148 @@ | |||||
color: #FFFFFF; | color: #FFFFFF; | ||||
border: none; | border: none; | ||||
} | } | ||||
.Level-box{ | |||||
padding-bottom: 2rpx; | |||||
.hhhbox{ | |||||
width:100%; | |||||
padding-left: 30rpx; | |||||
padding-right: 30rpx; | |||||
border-bottom: 1rpx solid #E0E0E0; | |||||
background: #FFFFFF; | |||||
// padding-bottom: 32rpx; | |||||
.hsnrtest{ | |||||
height: 24rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 400; | |||||
color: #666666; | |||||
line-height: 24rpx; | |||||
} | |||||
.Level3che{ | |||||
width:100%; | |||||
height:28rpx; | |||||
display: flex; | |||||
line-height: 28rpx; | |||||
align-items: center; | |||||
margin-top: 30rpx; | |||||
.title1{ | |||||
flex: 1; | |||||
font-size: 28rpx; | |||||
color:#2671E2; | |||||
font-weight: 400; | |||||
} | |||||
.jiantobox{ | |||||
width: 30rpx; | |||||
height: 30rpx; | |||||
display: flex; | |||||
align-items: center; | |||||
.arrow{ | |||||
width: 28rpx; | |||||
height:28rpx; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.Level2che{ | |||||
width:100%; | |||||
height: 88rpx; | |||||
display: flex; | |||||
line-height: 88rpx; | |||||
align-items: center; | |||||
.title1{ | |||||
flex: 2; | |||||
font-size: 28rpx; | |||||
color: #333333; | |||||
font-weight: 400; | |||||
} | |||||
.leve1-jindu{ | |||||
flex: 3; | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
.zhixing{ | |||||
width: 108rpx; | |||||
height: 44rpx; | |||||
background: #2671E2; | |||||
border-radius: 4rpx; | |||||
font-size: 28rpx; | |||||
text-align: center; | |||||
line-height: 44rpx; | |||||
color: #FFFFFF; | |||||
} | |||||
.zhixing2{ | |||||
width: 108rpx; | |||||
height: 44rpx; | |||||
background: #F8F8F8; | |||||
border-radius: 4rpx; | |||||
font-size: 28rpx; | |||||
text-align: center; | |||||
line-height: 44rpx; | |||||
color: #999999; | |||||
} | |||||
} | |||||
.jiantobox{ | |||||
width: 30rpx; | |||||
height: 30rpx; | |||||
display: flex; | |||||
align-items: center; | |||||
.arrow{ | |||||
width: 30rpx; | |||||
height:18rpx; | |||||
} | |||||
} | |||||
} | |||||
.Level1che{ | |||||
width:100%; | |||||
height: 94rpx; | |||||
background: #E0E0E0; | |||||
display: flex; | |||||
line-height: 94rpx; | |||||
align-items: center; | |||||
padding-left: 30rpx; | |||||
padding-right: 30rpx; | |||||
.title1{ | |||||
flex: 2; | |||||
font-size: 30rpx; | |||||
color: #333333; | |||||
font-weight: 400; | |||||
} | |||||
.leve1-jindu{ | |||||
flex: 3; | |||||
.jindutiao{ | |||||
width: 96%; | |||||
height: 28rpx; | |||||
background: #D5EEE2; | |||||
line-height: 28rpx; | |||||
border-radius: 14rpx; | |||||
position: relative; | |||||
.huanxing{ | |||||
height: 100%; | |||||
background: #4FC78F; | |||||
border-radius: 14rpx; | |||||
} | |||||
.text{ | |||||
position: absolute; | |||||
top: 0rpx; | |||||
right: 0rpx; | |||||
font-size: 28rpx; | |||||
font-weight: 400; | |||||
color: #333333; | |||||
} | |||||
} | |||||
} | |||||
.jiantobox{ | |||||
width: 30rpx; | |||||
height: 30rpx; | |||||
display: flex; | |||||
align-items: center; | |||||
.arrow{ | |||||
width: 30rpx; | |||||
height:18rpx; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.rotatearrow { | |||||
transform: rotate(270deg); | |||||
} | |||||
</style> | </style> |
@@ -157,6 +157,7 @@ | |||||
<view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 20rpx;">指标</view> | <view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 20rpx;">指标</view> | ||||
<view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 170rpx;">执行率</view> | <view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 170rpx;">执行率</view> | ||||
</view> | </view> | ||||
<view v-if="ratelist.length==0" style="width: 100%;height: 100%;display: flex;align-items: center;"> | <view v-if="ratelist.length==0" style="width: 100%;height: 100%;display: flex;align-items: center;"> | ||||
<view style="width: 100%;padding-top: 60rpx;"> | <view style="width: 100%;padding-top: 60rpx;"> | ||||
<view style="width: 100%;text-align: center;"> | <view style="width: 100%;text-align: center;"> | ||||
@@ -165,33 +166,45 @@ | |||||
<view style="text-align: center;width: 100%;margin-top: 20rpx;color: #999999;">暂无数据</view> | <view style="text-align: center;width: 100%;margin-top: 20rpx;color: #999999;">暂无数据</view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
<view v-if="ratelist.length!=0" class="rate-box" style="margin-top: 10rpx;"> | |||||
<!-- <view class="title">总执行率 {{totalRate}}%</view> --> | |||||
<view v-for="(item,index) in ratelist" :key="index" class="u-m-b-14"> | |||||
<view class="level1"> | |||||
<view class="level-name u-line-1"> | |||||
{{item.name}} | |||||
<view class="Level-box" v-if="ratelist.length!=0" v-for="(item,index) in ratelist" :key="index"> | |||||
<view class="Level1che"> | |||||
<view class="title1">{{item.name}}</view> | |||||
<view class="leve1-jindu"> | |||||
<view class="jindutiao"> | |||||
<view class="huanxing" :style="{width: item.ratepercent/item.rate*100+'%'}"></view> | |||||
<view class="text">{{((item.ratepercent/item.rate).toFixed(2)*100).toFixed()}}%</view> | |||||
</view> | </view> | ||||
<view class="level-progress"> | |||||
<view class="color" :style="{width: item.ratepercent/item.rate*100+'%'}"></view> | |||||
</view> | |||||
<view class="jiantobox"> | |||||
<image @click="changeshow(item,1)" v-if="!item.show" class="arrow rotatearrow" src="/static/images/down.png" mode="" /> | |||||
<image @click="changeshow(item,0)" v-else class="arrow" src="/static/images/up.png" mode="" /> | |||||
</view> | |||||
</view> | |||||
<view class="hhhbox" v-if="item.show" v-for="(subitem,i) in item.children" :key="i"> | |||||
<view class="Level2che" > | |||||
<view class="title1" @tap="clickaudeopal(subitem)">{{subitem.name}}</view> | |||||
<view class="leve1-jindu" @tap="clickaudeopal(subitem)"> | |||||
<view class="zhixing" v-if="!subitem.selected">已执行</view> | |||||
<view class="zhixing2" v-else>未执行</view> | |||||
</view> | |||||
<view class="jiantobox"> | |||||
<image @click="changeshow2(subitem,1)" v-if="!subitem.show" class="arrow rotatearrow" src="/static/images/down.png" mode="" /> | |||||
<image @click="changeshow2(subitem,0)" v-else class="arrow" src="/static/images/up.png" mode="" /> | |||||
</view> | </view> | ||||
<view class="level-rate">{{((item.ratepercent/item.rate).toFixed(2)*100).toFixed()}}%</view> | |||||
<image v-if="!item.show" class="arrow rotatearrow" @click="changeshow(item,1)" src="/static/images/down.png" | |||||
mode="" /> | |||||
<image v-else class="arrow" @click="changeshow(item,0)" src="/static/images/up.png" mode="" /> | |||||
</view> | </view> | ||||
<view class="level1-subbox" v-if="item.show"> | |||||
<view class="sub-name" v-for="(subitem,i) in item.children" :key="i"> | |||||
<view class="subitem-name u-line-1" @tap="clickaudeopal(subitem)">{{subitem.name}}</view> | |||||
<image class="checkimg" v-if="!subitem.selected" src="/static/images/rate-checked.png" mode="" /> | |||||
<image class="checkimg" v-else src="/static/images/rate-nocheck.png" mode="" /> | |||||
<view class="hsnrtest" v-if="subitem.show">话术内容</view> | |||||
<view class="Level3che" @tap="clickaudeopal(che)" v-if="subitem.show" v-for="(che,inc) in subitem.children" :key='inc'> | |||||
<view class="title1" >{{inc+1}}.{{che.name}}</view> | |||||
<view class="jiantobox"> | |||||
<image v-if="che.selected==0" class="arrow" src="/static/images/rate-checked.png" mode="" /> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view v-if="subitem.show" style="width: 100%;height: 30rpx;"></view> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | |||||
</view> | |||||
</view> | </view> | ||||
<view class="pon-foot" v-if="buttonisshow"> | <view class="pon-foot" v-if="buttonisshow"> | ||||
@@ -382,6 +395,13 @@ | |||||
item.show = false | item.show = false | ||||
} | } | ||||
}, | }, | ||||
changeshow2(item, type){ | |||||
if (type == 1) { | |||||
item.show = true | |||||
} else { | |||||
item.show = false | |||||
} | |||||
}, | |||||
// 获取评分 | // 获取评分 | ||||
getRatelist() { | getRatelist() { | ||||
this.$u.get("/customer/findzkMByCusId", { | this.$u.get("/customer/findzkMByCusId", { | ||||
@@ -389,7 +409,6 @@ | |||||
}).then(res => { | }).then(res => { | ||||
if (res.length) { | if (res.length) { | ||||
let level1 = [] | let level1 = [] | ||||
let level2rate = 0 | |||||
res.forEach(item => { | res.forEach(item => { | ||||
if (item.pid == 0) { | if (item.pid == 0) { | ||||
level1.push({ | level1.push({ | ||||
@@ -401,13 +420,9 @@ | |||||
ratepercent: 0, | ratepercent: 0, | ||||
children: [] | children: [] | ||||
}) | }) | ||||
} else { | |||||
if (item.selected == 0) { | |||||
level2rate += item.fraction | |||||
} | |||||
} | |||||
} | |||||
}) | }) | ||||
this.totalRate = level2rate | |||||
// this.totalRate = level2rate; | |||||
res.forEach(subitem => { | res.forEach(subitem => { | ||||
let subitempid = subitem.pid | let subitempid = subitem.pid | ||||
level1.forEach(item => { | level1.forEach(item => { | ||||
@@ -420,12 +435,31 @@ | |||||
rate: subitem.fraction, | rate: subitem.fraction, | ||||
selected: subitem.selected, | selected: subitem.selected, | ||||
name: subitem.name, | name: subitem.name, | ||||
marketingId:subitem.marketingId | |||||
show: false, | |||||
marketingId:subitem.marketingId, | |||||
children: [] | |||||
}) | }) | ||||
} | } | ||||
}) | }) | ||||
}) | }) | ||||
res.forEach(subitem => { | |||||
let subitempid = subitem.pid | |||||
level1.forEach(chen=>{ | |||||
chen.children.forEach(zxc=>{ | |||||
if(subitempid == zxc.marketingId){ | |||||
zxc.children.push({ | |||||
id: subitem.id, | |||||
rate: subitem.fraction, | |||||
selected: subitem.selected, | |||||
name: subitem.name, | |||||
marketingId:subitem.marketingId, | |||||
}) | |||||
} | |||||
}) | |||||
}) | |||||
}) | |||||
level1[0].show = true; | level1[0].show = true; | ||||
level1[0].children[0].show = true; | |||||
this.ratelist = level1 | this.ratelist = level1 | ||||
} | } | ||||
}) | }) | ||||
@@ -435,6 +469,263 @@ | |||||
</script> | </script> | ||||
<style lang="scss" scoped> | <style lang="scss" scoped> | ||||
.rotatearrow { | |||||
transform: rotate(270deg); | |||||
} | |||||
// 评分 | |||||
.rate-box { | |||||
padding: 10rpx 20rpx; | |||||
background-color: #FFFFFF; | |||||
.date { | |||||
width: 300rpx; | |||||
height: 33rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 400; | |||||
color: #333333; | |||||
line-height: 33rpx; | |||||
letter-spacing: 1rpx; | |||||
margin-bottom: 8rpx; | |||||
} | |||||
.title { | |||||
width: 100%; | |||||
height: 42rpx; | |||||
font-size: 30rpx; | |||||
font-weight: 500; | |||||
color: #333333; | |||||
line-height: 42rpx; | |||||
letter-spacing: 2rpx; | |||||
margin-bottom: 20rpx; | |||||
} | |||||
.level1 { | |||||
display: flex; | |||||
align-items: center; | |||||
.level-name { | |||||
width: 104rpx; | |||||
height: 33rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 500; | |||||
color: #333333; | |||||
line-height: 33rpx; | |||||
letter-spacing: 1rpx; | |||||
margin-right: 10rpx; | |||||
} | |||||
.level-progress { | |||||
flex: 1; | |||||
border-radius: 11rpx; | |||||
height: 21rpx; | |||||
background-color: #BEE4FF; | |||||
position: relative; | |||||
.color { | |||||
width: 0; | |||||
position: absolute; | |||||
top: 0; | |||||
left: 0; | |||||
height: 21rpx; | |||||
border-radius: 11rpx 0 0 11rpx; | |||||
background-color: #008EF2; | |||||
} | |||||
} | |||||
.level-rate { | |||||
width: 65rpx; | |||||
height: 33rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 500; | |||||
color: #333333; | |||||
line-height: 33rpx; | |||||
letter-spacing: 1rpx; | |||||
margin: 0 20rpx 0 15rpx; | |||||
} | |||||
.arrow { | |||||
width: 37rpx; | |||||
height: 21rpx; | |||||
padding: 5rpx 20rpx; | |||||
} | |||||
.rotatearrow { | |||||
transform: rotate(270deg); | |||||
} | |||||
} | |||||
.level1-subbox { | |||||
display: flex; | |||||
margin-top: 20rpx; | |||||
flex-wrap: wrap; | |||||
.sub-name { | |||||
width: 50%; | |||||
display: flex; | |||||
margin-bottom: 18rpx; | |||||
.subitem-name { | |||||
width: 104rpx; | |||||
height: 33rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 400; | |||||
color: #999999; | |||||
line-height: 33rpx; | |||||
letter-spacing: 1rpx; | |||||
margin-right: 12rpx; | |||||
} | |||||
.checkimg { | |||||
width: 27rpx; | |||||
height: 27rpx; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.Level-box{ | |||||
padding-bottom: 2rpx; | |||||
.hhhbox{ | |||||
width:100%; | |||||
padding-left: 30rpx; | |||||
padding-right: 30rpx; | |||||
border-bottom: 1rpx solid #E0E0E0; | |||||
background: #FFFFFF; | |||||
// padding-bottom: 32rpx; | |||||
.hsnrtest{ | |||||
height: 24rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 400; | |||||
color: #666666; | |||||
line-height: 24rpx; | |||||
} | |||||
.Level3che{ | |||||
width:100%; | |||||
height:28rpx; | |||||
display: flex; | |||||
line-height: 28rpx; | |||||
align-items: center; | |||||
margin-top: 30rpx; | |||||
.title1{ | |||||
flex: 1; | |||||
font-size: 28rpx; | |||||
color:#2671E2; | |||||
font-weight: 400; | |||||
} | |||||
.jiantobox{ | |||||
width: 30rpx; | |||||
height: 30rpx; | |||||
display: flex; | |||||
align-items: center; | |||||
.arrow{ | |||||
width: 28rpx; | |||||
height:28rpx; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.Level2che{ | |||||
width:100%; | |||||
height: 88rpx; | |||||
display: flex; | |||||
line-height: 88rpx; | |||||
align-items: center; | |||||
.title1{ | |||||
flex: 2; | |||||
font-size: 28rpx; | |||||
color: #333333; | |||||
font-weight: 400; | |||||
} | |||||
.leve1-jindu{ | |||||
flex: 3; | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
.zhixing{ | |||||
width: 108rpx; | |||||
height: 44rpx; | |||||
background: #2671E2; | |||||
border-radius: 4rpx; | |||||
font-size: 28rpx; | |||||
text-align: center; | |||||
line-height: 44rpx; | |||||
color: #FFFFFF; | |||||
} | |||||
.zhixing2{ | |||||
width: 108rpx; | |||||
height: 44rpx; | |||||
background: #F8F8F8; | |||||
border-radius: 4rpx; | |||||
font-size: 28rpx; | |||||
text-align: center; | |||||
line-height: 44rpx; | |||||
color: #999999; | |||||
} | |||||
} | |||||
.jiantobox{ | |||||
width: 30rpx; | |||||
height: 30rpx; | |||||
display: flex; | |||||
align-items: center; | |||||
.arrow{ | |||||
width: 30rpx; | |||||
height:18rpx; | |||||
} | |||||
} | |||||
} | |||||
.Level1che{ | |||||
width:100%; | |||||
height: 94rpx; | |||||
background: #E0E0E0; | |||||
display: flex; | |||||
line-height: 94rpx; | |||||
align-items: center; | |||||
padding-left: 30rpx; | |||||
padding-right: 30rpx; | |||||
.title1{ | |||||
flex: 2; | |||||
font-size: 30rpx; | |||||
color: #333333; | |||||
font-weight: 400; | |||||
} | |||||
.leve1-jindu{ | |||||
flex: 3; | |||||
.jindutiao{ | |||||
width: 96%; | |||||
height: 28rpx; | |||||
background: #D5EEE2; | |||||
line-height: 28rpx; | |||||
border-radius: 14rpx; | |||||
position: relative; | |||||
.huanxing{ | |||||
height: 100%; | |||||
background: #4FC78F; | |||||
border-radius: 14rpx; | |||||
} | |||||
.text{ | |||||
position: absolute; | |||||
top: 0rpx; | |||||
right: 0rpx; | |||||
font-size: 28rpx; | |||||
font-weight: 400; | |||||
color: #333333; | |||||
} | |||||
} | |||||
} | |||||
.jiantobox{ | |||||
width: 30rpx; | |||||
height: 30rpx; | |||||
display: flex; | |||||
align-items: center; | |||||
.arrow{ | |||||
width: 30rpx; | |||||
height:18rpx; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.cccccc{ | .cccccc{ | ||||
text-align: center; | text-align: center; | ||||
height: 140rpx; | height: 140rpx; | ||||
@@ -479,116 +770,6 @@ | |||||
height: 100%; | height: 100%; | ||||
background: #F8F8F8; | background: #F8F8F8; | ||||
} | } | ||||
// 评分 | |||||
.rate-box { | |||||
padding: 10rpx 20rpx; | |||||
background-color: #FFFFFF; | |||||
.date { | |||||
width: 300rpx; | |||||
height: 33rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 400; | |||||
color: #333333; | |||||
line-height: 33rpx; | |||||
letter-spacing: 1rpx; | |||||
margin-bottom: 8rpx; | |||||
} | |||||
.title { | |||||
width: 100%; | |||||
height: 42rpx; | |||||
font-size: 30rpx; | |||||
font-weight: 500; | |||||
color: #333333; | |||||
line-height: 42rpx; | |||||
letter-spacing: 2rpx; | |||||
margin-bottom: 20rpx; | |||||
} | |||||
.level1 { | |||||
display: flex; | |||||
align-items: center; | |||||
.level-name { | |||||
width: 104rpx; | |||||
height: 33rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 500; | |||||
color: #333333; | |||||
line-height: 33rpx; | |||||
letter-spacing: 1rpx; | |||||
margin-right: 10rpx; | |||||
} | |||||
.level-progress { | |||||
flex: 1; | |||||
border-radius: 11rpx; | |||||
height: 21rpx; | |||||
background-color: #BEE4FF; | |||||
position: relative; | |||||
.color { | |||||
width: 0; | |||||
position: absolute; | |||||
top: 0; | |||||
left: 0; | |||||
height: 21rpx; | |||||
border-radius: 11rpx 0 0 11rpx; | |||||
background-color: #008EF2; | |||||
} | |||||
} | |||||
.level-rate { | |||||
width: 65rpx; | |||||
height: 33rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 500; | |||||
color: #333333; | |||||
line-height: 33rpx; | |||||
letter-spacing: 1rpx; | |||||
margin: 0 20rpx 0 15rpx; | |||||
} | |||||
.arrow { | |||||
width: 37rpx; | |||||
height: 21rpx; | |||||
padding: 5rpx 20rpx; | |||||
} | |||||
.rotatearrow { | |||||
transform: rotate(270deg); | |||||
} | |||||
} | |||||
.level1-subbox { | |||||
display: flex; | |||||
margin-top: 20rpx; | |||||
flex-wrap: wrap; | |||||
.sub-name { | |||||
width: 50%; | |||||
display: flex; | |||||
margin-bottom: 18rpx; | |||||
.subitem-name { | |||||
width: 104rpx; | |||||
height: 33rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 400; | |||||
color: #999999; | |||||
line-height: 33rpx; | |||||
letter-spacing: 1rpx; | |||||
margin-right: 12rpx; | |||||
} | |||||
.checkimg { | |||||
width: 27rpx; | |||||
height: 27rpx; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.tab{ | .tab{ | ||||
height: 88rpx; | height: 88rpx; | ||||
border-bottom: 1px solid #E0E0E0; | border-bottom: 1px solid #E0E0E0; | ||||
@@ -1,10 +1,10 @@ | |||||
<template> | <template> | ||||
<view class="translation" @click="changeEditing(false)"> | <view class="translation" @click="changeEditing(false)"> | ||||
<!-- <view style="width: 690rpx;height: 64rpx;margin: 0 auto;margin-top: 30rpx;background: #F2F2F2;border-radius: 32rpx; | |||||
<view style="width: 690rpx;height: 64rpx;margin: 0 auto;margin-top: 30rpx;background: #F2F2F2;border-radius: 32rpx; | |||||
display: flex;align-items: center;" @tap="toKeywordsearch()"> | display: flex;align-items: center;" @tap="toKeywordsearch()"> | ||||
<image style="width: 28rpx;height: 28rpx;margin-left: 30rpx;" src="/static/images/search.png" mode=""></image> | <image style="width: 28rpx;height: 28rpx;margin-left: 30rpx;" src="/static/images/search.png" mode=""></image> | ||||
<text style="margin-left: 10rpx;color: #999999;font-size: 24rpx;">请输入关键字</text> | <text style="margin-left: 10rpx;color: #999999;font-size: 24rpx;">请输入关键字</text> | ||||
</view> --> | |||||
</view> | |||||
<view class="top" style="margin-top: 30rpx;"> | <view class="top" style="margin-top: 30rpx;"> | ||||
<view class="title"> | <view class="title"> | ||||
<view class="call_record_time">{{date}}</view> | <view class="call_record_time">{{date}}</view> | ||||
@@ -245,7 +245,7 @@ | |||||
toKeywordsearch(){ | toKeywordsearch(){ | ||||
this.innerAudioContext.destroy(); | this.innerAudioContext.destroy(); | ||||
uni.navigateTo({ | uni.navigateTo({ | ||||
url: '/pages/main/Keywordsearch?customerId='+this.customerId +"&status="+this.status | |||||
url: '/pages/learning/Keywordsearch?customerId='+this.customerId +"&status="+this.status | |||||
}) | }) | ||||
}, | }, | ||||
getView(){ | getView(){ | ||||
@@ -543,13 +543,6 @@ | |||||
}, 2000); | }, 2000); | ||||
}else{ | }else{ | ||||
const jsonInfo = JSON.parse(data.data.data.audioContent); | const jsonInfo = JSON.parse(data.data.data.audioContent); | ||||
// if(info.onebest){ | |||||
// jsonInfo.forEach(che=>{ | |||||
// if(che.onebest==info.onebest){ | |||||
// che.onebest=`<font style='color: red'>${che.onebest}</font>`; | |||||
// } | |||||
// }) | |||||
// } | |||||
this.dialogList.push({ | this.dialogList.push({ | ||||
message: jsonInfo | message: jsonInfo | ||||
}); | }); | ||||
@@ -1,10 +1,10 @@ | |||||
<template> | <template> | ||||
<view class="translation"> | <view class="translation"> | ||||
<!-- <view style="width: 690rpx;height: 64rpx;margin: 0 auto;margin-top: 30rpx;background: #F2F2F2;border-radius: 32rpx; | |||||
<view style="width: 690rpx;height: 64rpx;margin: 0 auto;margin-top: 30rpx;background: #F2F2F2;border-radius: 32rpx; | |||||
display: flex;align-items: center;" @tap="toKeywordsearch()"> | display: flex;align-items: center;" @tap="toKeywordsearch()"> | ||||
<image style="width: 28rpx;height: 28rpx;margin-left: 30rpx;" src="/static/images/search.png" mode=""></image> | <image style="width: 28rpx;height: 28rpx;margin-left: 30rpx;" src="/static/images/search.png" mode=""></image> | ||||
<text style="margin-left: 10rpx;color: #999999;font-size: 24rpx;">请输入关键字</text> | <text style="margin-left: 10rpx;color: #999999;font-size: 24rpx;">请输入关键字</text> | ||||
</view> --> | |||||
</view> | |||||
<view class="top" style="margin-top: 30rpx;"> | <view class="top" style="margin-top: 30rpx;"> | ||||
<view class="title"> | <view class="title"> | ||||
<view class="call_record_time">{{date}}</view> | <view class="call_record_time">{{date}}</view> | ||||
@@ -222,6 +222,7 @@ | |||||
}, | }, | ||||
onShow() { | onShow() { | ||||
this.buildingID = uni.getStorageSync('buildingID').id; | this.buildingID = uni.getStorageSync('buildingID').id; | ||||
this.userInfo = uni.getStorageSync('weapp_session_userInfo_data'); | this.userInfo = uni.getStorageSync('weapp_session_userInfo_data'); | ||||
if (this.userInfo.dataCode == 6) { | if (this.userInfo.dataCode == 6) { | ||||
this.jiaoseshow = false | this.jiaoseshow = false | ||||
@@ -229,7 +230,7 @@ | |||||
if(this.stateisshow==1){ | |||||
if(this.stateisshow==2){ | |||||
var info =this.itemobj; | var info =this.itemobj; | ||||
}else{ | }else{ | ||||
var pages = getCurrentPages(); | var pages = getCurrentPages(); | ||||
@@ -240,7 +241,7 @@ | |||||
this.innerAudioContext = uni.createInnerAudioContext(); | this.innerAudioContext = uni.createInnerAudioContext(); | ||||
this.innerAudioContext.autoplay = false; | this.innerAudioContext.autoplay = false; | ||||
this.innerAudioContext.title = '音频'; | this.innerAudioContext.title = '音频'; | ||||
console.log(this.itemobj) | |||||
this.onPlay() | this.onPlay() | ||||
this.onPause() | this.onPause() | ||||
this.onCanplay() | this.onCanplay() | ||||
@@ -249,7 +250,6 @@ | |||||
this.onSeeked() | this.onSeeked() | ||||
this.TimeUpdate() | this.TimeUpdate() | ||||
this.init(info) | this.init(info) | ||||
}, | }, | ||||
// 在组件实例被从页面节点树移除时执行 | // 在组件实例被从页面节点树移除时执行 | ||||
destroyed: function() { | destroyed: function() { | ||||
@@ -369,15 +369,6 @@ | |||||
this.creatAudio() | this.creatAudio() | ||||
var itc=parseInt(info.bg/1000) | var itc=parseInt(info.bg/1000) | ||||
this.adasdasdasd(itc) | this.adasdasdasd(itc) | ||||
}else{ | |||||
this.recordPath = res[0].recordPath | |||||
this.sliderMax = this.getTime(res[0].recordDuration) | |||||
this.timeStr = this.getTime(res[0].recordDuration) | |||||
this.date = res[0].receptionTime | |||||
this.innerAudioContext.src = this.recordPath; | |||||
this.changePlayState() | |||||
this.luyinList = res; | |||||
this.getCorpusAnalysis(info) | |||||
} | } | ||||
}) | }) | ||||
}else{ | }else{ | ||||
@@ -388,7 +379,7 @@ | |||||
this.innerAudioContext.src = this.recordPath; | this.innerAudioContext.src = this.recordPath; | ||||
this.changePlayState() | this.changePlayState() | ||||
this.luyinList = res; | this.luyinList = res; | ||||
this.getCorpusAnalysis(info) | |||||
this.getCorpusAnalysis() | |||||
} | } | ||||
} | } | ||||
}) | }) | ||||
@@ -508,7 +499,7 @@ | |||||
if (res.confirm) { | if (res.confirm) { | ||||
console.log('用户点击确定'); | console.log('用户点击确定'); | ||||
uni.request({ | uni.request({ | ||||
url: config.service.delATD + "?carId=" + that.customerId+'&itemId='+that.buildingID, | |||||
url: config.service.delATD + "?carId=" + that.customerId, | |||||
method: "GET", | method: "GET", | ||||
header: { | header: { | ||||
'content-type': 'application/json', | 'content-type': 'application/json', | ||||
@@ -656,23 +647,13 @@ | |||||
Addtheessence() { | Addtheessence() { | ||||
this.isshow3 = true; | this.isshow3 = true; | ||||
this.biaoqianlist = [] | this.biaoqianlist = [] | ||||
let parames={ | |||||
"itemId":this.buildingID | |||||
} | |||||
this.$u.post("/addtodigest/findAllYi", parames).then(data => { | |||||
util.getRequestPromise(config.service.findAllYi, {}, false).then(data => { | |||||
this.biaoqianlist = data | this.biaoqianlist = data | ||||
this.biaoqianlist.unshift({ | this.biaoqianlist.unshift({ | ||||
name: "逼单话术", | name: "逼单话术", | ||||
id: 0 | id: 0 | ||||
}) | }) | ||||
}) | |||||
// util.getRequestPromise(config.service.findAllYi, {"itemId":this.buildingID}, false).then(data => { | |||||
// this.biaoqianlist = data | |||||
// this.biaoqianlist.unshift({ | |||||
// name: "逼单话术", | |||||
// id: 0 | |||||
// }) | |||||
// }); | |||||
}); | |||||
}, | }, | ||||
// 取消加精 | // 取消加精 | ||||
Cancelout2() { | Cancelout2() { | ||||
@@ -697,7 +678,6 @@ | |||||
}) | }) | ||||
}) | }) | ||||
let objdata = { | let objdata = { | ||||
"itemId":this.buildingID, | |||||
"carId": this.customerId, //客户id | "carId": this.customerId, //客户id | ||||
"startTime": this.changanitem.bg, //开始时间 | "startTime": this.changanitem.bg, //开始时间 | ||||
"startFile": this.duihuawenjianid, //对话所在录音文件id | "startFile": this.duihuawenjianid, //对话所在录音文件id | ||||
@@ -856,17 +836,38 @@ | |||||
}, 2000); | }, 2000); | ||||
} else { | } else { | ||||
const jsonInfo = JSON.parse(data.data.data.audioContent); | const jsonInfo = JSON.parse(data.data.data.audioContent); | ||||
// if(info.onebest){ | |||||
// jsonInfo.forEach(che=>{ | |||||
// if(che.onebest==info.onebest){ | |||||
// che.onebest=`<font style='color: red'>${che.onebest}</font>`; | |||||
// } | |||||
// }) | |||||
// } | |||||
this.dialogList.push({ | |||||
message: jsonInfo, | |||||
backindex:this.csdFileindex | |||||
}); | |||||
console.log(jsonInfo) | |||||
if(this.luyinList[this.csdFileindex].recordDuration>360){ | |||||
//拿到总条数 | |||||
var stusnum=jsonInfo.length; | |||||
this.dialogList.push({ | |||||
message: jsonInfo.splice(0,80), | |||||
backindex:this.csdFileindex | |||||
}); | |||||
var auth_timetimer = setInterval(() => { | |||||
stusnum-=100; | |||||
console.log("还剩下"+stusnum) | |||||
if (stusnum <= 0) { | |||||
console.log("停止") | |||||
clearInterval(auth_timetimer); | |||||
}else{ | |||||
console.log("添加") | |||||
var newlistwang=[]; | |||||
newlistwang=jsonInfo.splice(0,100); | |||||
console.log("新数组",newlistwang) | |||||
newlistwang.forEach(item=>{ | |||||
this.dialogList[0].message.push(item) | |||||
}) | |||||
} | |||||
}, 1000); | |||||
}else{ | |||||
this.dialogList.push({ | |||||
message: jsonInfo, | |||||
backindex:this.csdFileindex | |||||
}); | |||||
} | |||||
this.dialogList.forEach((asd, idx) => { | this.dialogList.forEach((asd, idx) => { | ||||
asd.message.forEach((qwe, inde) => { | asd.message.forEach((qwe, inde) => { | ||||
qwe.isshow = false; | qwe.isshow = false; | ||||
@@ -272,33 +272,48 @@ | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view class="cenisbox"> | <view class="cenisbox"> | ||||
<!-- 评分模块 --> | |||||
<view class="rate-box"> | |||||
<view class="title">总执行率 {{totalRate}}%</view> | |||||
<view v-for="(item,index) in ratelist" :key="index" class="u-m-b-14" style="margin-top: 30rpx;"> | |||||
<view class="level1"> | |||||
<view class="level-name u-line-1"> | |||||
{{item.name}} | |||||
<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: 20rpx;">指标</view> | |||||
<view style="flex: 1;font-size: 28rpx;color: #333333;font-weight: 600;text-indent: 170rpx;">执行率</view> | |||||
</view> | |||||
<view class="Level-box" v-for="(item,index) in ratelist" :key="index"> | |||||
<view class="Level1che"> | |||||
<view class="title1">{{item.name}}</view> | |||||
<view class="leve1-jindu"> | |||||
<view class="jindutiao"> | |||||
<view class="huanxing" :style="{width: item.ratepercent/item.rate*100+'%'}"></view> | |||||
<view class="text">{{((item.ratepercent/item.rate).toFixed(2)*100).toFixed()}}%</view> | |||||
</view> | </view> | ||||
<view class="level-progress"> | |||||
<view class="color" :style="{width: item.ratepercent/item.rate*100+'%'}"></view> | |||||
</view> | |||||
<view class="jiantobox"> | |||||
<image @click="changeshow(item,1)" v-if="!item.show" class="arrow rotatearrow" src="/static/images/down.png" mode="" /> | |||||
<image @click="changeshow(item,0)" v-else class="arrow" src="/static/images/up.png" mode="" /> | |||||
</view> | |||||
</view> | |||||
<view class="hhhbox" v-if="item.show" v-for="(subitem,i) in item.children" :key="i"> | |||||
<view class="Level2che" > | |||||
<view class="title1" @tap="clickaudeopal(subitem)">{{subitem.name}}</view> | |||||
<view class="leve1-jindu" @tap="clickaudeopal(subitem)"> | |||||
<view class="zhixing" v-if="!subitem.selected">已执行</view> | |||||
<view class="zhixing2" v-else>未执行</view> | |||||
</view> | |||||
<view class="jiantobox"> | |||||
<image @click="changeshow2(subitem,1)" v-if="!subitem.show" class="arrow rotatearrow" src="/static/images/down.png" mode="" /> | |||||
<image @click="changeshow2(subitem,0)" v-else class="arrow" src="/static/images/up.png" mode="" /> | |||||
</view> | </view> | ||||
<view class="level-rate">{{((item.ratepercent/item.rate).toFixed(2)*100).toFixed()}}%</view> | |||||
<image v-if="!item.show" class="arrow rotatearrow" @click="changeshow(item,1)" | |||||
src="/static/images/down.png" mode="" /> | |||||
<image v-else class="arrow" @click="changeshow(item,0)" src="/static/images/up.png" | |||||
mode="" /> | |||||
</view> | </view> | ||||
<view class="level1-subbox" v-if="item.show"> | |||||
<view class="sub-name" v-for="(subitem,i) in item.children" :key="i"> | |||||
<view class="subitem-name u-line-1" @tap="clickaudeopal(subitem)">{{subitem.name}}</view> | |||||
<image class="checkimg" v-if="!subitem.selected" | |||||
src="/static/images/rate-checked.png" mode="" /> | |||||
<image class="checkimg" v-else src="/static/images/rate-nocheck.png" mode="" /> | |||||
<view class="hsnrtest" v-if="subitem.show">话术内容</view> | |||||
<view class="Level3che" @tap="clickaudeopal(che)" v-if="subitem.show" v-for="(che,inc) in subitem.children" :key='inc'> | |||||
<view class="title1" >{{inc+1}}.{{che.name}}</view> | |||||
<view class="jiantobox"> | |||||
<image v-if="che.selected==0" class="arrow" src="/static/images/rate-checked.png" mode="" /> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
<view v-if="subitem.show" style="width: 100%;height: 30rpx;"></view> | |||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
</view> | </view> | ||||
@@ -1157,6 +1172,13 @@ | |||||
item.show = false | item.show = false | ||||
} | } | ||||
}, | }, | ||||
changeshow2(item, type){ | |||||
if (type == 1) { | |||||
item.show = true | |||||
} else { | |||||
item.show = false | |||||
} | |||||
}, | |||||
// 获取评分 | // 获取评分 | ||||
getRatelist() { | getRatelist() { | ||||
if (this.ratelist.length == 0) { | if (this.ratelist.length == 0) { | ||||
@@ -1168,7 +1190,6 @@ | |||||
}).then(res => { | }).then(res => { | ||||
if (res.length) { | if (res.length) { | ||||
let level1 = [] | let level1 = [] | ||||
let level2rate = 0 | |||||
res.forEach(item => { | res.forEach(item => { | ||||
if (item.pid == 0) { | if (item.pid == 0) { | ||||
level1.push({ | level1.push({ | ||||
@@ -1180,13 +1201,9 @@ | |||||
ratepercent: 0, | ratepercent: 0, | ||||
children: [] | children: [] | ||||
}) | }) | ||||
} else { | |||||
if (item.selected == 0) { | |||||
level2rate += item.fraction | |||||
} | |||||
} | |||||
} | |||||
}) | }) | ||||
this.totalRate = level2rate | |||||
// this.totalRate = level2rate; | |||||
res.forEach(subitem => { | res.forEach(subitem => { | ||||
let subitempid = subitem.pid | let subitempid = subitem.pid | ||||
level1.forEach(item => { | level1.forEach(item => { | ||||
@@ -1199,12 +1216,31 @@ | |||||
rate: subitem.fraction, | rate: subitem.fraction, | ||||
selected: subitem.selected, | selected: subitem.selected, | ||||
name: subitem.name, | name: subitem.name, | ||||
marketingId:subitem.marketingId | |||||
show: false, | |||||
marketingId:subitem.marketingId, | |||||
children: [] | |||||
}) | }) | ||||
} | } | ||||
}) | }) | ||||
}) | }) | ||||
res.forEach(subitem => { | |||||
let subitempid = subitem.pid | |||||
level1.forEach(chen=>{ | |||||
chen.children.forEach(zxc=>{ | |||||
if(subitempid == zxc.marketingId){ | |||||
zxc.children.push({ | |||||
id: subitem.id, | |||||
rate: subitem.fraction, | |||||
selected: subitem.selected, | |||||
name: subitem.name, | |||||
marketingId:subitem.marketingId, | |||||
}) | |||||
} | |||||
}) | |||||
}) | |||||
}) | |||||
level1[0].show = true; | level1[0].show = true; | ||||
level1[0].children[0].show = true; | |||||
this.ratelist = level1 | this.ratelist = level1 | ||||
} | } | ||||
setTimeout(function() { | setTimeout(function() { | ||||
@@ -1906,103 +1942,6 @@ | |||||
height: 34upx; | height: 34upx; | ||||
} | } | ||||
} | } | ||||
// 评分 | |||||
.rate-box { | |||||
padding: 10rpx 20rpx; | |||||
.date { | |||||
width: 300rpx; | |||||
height: 33rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 400; | |||||
color: #333333; | |||||
line-height: 33rpx; | |||||
letter-spacing: 1rpx; | |||||
margin-bottom: 8rpx; | |||||
} | |||||
.title { | |||||
width: 100%; | |||||
height: 42rpx; | |||||
font-size: 30rpx; | |||||
font-weight: 500; | |||||
color: #333333; | |||||
line-height: 42rpx; | |||||
letter-spacing: 2rpx; | |||||
margin-bottom: 20rpx; | |||||
} | |||||
.level1 { | |||||
display: flex; | |||||
align-items: center; | |||||
.level-name { | |||||
width: 104rpx; | |||||
height: 33rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 500; | |||||
color: #333333; | |||||
line-height: 33rpx; | |||||
letter-spacing: 1rpx; | |||||
margin-right: 10rpx; | |||||
} | |||||
.level-progress { | |||||
flex: 1; | |||||
border-radius: 11rpx; | |||||
height: 21rpx; | |||||
background-color: #F2F2F2; | |||||
position: relative; | |||||
.color { | |||||
width: 0; | |||||
position: absolute; | |||||
top: 0; | |||||
left: 0; | |||||
height: 21rpx; | |||||
border-radius: 11rpx 0 0 11rpx; | |||||
background-color: #60D7A0; | |||||
} | |||||
} | |||||
.level-rate { | |||||
width: 65rpx; | |||||
height: 33rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 500; | |||||
color: #333333; | |||||
line-height: 33rpx; | |||||
letter-spacing: 1rpx; | |||||
margin: 0 20rpx 0 15rpx; | |||||
} | |||||
.arrow { | |||||
width: 34rpx; | |||||
height:26rpx; | |||||
padding: 5rpx 20rpx; | |||||
} | |||||
.rotatearrow { | |||||
transform: rotate(270deg); | |||||
} | |||||
} | |||||
.level1-subbox { | |||||
display: flex; | |||||
margin-top: 20rpx; | |||||
flex-wrap: wrap; | |||||
.sub-name { | |||||
width: 50%; | |||||
display: flex; | |||||
margin-bottom: 18rpx; | |||||
.subitem-name { | |||||
width: 104rpx; | |||||
height: 33rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 400; | |||||
color: #999999; | |||||
line-height: 33rpx; | |||||
letter-spacing: 1rpx; | |||||
margin-right: 12rpx; | |||||
} | |||||
.checkimg { | |||||
width: 27rpx; | |||||
height: 27rpx; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.jiangshang{ | .jiangshang{ | ||||
color: #2671E2; | color: #2671E2; | ||||
background: #F4F8FD; | background: #F4F8FD; | ||||
@@ -2065,4 +2004,148 @@ | |||||
color: #FFFFFF; | color: #FFFFFF; | ||||
border: none; | border: none; | ||||
} | } | ||||
.Level-box{ | |||||
padding-bottom: 2rpx; | |||||
.hhhbox{ | |||||
width:100%; | |||||
padding-left: 30rpx; | |||||
padding-right: 30rpx; | |||||
border-bottom: 1rpx solid #E0E0E0; | |||||
background: #FFFFFF; | |||||
// padding-bottom: 32rpx; | |||||
.hsnrtest{ | |||||
height: 24rpx; | |||||
font-size: 24rpx; | |||||
font-weight: 400; | |||||
color: #666666; | |||||
line-height: 24rpx; | |||||
} | |||||
.Level3che{ | |||||
width:100%; | |||||
height:28rpx; | |||||
display: flex; | |||||
line-height: 28rpx; | |||||
align-items: center; | |||||
margin-top: 30rpx; | |||||
.title1{ | |||||
flex: 1; | |||||
font-size: 28rpx; | |||||
color:#2671E2; | |||||
font-weight: 400; | |||||
} | |||||
.jiantobox{ | |||||
width: 30rpx; | |||||
height: 30rpx; | |||||
display: flex; | |||||
align-items: center; | |||||
.arrow{ | |||||
width: 28rpx; | |||||
height:28rpx; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.Level2che{ | |||||
width:100%; | |||||
height: 88rpx; | |||||
display: flex; | |||||
line-height: 88rpx; | |||||
align-items: center; | |||||
.title1{ | |||||
flex: 2; | |||||
font-size: 28rpx; | |||||
color: #333333; | |||||
font-weight: 400; | |||||
} | |||||
.leve1-jindu{ | |||||
flex: 3; | |||||
display: flex; | |||||
justify-content: center; | |||||
align-items: center; | |||||
.zhixing{ | |||||
width: 108rpx; | |||||
height: 44rpx; | |||||
background: #2671E2; | |||||
border-radius: 4rpx; | |||||
font-size: 28rpx; | |||||
text-align: center; | |||||
line-height: 44rpx; | |||||
color: #FFFFFF; | |||||
} | |||||
.zhixing2{ | |||||
width: 108rpx; | |||||
height: 44rpx; | |||||
background: #F8F8F8; | |||||
border-radius: 4rpx; | |||||
font-size: 28rpx; | |||||
text-align: center; | |||||
line-height: 44rpx; | |||||
color: #999999; | |||||
} | |||||
} | |||||
.jiantobox{ | |||||
width: 30rpx; | |||||
height: 30rpx; | |||||
display: flex; | |||||
align-items: center; | |||||
.arrow{ | |||||
width: 30rpx; | |||||
height:18rpx; | |||||
} | |||||
} | |||||
} | |||||
.Level1che{ | |||||
width:100%; | |||||
height: 94rpx; | |||||
background: #E0E0E0; | |||||
display: flex; | |||||
line-height: 94rpx; | |||||
align-items: center; | |||||
padding-left: 30rpx; | |||||
padding-right: 30rpx; | |||||
.title1{ | |||||
flex: 2; | |||||
font-size: 30rpx; | |||||
color: #333333; | |||||
font-weight: 400; | |||||
} | |||||
.leve1-jindu{ | |||||
flex: 3; | |||||
.jindutiao{ | |||||
width: 96%; | |||||
height: 28rpx; | |||||
background: #D5EEE2; | |||||
line-height: 28rpx; | |||||
border-radius: 14rpx; | |||||
position: relative; | |||||
.huanxing{ | |||||
height: 100%; | |||||
background: #4FC78F; | |||||
border-radius: 14rpx; | |||||
} | |||||
.text{ | |||||
position: absolute; | |||||
top: 0rpx; | |||||
right: 0rpx; | |||||
font-size: 28rpx; | |||||
font-weight: 400; | |||||
color: #333333; | |||||
} | |||||
} | |||||
} | |||||
.jiantobox{ | |||||
width: 30rpx; | |||||
height: 30rpx; | |||||
display: flex; | |||||
align-items: center; | |||||
.arrow{ | |||||
width: 30rpx; | |||||
height:18rpx; | |||||
} | |||||
} | |||||
} | |||||
} | |||||
.rotatearrow { | |||||
transform: rotate(270deg); | |||||
} | |||||
</style> | </style> |
@@ -1,7 +1,7 @@ | |||||
// const baseUrl = 'http://121.42.63.138:9091/autoSR/api';// 测试站 | |||||
const baseUrl = 'http://121.42.63.138:9091/autoSR/api';// 测试站 | |||||
// const baseUrl = 'http://192.168.31.161:8080/autoSR/api'; // 长龙 | // const baseUrl = 'http://192.168.31.161:8080/autoSR/api'; // 长龙 | ||||
const baseUrl = 'http://192.168.31.128:8080/autoSR/api'; // 佳豪 | |||||
// const baseUrl = 'http://192.168.31.128:8080/autoSR/api'; // 佳豪 | |||||
// const baseUrl = 'http://10.2.1.104:8081/autoSR/api'; // 刘敏 | // const baseUrl = 'http://10.2.1.104:8081/autoSR/api'; // 刘敏 | ||||
// const baseUrl = 'https://zkgj.quhouse.com/api'; // 质控正式 | // const baseUrl = 'https://zkgj.quhouse.com/api'; // 质控正式 | ||||
// const baseUrl = 'https://hfju.com/api'; // 数智正式 | // const baseUrl = 'https://hfju.com/api'; // 数智正式 | ||||