|
@@ -7,25 +7,25 @@
|
|
|
<div class="data_progress">
|
|
|
<div class="depth">
|
|
|
<div>
|
|
|
- <el-progress :width="80" type="circle" :percentage="95" :stroke-width="15" :format="format" color="#40b640"></el-progress>
|
|
|
+ <el-progress :width="80" type="circle" :percentage="score.Pronunciation" :stroke-width="15" :format="format" color="#40b640"></el-progress>
|
|
|
</div>
|
|
|
<span>Pronunciation score</span>
|
|
|
</div>
|
|
|
<div class="depth">
|
|
|
<div>
|
|
|
- <el-progress :width="80" type="circle" :percentage="95" :stroke-width="15" :format="format" color="#bc66c3"></el-progress>
|
|
|
+ <el-progress :width="80" type="circle" :percentage="score.Accuracy" :stroke-width="15" :format="format" color="#bc66c3"></el-progress>
|
|
|
</div>
|
|
|
<span>Accuracy score</span>
|
|
|
</div>
|
|
|
<div class="depth">
|
|
|
<div>
|
|
|
- <el-progress :width="80" type="circle" :percentage="95" :stroke-width="15" :format="format" color="#e871bc"></el-progress>
|
|
|
+ <el-progress :width="80" type="circle" :percentage="score.Fluency" :stroke-width="15" :format="format" color="#e871bc"></el-progress>
|
|
|
</div>
|
|
|
<span>Fluency score</span>
|
|
|
</div>
|
|
|
<div class="depth">
|
|
|
<div>
|
|
|
- <el-progress :width="80" type="circle" :percentage="95" :stroke-width="15" :format="format" color="#697bda"></el-progress>
|
|
|
+ <el-progress :width="80" type="circle" :percentage="score.Completeness" :stroke-width="15" :format="format" color="#697bda"></el-progress>
|
|
|
</div>
|
|
|
<span>Completeness score</span>
|
|
|
</div>
|
|
@@ -34,8 +34,8 @@
|
|
|
<div class="whiteBox" v-if="wordArray.length">
|
|
|
<div class="word_box" v-for="(item, index) in wordArray" :key="index">
|
|
|
<div class="word"><span>{{ index + 1 }}.</span><span>{{ item.content }}</span></div>
|
|
|
- <div class="star_box">
|
|
|
- <div class="star" v-for="index2 in 5" :key="'star' + index2" :class="{ starA: 3 >= (index2) }">
|
|
|
+ <div class="star_box" v-if="item.work && item.work.score">
|
|
|
+ <div class="star" v-for="index2 in 5" :key="'star' + index2" :class="{ starA: item.work.score >= (index2) }">
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -46,13 +46,13 @@
|
|
|
<div class="title">{{ index+1 }}.原文:</div>
|
|
|
<div class="content">{{ item.content }}</div>
|
|
|
</div>
|
|
|
- <div class="star_box" style="margin: 10px 0;">
|
|
|
- <div class="star" v-for="index2 in 5" :key="'star' + index2" :class="{ starA: 3 >= (index2) }">
|
|
|
+ <div class="star_box" style="margin: 10px 0;" v-if="item.work && item.work.score">
|
|
|
+ <div class="star" v-for="index2 in 5" :key="'star' + index2" :class="{ starA: item.work.score >= (index2) }">
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="setence">
|
|
|
<div class="title">录音译文:</div>
|
|
|
- <div class="content">{{ item.content }}</div>
|
|
|
+ <span>{{ (item.work && item.work.text) ? item.work.text : '无' }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -62,13 +62,13 @@
|
|
|
<div class="title">{{ index+1 }}.问题:</div>
|
|
|
<div class="content">{{ item.content }}</div>
|
|
|
</div>
|
|
|
- <div class="star_box" style="margin: 10px 0;">
|
|
|
+ <!-- <div class="star_box" style="margin: 10px 0;">
|
|
|
<div class="star" v-for="index2 in 5" :key="'star' + index2" :class="{ starA: 3 >= (index2) }">
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
<div class="setence">
|
|
|
<div class="title">录音回答译文:</div>
|
|
|
- <div class="content">{{ item.content }}</div>
|
|
|
+ <span>{{ (item.work && item.work.text) ? item.work.text : '无' }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -81,29 +81,41 @@
|
|
|
<span>{{ item.content2 }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <div class="star_box" style="margin: 10px 0;">
|
|
|
+ <!-- <div class="star_box" style="margin: 10px 0;">
|
|
|
<div class="star" v-for="index2 in 5" :key="'star' + index2" :class="{ starA: 3 >= (index2) }">
|
|
|
</div>
|
|
|
- </div>
|
|
|
+ </div> -->
|
|
|
<div class="setence">
|
|
|
<div class="title">录音回答译文:</div>
|
|
|
<div class="content2">
|
|
|
- <span>{{ item.content }}</span>
|
|
|
- <span>{{ item.content2 }}</span>
|
|
|
+ <!-- <span>{{ item.content }}</span> -->
|
|
|
+ <span>{{ (item.work && item.work.text) ? item.work.text : '无' }}</span>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
<div class="whiteBox" v-if="createRoleArray.length">
|
|
|
+ <div class="setenceBox" v-for="(item, index) in createRoleArray" :key="index">
|
|
|
+ <div class="setence">
|
|
|
+ <div class="title">{{ index+1 }}.对话:</div>
|
|
|
+ <div class="content2" v-if="item.work && item.work.length">
|
|
|
+ <testRole :checkJson="item.work"></testRole>
|
|
|
+ </div>
|
|
|
+ <div class="content2" v-else>
|
|
|
+ 暂未对话
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
+ </div>
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
-
|
|
|
+import testRole from "../component/testRole.vue";
|
|
|
export default {
|
|
|
components: {
|
|
|
+ testRole
|
|
|
},
|
|
|
props: {
|
|
|
dataDialog: {
|
|
@@ -132,7 +144,13 @@ export default {
|
|
|
sentenceArray: [],
|
|
|
QAArray: [],
|
|
|
themeArray: [],
|
|
|
- createRoleArray: []
|
|
|
+ createRoleArray: [],
|
|
|
+ score:{
|
|
|
+ Pronunciation: 0,
|
|
|
+ Accuracy: 0,
|
|
|
+ Fluency: 0,
|
|
|
+ Completeness: 0,
|
|
|
+ }
|
|
|
};
|
|
|
},
|
|
|
methods: {
|
|
@@ -150,6 +168,13 @@ export default {
|
|
|
this.close2();
|
|
|
},
|
|
|
setVoiceJson(val) {
|
|
|
+ let score = {
|
|
|
+ Pronunciation: 0,
|
|
|
+ Accuracy: 0,
|
|
|
+ Fluency: 0,
|
|
|
+ Completeness: 0,
|
|
|
+ }
|
|
|
+ let scoreCont = 0
|
|
|
let a = JSON.parse(JSON.stringify(val));
|
|
|
this.title = a.title;
|
|
|
this.detail = a.detail;
|
|
@@ -159,6 +184,24 @@ export default {
|
|
|
let works = JSON.parse(
|
|
|
JSON.parse(JSON.stringify(this.commentDetail.works))
|
|
|
);
|
|
|
+ for(var i = 0; i < works.length; i++){
|
|
|
+ if (i > (this.checkJson.length - 1)) {
|
|
|
+ break
|
|
|
+ }
|
|
|
+ if(works[i].star){
|
|
|
+ scoreCont++
|
|
|
+ score.Pronunciation += works[i].star.PronScore
|
|
|
+ score.Accuracy += works[i].star.AccuracyScore
|
|
|
+ score.Fluency += works[i].star.FluencyScore
|
|
|
+ score.Completeness += works[i].star.CompletenessScore
|
|
|
+ }
|
|
|
+ }
|
|
|
+ this.score = {
|
|
|
+ Pronunciation: parseInt((score.Pronunciation / scoreCont).toFixed(0)),
|
|
|
+ Accuracy: parseInt((score.Accuracy / scoreCont).toFixed(0)),
|
|
|
+ Fluency: parseInt((score.Fluency / scoreCont).toFixed(0)),
|
|
|
+ Completeness: parseInt((score.Completeness / scoreCont).toFixed(0)),
|
|
|
+ }
|
|
|
for (var i = 0; i < this.checkJson.length; i++) {
|
|
|
this.checkJson[i].work = ''
|
|
|
if (i > (works.length - 1)) {
|