|
@@ -23,13 +23,13 @@
|
|
|
<span>{{ activityInfo.name }}</span>
|
|
|
</div>
|
|
|
<div class="base-info">
|
|
|
- <p>
|
|
|
+ <!-- <p>
|
|
|
<i class="el-icon-user"></i>
|
|
|
课程老师:<span>罗老师</span>
|
|
|
- </p>
|
|
|
+ </p> -->
|
|
|
<p>
|
|
|
<i class="el-icon-postcard"></i>
|
|
|
- 学生名单:<span>2021级3班</span>
|
|
|
+ 学生名单:<span>{{ activityInfo.className }}</span>
|
|
|
</p>
|
|
|
<p>
|
|
|
<i class="el-icon-user"></i>
|
|
@@ -54,7 +54,7 @@
|
|
|
</template>
|
|
|
<template v-if="activityInfo.type === 'Art' && activityInfo.progress === 'going'">
|
|
|
<div class="art-content" v-if="subjectList.length">
|
|
|
- <div class="subject-content" v-for="item in subjectList" :key="item.id">
|
|
|
+ <div class="subject-content" v-for="item in subjectList" :key="item.subjectId">
|
|
|
<p class="subject-title">{{ item.subjectName }}</p>
|
|
|
<div class="paper-answer" v-if="item.paperId">
|
|
|
<div class="scoreboard">
|
|
@@ -69,47 +69,12 @@
|
|
|
<i class="el-icon-yiwancheng answer-type" style="font-size: 50px; color: #01adff;"></i>
|
|
|
</div>
|
|
|
</div>
|
|
|
- <template v-if="item.musicAIResult">
|
|
|
- <div v-for="(hw, index) in item.homework" :key="index">
|
|
|
- <template v-if="hw">
|
|
|
- <template v-if="hw.subject === 'subject_music' && hw.quotaId === 'quota_22'">
|
|
|
- <div class="scoreboard">
|
|
|
- <!-- <div v-if="hw.overTime && !hw.isAnswer" class="to-answer"> -->
|
|
|
- <div class="to-answer">
|
|
|
- <i class="el-icon-warning-outline"></i>
|
|
|
- <span style="margin-left: 5px;">已结束</span>
|
|
|
- <i class="el-icon-weizuoda answer-type" style="font-size: 50px;"></i>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- <div class="scoreboard">
|
|
|
- <!-- <div v-else-if="!hw.overTime && hw.isAnswer" class="to-answer"> -->
|
|
|
- <div class="to-answer">
|
|
|
- <i class="el-icon-gougou1" style="color: green;"></i>
|
|
|
- <span style="margin-left: 5px;">已完成作答</span>
|
|
|
- <i class="el-icon-yiwancheng answer-type" style="font-size: 50px; color: #01adff;"></i>
|
|
|
- </div></div>
|
|
|
- <div class="scoreboard">
|
|
|
- <!-- <div v-else-if="hw.overTime && hw.isAnswer" class="to-answer"> -->
|
|
|
- <div class="to-answer">
|
|
|
- <i class="el-icon-dianji" style="font-size: 35px; color: #03966a;"></i>
|
|
|
- <span style="color: #03966a; margin-left: 10px; font-size: 25px;">查看详情</span>
|
|
|
- </div></div>
|
|
|
- <!-- <div v-else class="to-answer"> -->
|
|
|
- <div class="scoreboard">
|
|
|
- <div class="to-answer">
|
|
|
- <i class="el-icon-dianji" style="font-size: 35px; color: #03966a;"></i>
|
|
|
- <span style="color: #03966a; margin-left: 10px; font-size: 25px;">开始演唱</span>
|
|
|
- <i class="el-icon-weizuoda answer-type" style="font-size: 50px;"></i>
|
|
|
- </div>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
- </template>
|
|
|
- </div>
|
|
|
- </template>
|
|
|
+ <ZhiYinView ref="art" v-if="item.subjectId === 'subject_music' && musicAIResult.actId" :musicInfo="musicAIResult"></ZhiYinView>
|
|
|
</div>
|
|
|
<div v-else class="paper-answer">
|
|
|
暂无科目相关内容
|
|
|
</div>
|
|
|
+
|
|
|
</div>
|
|
|
</div>
|
|
|
</template>
|
|
@@ -119,7 +84,12 @@
|
|
|
|
|
|
<script>
|
|
|
import {jwtDecode} from 'jwt-decode'
|
|
|
+import ZhiYinView from './ZhiYinView.vue'
|
|
|
+
|
|
|
export default {
|
|
|
+ components: {
|
|
|
+ ZhiYinView
|
|
|
+ },
|
|
|
data() {
|
|
|
return {
|
|
|
isLoadQues: false,
|
|
@@ -162,6 +132,9 @@ export default {
|
|
|
},
|
|
|
nowtime: null, //服务器时间
|
|
|
setting: undefined,
|
|
|
+ musicAIResult: {
|
|
|
+ actId: '',
|
|
|
+ },
|
|
|
}
|
|
|
},
|
|
|
async created() {
|
|
@@ -178,6 +151,15 @@ export default {
|
|
|
this.userInfo.schPicture = schoolInfo.picture
|
|
|
this.getActivityInfo()
|
|
|
},
|
|
|
+ mounted () {
|
|
|
+ this.$nextTick(() => {
|
|
|
+ window.addEventListener('message', e => {
|
|
|
+ if(e.data === 'closeReview' || e.data === 'singComplete') {
|
|
|
+ this.$refs['art'][0].setArtScore(e.data)
|
|
|
+ }
|
|
|
+ })
|
|
|
+ })
|
|
|
+ },
|
|
|
methods: {
|
|
|
getNowTime() {
|
|
|
return new Promise((resolve, reject) => {
|
|
@@ -193,8 +175,18 @@ export default {
|
|
|
res.evaluationClient.endTime = this.$tools.getDate(res.evaluationClient.etime, 'year')
|
|
|
res.evaluationClient.progress = this.timeStatus(res.evaluationClient.stime, res.evaluationClient.etime)
|
|
|
this.activityInfo = res.evaluationClient
|
|
|
+ this.activityInfo.className = ''
|
|
|
this.subjectList = res.evaluationClient.subjects
|
|
|
this.setting = res.setting
|
|
|
+ if(res.evaluationClient.music) {
|
|
|
+ this.musicAIResult.actId = res.evaluationClient.id
|
|
|
+ this.musicAIResult.taskId = res.evaluationClient.music.taskId
|
|
|
+ this.musicAIResult.musicId = res.evaluationClient.music.questionId
|
|
|
+ this.musicAIResult.sub = this.userInfo.sub
|
|
|
+ this.musicAIResult.azp = this.userInfo.azp
|
|
|
+ this.musicAIResult.overTime = this.nowtime > res.evaluationClient.etime
|
|
|
+ this.musicAIResult.settingId = res.setting.id
|
|
|
+ }
|
|
|
this.getResult()
|
|
|
} else {
|
|
|
this.loading.close()
|
|
@@ -202,6 +194,11 @@ export default {
|
|
|
message: '当前无评测可以作答',
|
|
|
type: 'warning'
|
|
|
});
|
|
|
+ setTimeout(() => {
|
|
|
+ this.$router.push({
|
|
|
+ path: "/login/student"
|
|
|
+ });
|
|
|
+ }, 1000)
|
|
|
}
|
|
|
})
|
|
|
},
|
|
@@ -218,6 +215,7 @@ export default {
|
|
|
this.$api.stuGetResult(params).then(res => {
|
|
|
if(res.code === 200) {
|
|
|
this.studentResult = res.studentResult
|
|
|
+ this.musicAIResult.finished = res.studentResult.musicAIResult?.finished
|
|
|
this.subjectList = this.subjectList.map(item => {
|
|
|
let subjectResult = res.studentResult.subjectResults.find(subject => subject.subjectId === item.subjectId)
|
|
|
item.finished = subjectResult ? subjectResult.finished : ''
|
|
@@ -225,6 +223,7 @@ export default {
|
|
|
item.paperName = subjectResult ? subjectResult.paperName : ''
|
|
|
return item
|
|
|
})
|
|
|
+ this.activityInfo.className = res.studentResult.className
|
|
|
}
|
|
|
}).finally(() => {
|
|
|
this.loading.close()
|
|
@@ -243,10 +242,9 @@ export default {
|
|
|
localStorage.setItem("evaluationInfo", encodeURIComponent(JSON.stringify(evaluationInfo)))
|
|
|
localStorage.setItem("setting", encodeURIComponent(JSON.stringify(this.setting)))
|
|
|
|
|
|
- // 存储一个字段:该艺术评测是否要乱序作答
|
|
|
- // getExamInfo 可能会有,就不用localStorage,如果用localStorage,要注意退出作答时清除之前的artExam
|
|
|
- // 还需后端返回
|
|
|
- // localStorage.setItem("artExamIsOrder", encodeURIComponent(JSON.stringify(art.examInfo[0].isOrder)))
|
|
|
+ // 存储一个字段:该艺术评测是否要乱序作答 disorder
|
|
|
+ let subj = this.activityInfo.subjects.find(item => item.subjectId === subjectInfo.subjectId)
|
|
|
+ localStorage.setItem("artExamIsOrder", encodeURIComponent(JSON.stringify(subj?.disorder || 0)))
|
|
|
this.$router.push({path: '/studentAns'})
|
|
|
},
|
|
|
loginOut() {
|