|
@@ -31,7 +31,7 @@
|
|
|
<div class="s_b_m_b_i_main">
|
|
|
<div class="s_b_m_b_i_m_title" v-if="testData">
|
|
|
<div>
|
|
|
-
|
|
|
+
|
|
|
<img :src="toolList.find(item=>item.value===toolType).img" alt/>
|
|
|
|
|
|
<span>{{ toolList.find(item=>item.value===toolType).label }}</span>
|
|
@@ -74,7 +74,7 @@
|
|
|
<div
|
|
|
class="s_b_m_b_i_m_c_options"
|
|
|
v-for="(item2, index2) in item.checkList"
|
|
|
-
|
|
|
+
|
|
|
>
|
|
|
<!-- :class="{
|
|
|
s_b_m_b_i_m_c_o_right:
|
|
@@ -92,7 +92,7 @@
|
|
|
<!-- v-if="testJson.anwer[index] == index2" -->
|
|
|
</span>
|
|
|
<span class="s_b_m_b_i_m_c_o_btn2" v-else>
|
|
|
-
|
|
|
+
|
|
|
<!-- <span v-if="testJson.anwer[index].includes(index2)"> -->
|
|
|
<!-- <svg
|
|
|
width="8"
|
|
@@ -109,7 +109,7 @@
|
|
|
/>
|
|
|
</svg> -->
|
|
|
<!-- </span> -->
|
|
|
-
|
|
|
+
|
|
|
</span>
|
|
|
</div>
|
|
|
<span>
|
|
@@ -124,7 +124,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
+
|
|
|
|
|
|
<div v-if="[15].includes(toolType)" class="s_b_m_b_i_m_question">
|
|
|
<div class="s_b_m_b_i_m_c_title">
|
|
@@ -141,7 +141,7 @@
|
|
|
fill="#3681FC"
|
|
|
/>
|
|
|
</svg> -->
|
|
|
-
|
|
|
+
|
|
|
<span>提问:{{ testData.answerQ }}</span>
|
|
|
</div>
|
|
|
<!-- v-if="testJsonCopy && testJsonCopy.answer" -->
|
|
@@ -189,7 +189,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
+
|
|
|
<div v-if="[40].includes(toolType)" class="s_b_m_b_i_m_evaluation">
|
|
|
<div class="middleBox">
|
|
|
<div class="pfBox" v-for="(e, eIndex) in testData.rateJson" :key="eIndex">
|
|
@@ -250,14 +250,14 @@
|
|
|
<span class="e_i_c_detail">{{ item.detail?item.detail:"无内容" }}</span>
|
|
|
<el-rate :value="testJson.eStar[index]" disabled :max="item.score"></el-rate>
|
|
|
</div>
|
|
|
-
|
|
|
+
|
|
|
</div>
|
|
|
<span v-if="testJson" style="padding: 10px;">{{ testJson.eBzText }}</span>
|
|
|
</div> -->
|
|
|
</div>
|
|
|
<div v-if="[48].includes(toolType)" class="s_b_m_b_i_m_evaluation">
|
|
|
<el-form>
|
|
|
- <div class="cont" v-if="testData && testData.tableJson && testData.tableJson.text" v-html="testData.tableJson.text"></div>
|
|
|
+ <div class="cont" v-if="testData && testData.tableJson && testData.tableJson.text" v-html="testData.tableJson.text"></div>
|
|
|
</el-form>
|
|
|
</div>
|
|
|
<div v-if="[52].includes(toolType)" class="s_b_m_b_i_m_evaluation">
|
|
@@ -281,7 +281,7 @@
|
|
|
v-for="(g, gindex) in testData.groupJson.group"
|
|
|
:key="gindex"
|
|
|
>
|
|
|
-
|
|
|
+
|
|
|
<div class="g_d_group_chair">
|
|
|
<div v-if="testData.groupJson.number > 1">
|
|
|
<span class="isChair">
|
|
@@ -365,7 +365,7 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
|
-
|
|
|
+
|
|
|
</div>
|
|
|
</div>
|
|
|
</div>
|
|
@@ -376,12 +376,12 @@
|
|
|
<div class="s_b_m_b_i_e_title">
|
|
|
<span v-for="item in statisticsTypeList" :key="item.value" :class="{'s_b_m_b_i_e_t_active':showStatisticsType===item.value}" @click="changeShowStatisticsType(item.value)">{{item.label}}</span>
|
|
|
</div>
|
|
|
-
|
|
|
+
|
|
|
<div class="s_b_m_b_i_e_charts">
|
|
|
<eChartsView1 v-if="showStatisticsType===0 && accuracyRateData" :data="accuracyRateData"/>
|
|
|
<eChartsView2 v-if="showStatisticsType===1 && optionSummaryData" :data="optionSummaryData"/>
|
|
|
</div>
|
|
|
-
|
|
|
+
|
|
|
<div class="s_b_m_b_i_e_charts_bottom">
|
|
|
<span style="cursor: pointer;" v-if="accuracyRateData" @click="jumpTo(index)" v-for="(item,index) in accuracyRateData.series[0].data">第{{ index+1 }}题 {{ item }}%</span>
|
|
|
</div>
|
|
@@ -447,7 +447,7 @@
|
|
|
<div v-if="toolType == 15">
|
|
|
<choseWordCloud :cloudData="cy" :dialogVisibleWordCloud="dialogVisibleWordCloud"></choseWordCloud>
|
|
|
</div>
|
|
|
-
|
|
|
+
|
|
|
|
|
|
</div>
|
|
|
<div class="s_b_m_b_item s_b_m_b_worksSubmit" v-if="showType === 2 && dialogTypeList[2].showType.includes(toolType)">
|
|
@@ -524,9 +524,9 @@
|
|
|
v-for="item in worksStudent"
|
|
|
:key="item.userid"
|
|
|
>
|
|
|
- <div
|
|
|
- class="s_b_b_i_ws_b_i_s_i_t_top"
|
|
|
- :style="`cursor: ${[45,7,52,48].includes(toolType)?'pointer':'default'};padding: ${[7,52,48].includes(toolType)?'0px':'10px'};`"
|
|
|
+ <div
|
|
|
+ class="s_b_b_i_ws_b_i_s_i_t_top"
|
|
|
+ :style="`cursor: ${[45,7,52,48].includes(toolType)?'pointer':'default'};padding: ${[7,52,48].includes(toolType)?'0px':'10px'};`"
|
|
|
@click="StudentWork(item)"
|
|
|
>
|
|
|
|
|
@@ -541,7 +541,7 @@
|
|
|
</div>
|
|
|
|
|
|
<div class="s_b_b_i_ws_b_i_s_i_t_t_answer">
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
<span v-if="[15].includes(toolType)" class="questionsAndAnswersSpan">{{ questionsAndAnswers(item) }}</span>
|
|
@@ -582,7 +582,7 @@
|
|
|
<img :src="require('../../assets/icon/isWord.png')" alt="">
|
|
|
<!-- <img v-if="[48].includes(toolType)" :src="require('../../assets/icon/isTxt.png')" alt=""> -->
|
|
|
</div>
|
|
|
-
|
|
|
+
|
|
|
<!-- <span>{{ worksCheckAnswer(item) }}</span> -->
|
|
|
</div>
|
|
|
</div>
|
|
@@ -607,18 +607,20 @@
|
|
|
</div>
|
|
|
</div>
|
|
|
</el-dialog>
|
|
|
+ <studentWorkPreviewDialog ref="studentWorkPreviewDialogRef"/>
|
|
|
</div>
|
|
|
</template>
|
|
|
|
|
|
<script>
|
|
|
import eChartsView from './eChartsView.vue'
|
|
|
import choseWordCloud from './choseWordCloud.vue'
|
|
|
-
|
|
|
+import studentWorkPreviewDialog from './studentWorkPreviewDialog.vue';
|
|
|
export default {
|
|
|
components:{
|
|
|
eChartsView1:eChartsView,
|
|
|
eChartsView2:eChartsView,
|
|
|
- choseWordCloud
|
|
|
+ choseWordCloud,
|
|
|
+ studentWorkPreviewDialog
|
|
|
},
|
|
|
props: {
|
|
|
worksStudentData: {
|
|
@@ -703,7 +705,7 @@ export default {
|
|
|
|
|
|
isWorksData = this.worksStudent.map(i => JSON.parse(i.works)[0].anwer);
|
|
|
console.log('worksJson',worksJson);
|
|
|
-
|
|
|
+
|
|
|
pushData = worksJson.map((item, index) => {
|
|
|
return {
|
|
|
title: item.teststitle,
|
|
@@ -763,14 +765,14 @@ export default {
|
|
|
{
|
|
|
name: '准确率',
|
|
|
type: 'bar',
|
|
|
- data: [],
|
|
|
+ data: [],
|
|
|
itemStyle: {
|
|
|
color: '#5c87ef' // 设置条形图的颜色
|
|
|
}
|
|
|
}
|
|
|
],
|
|
|
// 设置条形图的间隔
|
|
|
- barCategoryGap: '50%',
|
|
|
+ barCategoryGap: '50%',
|
|
|
}
|
|
|
|
|
|
this.tableData.forEach((item,index)=>{
|
|
@@ -907,9 +909,9 @@ export default {
|
|
|
num++
|
|
|
}
|
|
|
})
|
|
|
-
|
|
|
|
|
|
-
|
|
|
+
|
|
|
+
|
|
|
// let _result = "";
|
|
|
// if([15].includes(this.toolType)){
|
|
|
// let _work = data.works?JSON.parse(data.works)[0]:null;
|
|
@@ -963,7 +965,7 @@ export default {
|
|
|
a.scrollIntoView({
|
|
|
behavior: "smooth" // 平滑滚动效果
|
|
|
});
|
|
|
-
|
|
|
+
|
|
|
},
|
|
|
open(data) {
|
|
|
if (this.show) return;
|
|
@@ -979,23 +981,24 @@ export default {
|
|
|
openWordCloud() {
|
|
|
this.dialogVisibleWordCloud = true
|
|
|
},
|
|
|
- StudentWork(val){
|
|
|
-
|
|
|
- if (this.toolType == 41) {
|
|
|
- this.testJsonCopy=val.works.split(',')
|
|
|
- }else if(this.toolType == 52 ) {
|
|
|
- return this.openTools(val)
|
|
|
- }else if(this.toolType == 48) {
|
|
|
- return this.openTools(val)
|
|
|
- return this.openTools(JSON.parse(val))
|
|
|
- }else if(this.toolType == 40){
|
|
|
- this.testJsonCopy=JSON.parse(val.works)
|
|
|
- }else{
|
|
|
- this.testJsonCopy=JSON.parse(val.works)[0]
|
|
|
- }
|
|
|
+ StudentWork(item){
|
|
|
+
|
|
|
+ this.$refs.studentWorkPreviewDialogRef.open({work:item,tool:this.toolType});
|
|
|
+ // if (this.toolType == 41) {
|
|
|
+ // this.testJsonCopy=val.works.split(',')
|
|
|
+ // }else if(this.toolType == 52 ) {
|
|
|
+ // return this.openTools(val)
|
|
|
+ // }else if(this.toolType == 48) {
|
|
|
+ // return this.openTools(val)
|
|
|
+ // return this.openTools(JSON.parse(val))
|
|
|
+ // }else if(this.toolType == 40){
|
|
|
+ // this.testJsonCopy=JSON.parse(val.works)
|
|
|
+ // }else{
|
|
|
+ // this.testJsonCopy=JSON.parse(val.works)[0]
|
|
|
+ // }
|
|
|
|
|
|
// console.log('this.testJson',JSON.parse(JSON.stringify(this.testJsonCopy)));
|
|
|
-
|
|
|
+
|
|
|
// this.showType = 0;
|
|
|
// this.$emit("changeSplitScreenBehavior",{code: 1,
|
|
|
// form: {
|
|
@@ -1008,7 +1011,7 @@ export default {
|
|
|
// lookWorks:val.wid
|
|
|
// }})
|
|
|
},
|
|
|
- setData() {
|
|
|
+ setData() {
|
|
|
if (this.show && this.toolIndex !== null) {
|
|
|
this.worksStudent = JSON.parse(
|
|
|
JSON.stringify(this.worksStudentData[this.toolIndex])
|
|
@@ -1061,7 +1064,7 @@ export default {
|
|
|
type: this.showType,
|
|
|
showStatisticsType:this.showStatisticsType,
|
|
|
}})
|
|
|
-
|
|
|
+
|
|
|
},
|
|
|
deleteWorks(wid) {
|
|
|
this.$emit("deleteWorks", wid);
|
|
@@ -1101,7 +1104,7 @@ export default {
|
|
|
let work = this.worksStudent.find(e=>e.wid==data.lookWorks);
|
|
|
if(work){
|
|
|
this.StudentWork(work)
|
|
|
- }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1747,7 +1750,7 @@ export default {
|
|
|
margin: 2px 4px;
|
|
|
display: block;
|
|
|
float: left;
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
|
|
|
.s_b_m_b_i_m_sorting{
|