|
|
@ -13,7 +13,8 @@ |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<template v-if="showMask1"> |
|
|
|
<template v-if="showMask1"> |
|
|
|
<div class="word-mask" style="height: 40px;"></div> |
|
|
|
<div class="word-mask" style="height: 40px;"></div> |
|
|
|
<div class="word-mask2" style="top: 55px;left: 28%;width: 44%;height: calc(100% - 80px);"></div> |
|
|
|
<div class="word-mask2" |
|
|
|
|
|
|
|
style="top: 55px;left: 28%;width: 44%;height: calc(100% - 80px);"></div> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<template v-if="showMask2"> |
|
|
|
<template v-if="showMask2"> |
|
|
|
<div class="excel-mask1" style="height: 48px;"></div> |
|
|
|
<div class="excel-mask1" style="height: 48px;"></div> |
|
|
@ -23,7 +24,8 @@ |
|
|
|
<pdf :visible.sync="pdfVisible" :src.sync="pdfSrc"></pdf> |
|
|
|
<pdf :visible.sync="pdfVisible" :src.sync="pdfSrc"></pdf> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<div v-else> |
|
|
|
<div v-else> |
|
|
|
<video ref="video" controls class="video_wid" :src="videoSrc" controlsList="nodownload"></video> |
|
|
|
<video ref="video" controls class="video_wid" :src="videoSrc" |
|
|
|
|
|
|
|
controlsList="nodownload"></video> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-col> |
|
|
|
</el-col> |
|
|
@ -53,63 +55,72 @@ |
|
|
|
<template v-if="systemId == 1"> |
|
|
|
<template v-if="systemId == 1"> |
|
|
|
<div v-for="(item,index) in videoList1" :key="index"> |
|
|
|
<div v-for="(item,index) in videoList1" :key="index"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" @click="preview(item)">{{index+1}} {{item.title}}</p> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" |
|
|
|
|
|
|
|
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<template v-else-if="systemId == 4"> |
|
|
|
<template v-else-if="systemId == 4"> |
|
|
|
<div v-for="(item,index) in videoList4" :key="index"> |
|
|
|
<div v-for="(item,index) in videoList4" :key="index"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" @click="preview(item)">{{index+1}} {{item.title}}</p> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" |
|
|
|
|
|
|
|
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<template v-else-if="systemId == 5"> |
|
|
|
<template v-else-if="systemId == 5"> |
|
|
|
<div v-for="(item,index) in videoList5" :key="index"> |
|
|
|
<div v-for="(item,index) in videoList5" :key="index"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" @click="preview(item)">{{index+1}} {{item.title}}</p> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" |
|
|
|
|
|
|
|
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<template v-else-if="systemId == 6"> |
|
|
|
<template v-else-if="systemId == 6"> |
|
|
|
<div v-for="(item,index) in videoList6" :key="index"> |
|
|
|
<div v-for="(item,index) in videoList6" :key="index"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" @click="preview(item)">{{index+1}} {{item.title}}</p> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" |
|
|
|
|
|
|
|
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<template v-else-if="systemId == 7"> |
|
|
|
<template v-else-if="systemId == 7"> |
|
|
|
<div v-for="(item,index) in videoList7" :key="index"> |
|
|
|
<div v-for="(item,index) in videoList7" :key="index"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" @click="preview(item)">{{index+1}} {{item.title}}</p> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" |
|
|
|
|
|
|
|
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<template v-else-if="systemId == 8"> |
|
|
|
<template v-else-if="systemId == 8"> |
|
|
|
<div v-for="(item,index) in videoList8" :key="index"> |
|
|
|
<div v-for="(item,index) in videoList8" :key="index"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" @click="preview(item)">{{index+1}} {{item.title}}</p> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" |
|
|
|
|
|
|
|
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<template v-else-if="systemId == 9"> |
|
|
|
<template v-else-if="systemId == 9"> |
|
|
|
<div v-for="(item,index) in videoList9" :key="index"> |
|
|
|
<div v-for="(item,index) in videoList9" :key="index"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" @click="preview(item)">{{index+1}} {{item.title}}</p> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" |
|
|
|
|
|
|
|
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<template v-else-if="systemId == 10"> |
|
|
|
<template v-else-if="systemId == 10"> |
|
|
|
<div v-for="(item,index) in videoList10" :key="index"> |
|
|
|
<div v-for="(item,index) in videoList10" :key="index"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" @click="preview(item)">{{index+1}} {{item.title}}</p> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" |
|
|
|
|
|
|
|
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
<template v-else> |
|
|
|
<template v-else> |
|
|
|
<div v-for="(item,index) in videoList1" :key="index"> |
|
|
|
<div v-for="(item,index) in videoList1" :key="index"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<div class="flex-between list_catalog"> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" @click="preview(item)">{{index+1}} {{item.title}}</p> |
|
|
|
<p class="experimental_title" :class="{active: curLink == item.title}" |
|
|
|
|
|
|
|
@click="preview(item)">{{ index + 1 }} {{ item.title }}</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</template> |
|
|
|
</template> |
|
|
@ -120,7 +131,8 @@ |
|
|
|
</el-row> |
|
|
|
</el-row> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 答题弹框 --> |
|
|
|
<!-- 答题弹框 --> |
|
|
|
<el-dialog :visible.sync="evaluationVisible" width="30%" custom-class="evaluation_dialog" center :close-on-click-modal="false"> |
|
|
|
<el-dialog :visible.sync="evaluationVisible" width="30%" custom-class="evaluation_dialog" center |
|
|
|
|
|
|
|
:close-on-click-modal="false"> |
|
|
|
<div class="title">能力测评</div> |
|
|
|
<div class="title">能力测评</div> |
|
|
|
<div class="ques-wrap"> |
|
|
|
<div class="ques-wrap"> |
|
|
|
<p class="serial">{{ question.currentQuestionSortNo }}/{{ question.totalQuestionNum }}</p> |
|
|
|
<p class="serial">{{ question.currentQuestionSortNo }}/{{ question.totalQuestionNum }}</p> |
|
|
@ -131,7 +143,8 @@ |
|
|
|
<span>倒计时:{{ countdown }}</span> |
|
|
|
<span>倒计时:{{ countdown }}</span> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<ul class="options" :class="{isDone}"> |
|
|
|
<ul class="options" :class="{isDone}"> |
|
|
|
<li v-for="(item,key) in question.options" :key="key" :class="{active: selected.includes(key)}" @click="selectOption(key)"><em>{{key}}.</em><span>{{item}}</span></li> |
|
|
|
<li v-for="(item,key) in question.options" :key="key" :class="{active: selected.includes(key)}" |
|
|
|
|
|
|
|
@click="selectOption(key)"><em>{{ key }}.</em><span>{{ item }}</span></li> |
|
|
|
</ul> |
|
|
|
</ul> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
@ -148,25 +161,30 @@ |
|
|
|
</el-dialog> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 提交成绩弹框 --> |
|
|
|
<!-- 提交成绩弹框 --> |
|
|
|
<el-dialog :visible.sync="resultVisible" width="30%" custom-class="result_dialog" center :close-on-click-modal="false"> |
|
|
|
<el-dialog :visible.sync="resultVisible" width="30%" custom-class="result_dialog" center |
|
|
|
|
|
|
|
:close-on-click-modal="false"> |
|
|
|
<div class="result"><span>{{ result.isPassed }}</span></div> |
|
|
|
<div class="result"><span>{{ result.isPassed }}</span></div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="ques-wrap"> |
|
|
|
<div class="ques-wrap"> |
|
|
|
<div class="point"> |
|
|
|
<div class="point"> |
|
|
|
<span>{{ result.totalScore }}</span>分 |
|
|
|
<span>{{ result.totalScore }}</span>分 |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
<p class="tips">{{result.isPassed == '通过' ? '恭喜' : ''}}你答对{{result.correctQuestionNum}}题,正确率{{result.correctRate}}!</p> |
|
|
|
<p class="tips"> |
|
|
|
|
|
|
|
{{ result.isPassed == "通过" ? "恭喜" : "" }}你答对{{ result.correctQuestionNum |
|
|
|
|
|
|
|
}}题,正确率{{ result.correctRate }}!</p> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
|
|
<div slot="footer" class="dialog-footer"> |
|
|
|
<div slot="footer" class="dialog-footer"> |
|
|
|
<el-button class="first" @click="toEvaluation(0)">再试一次</el-button> |
|
|
|
<el-button class="first" @click="toEvaluation(0)">再试一次</el-button> |
|
|
|
<el-button class="second" type="primary" @click="getDetail">成绩详情</el-button> |
|
|
|
<el-button class="second" type="primary" @click="getDetail">成绩详情</el-button> |
|
|
|
<el-button v-if="result.isPassed == '通过'" class="third" type="primary" @click="goSubSystem">进入实训</el-button> |
|
|
|
<el-button v-if="result.isPassed == '通过'" class="third" type="primary" @click="goSubSystem">进入实训 |
|
|
|
|
|
|
|
</el-button> |
|
|
|
</div> |
|
|
|
</div> |
|
|
|
</el-dialog> |
|
|
|
</el-dialog> |
|
|
|
|
|
|
|
|
|
|
|
<!-- 成绩详情弹框 --> |
|
|
|
<!-- 成绩详情弹框 --> |
|
|
|
<el-dialog :visible.sync="detailVisible" width="30%" custom-class="detail_dialog" center :close-on-click-modal="false"> |
|
|
|
<el-dialog :visible.sync="detailVisible" width="30%" custom-class="detail_dialog" center |
|
|
|
|
|
|
|
:close-on-click-modal="false"> |
|
|
|
<div class="title">成绩详情</div> |
|
|
|
<div class="title">成绩详情</div> |
|
|
|
<div style="min-height: 370px"> |
|
|
|
<div style="min-height: 370px"> |
|
|
|
<el-table :data="detailData" height="340" border style="width: 100%"> |
|
|
|
<el-table :data="detailData" height="340" border style="width: 100%"> |
|
|
@ -189,11 +207,11 @@ |
|
|
|
</template> |
|
|
|
</template> |
|
|
|
|
|
|
|
|
|
|
|
<script> |
|
|
|
<script> |
|
|
|
import { mapState, mapActions } from 'vuex' |
|
|
|
import { mapState, mapActions } from "vuex"; |
|
|
|
import util from '@/libs/util' |
|
|
|
import util from "@/libs/util"; |
|
|
|
import Setting from '@/setting' |
|
|
|
import Setting from "@/setting"; |
|
|
|
import pdf from '@/components/pdf' |
|
|
|
import pdf from "@/components/pdf"; |
|
|
|
import { videoList1, videoList4, videoList5, videoList6, videoList7, videoList8} from '@/libs/videoList' |
|
|
|
import { videoList1, videoList4, videoList5, videoList6, videoList7, videoList8 } from "@/libs/videoList"; |
|
|
|
|
|
|
|
|
|
|
|
export default { |
|
|
|
export default { |
|
|
|
components: { pdf }, |
|
|
|
components: { pdf }, |
|
|
@ -201,9 +219,9 @@ export default { |
|
|
|
return { |
|
|
|
return { |
|
|
|
systemId: Setting.systemId, |
|
|
|
systemId: Setting.systemId, |
|
|
|
systemList: Setting.systemList, |
|
|
|
systemList: Setting.systemList, |
|
|
|
video: 'http://liuwanr.oss-cn-shenzhen.aliyuncs.com/mp4/20200519/1589871025648.mp4', |
|
|
|
video: "http://liuwanr.oss-cn-shenzhen.aliyuncs.com/mp4/20200519/1589871025648.mp4", |
|
|
|
videoSrc: '', |
|
|
|
videoSrc: "", |
|
|
|
curLink: '', |
|
|
|
curLink: "", |
|
|
|
videoList1, |
|
|
|
videoList1, |
|
|
|
videoList4, |
|
|
|
videoList4, |
|
|
|
videoList5, |
|
|
|
videoList5, |
|
|
@ -217,8 +235,8 @@ export default { |
|
|
|
question: { |
|
|
|
question: { |
|
|
|
options: {} |
|
|
|
options: {} |
|
|
|
}, |
|
|
|
}, |
|
|
|
countdown: '', |
|
|
|
countdown: "", |
|
|
|
selected: '', |
|
|
|
selected: "", |
|
|
|
result: {}, |
|
|
|
result: {}, |
|
|
|
detail: {}, |
|
|
|
detail: {}, |
|
|
|
timer: null, |
|
|
|
timer: null, |
|
|
@ -228,11 +246,11 @@ export default { |
|
|
|
history: [], |
|
|
|
history: [], |
|
|
|
btnType: 1, |
|
|
|
btnType: 1, |
|
|
|
|
|
|
|
|
|
|
|
coverUrl: '', |
|
|
|
coverUrl: "", |
|
|
|
playAuth: '', |
|
|
|
playAuth: "", |
|
|
|
player: null, |
|
|
|
player: null, |
|
|
|
previewImg: '', |
|
|
|
previewImg: "", |
|
|
|
iframeSrc: '', |
|
|
|
iframeSrc: "", |
|
|
|
isWord: false, |
|
|
|
isWord: false, |
|
|
|
isPPT: false, |
|
|
|
isPPT: false, |
|
|
|
isExcel: false, |
|
|
|
isExcel: false, |
|
|
@ -240,35 +258,35 @@ export default { |
|
|
|
showMask1: false, |
|
|
|
showMask1: false, |
|
|
|
showMask2: false, |
|
|
|
showMask2: false, |
|
|
|
closePosi: { |
|
|
|
closePosi: { |
|
|
|
top: '80px' |
|
|
|
top: "80px" |
|
|
|
}, |
|
|
|
}, |
|
|
|
pdfVisible: false, |
|
|
|
pdfVisible: false, |
|
|
|
pdfSrc: '', |
|
|
|
pdfSrc: "" |
|
|
|
}; |
|
|
|
}; |
|
|
|
}, |
|
|
|
}, |
|
|
|
computed: { |
|
|
|
computed: { |
|
|
|
...mapState('user', [ |
|
|
|
...mapState("user", [ |
|
|
|
'studentId','userId' |
|
|
|
"studentId", "userId" |
|
|
|
]), |
|
|
|
]) |
|
|
|
}, |
|
|
|
}, |
|
|
|
watch: { |
|
|
|
watch: { |
|
|
|
question: { |
|
|
|
question: { |
|
|
|
handler(newVal, oldVal) { |
|
|
|
handler(newVal, oldVal) { |
|
|
|
for (let n in newVal.options) { |
|
|
|
for (let n in newVal.options) { |
|
|
|
if(newVal.options[n] == '') delete(newVal.options[n]) |
|
|
|
if (newVal.options[n] == "") delete (newVal.options[n]); |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
deep: true |
|
|
|
deep: true |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
mounted() { |
|
|
|
mounted() { |
|
|
|
this.insertScript() |
|
|
|
this.insertScript(); |
|
|
|
// this.getData() |
|
|
|
// this.getData() |
|
|
|
this.preview(this.videoList1[0]) |
|
|
|
this.preview(this.videoList1[0]); |
|
|
|
this.$once('hook:beforeDestroy', function () { |
|
|
|
this.$once("hook:beforeDestroy", function() { |
|
|
|
clearInterval(this.timer) |
|
|
|
clearInterval(this.timer); |
|
|
|
this.timer = null |
|
|
|
this.timer = null; |
|
|
|
}) |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
methods: { |
|
|
|
methods: { |
|
|
|
// async getData(){ |
|
|
|
// async getData(){ |
|
|
@ -279,150 +297,150 @@ export default { |
|
|
|
// this.videoList = res.data.list |
|
|
|
// this.videoList = res.data.list |
|
|
|
// }, |
|
|
|
// }, |
|
|
|
async toEvaluation(type, btn) { |
|
|
|
async toEvaluation(type, btn) { |
|
|
|
clearInterval(this.timer) |
|
|
|
clearInterval(this.timer); |
|
|
|
this.lastOne = false |
|
|
|
this.lastOne = false; |
|
|
|
this.selected = '' |
|
|
|
this.selected = ""; |
|
|
|
this.resultVisible = false |
|
|
|
this.resultVisible = false; |
|
|
|
this.history = [] |
|
|
|
this.history = []; |
|
|
|
if(btn) this.btnType = btn |
|
|
|
if (btn) this.btnType = btn; |
|
|
|
if (type) { |
|
|
|
if (type) { |
|
|
|
let res = null |
|
|
|
let res = null; |
|
|
|
if (btn == 2) { |
|
|
|
if (btn == 2) { |
|
|
|
res = await this.$get(this.api.openExercise, { userId: this.userId }) |
|
|
|
res = await this.$get(this.api.openExercise, { userId: this.userId }); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
res = await this.$get(this.api.openTeaching, { userId: this.userId }) |
|
|
|
res = await this.$get(this.api.openTeaching, { userId: this.userId }); |
|
|
|
} |
|
|
|
} |
|
|
|
if(res.errmessage == 'true'){ |
|
|
|
if (res.errmessage == "true") { |
|
|
|
if (btn == 2) { |
|
|
|
if (btn == 2) { |
|
|
|
this.goSubSystem() |
|
|
|
this.goSubSystem(); |
|
|
|
} |
|
|
|
} |
|
|
|
if (btn == 3) { |
|
|
|
if (btn == 3) { |
|
|
|
this.$router.push('/project') |
|
|
|
this.$router.push("/project"); |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
this.$alert('请先完成能力测评并达到60分以上才可以进行实验', '提示', { |
|
|
|
this.$alert("请先完成能力测评并达到60分以上才可以进行实验", "提示", { |
|
|
|
confirmButtonText: '进入测评', |
|
|
|
confirmButtonText: "进入测评", |
|
|
|
callback: action => { |
|
|
|
callback: action => { |
|
|
|
action == 'confirm' && this.toEvaluation(0) |
|
|
|
action == "confirm" && this.toEvaluation(0); |
|
|
|
} |
|
|
|
} |
|
|
|
}); |
|
|
|
}); |
|
|
|
} |
|
|
|
} |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
this.start() |
|
|
|
this.start(); |
|
|
|
this.getCountdown() |
|
|
|
this.getCountdown(); |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
handleQues() { |
|
|
|
handleQues() { |
|
|
|
this.question.options = {} |
|
|
|
this.question.options = {}; |
|
|
|
for (let n in this.question) { |
|
|
|
for (let n in this.question) { |
|
|
|
if(n.includes('option') && n != 'options') { |
|
|
|
if (n.includes("option") && n != "options") { |
|
|
|
this.question.options[n.replace('option','')] = this.question[n] |
|
|
|
this.question.options[n.replace("option", "")] = this.question[n]; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
if (this.question.currentQuestionSortNo == this.question.totalQuestionNum) { |
|
|
|
if (this.question.currentQuestionSortNo == this.question.totalQuestionNum) { |
|
|
|
this.lastOne = true |
|
|
|
this.lastOne = true; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
this.lastOne = false |
|
|
|
this.lastOne = false; |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
async start() { |
|
|
|
async start() { |
|
|
|
let res = await this.$get(this.api.experimentStart, { userId: this.userId,types: this.btnType }) |
|
|
|
let res = await this.$get(this.api.experimentStart, { userId: this.userId, types: this.btnType }); |
|
|
|
if (res.data) { |
|
|
|
if (res.data) { |
|
|
|
this.question = res.data |
|
|
|
this.question = res.data; |
|
|
|
this.isDone = false |
|
|
|
this.isDone = false; |
|
|
|
this.question.currentQuestionSortNo == 1 && this.$store.commit("answerHistoryData", { answerHistory : []}) |
|
|
|
this.question.currentQuestionSortNo == 1 && this.$store.commit("answerHistoryData", { answerHistory: [] }); |
|
|
|
this.handleQues() |
|
|
|
this.handleQues(); |
|
|
|
this.evaluationVisible = true |
|
|
|
this.evaluationVisible = true; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
util.warningMsg(res.message) |
|
|
|
util.warningMsg(res.message); |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
async getCountdown() { |
|
|
|
async getCountdown() { |
|
|
|
let res = await this.$get(this.api.experimentRemaining, { userId: this.userId }) |
|
|
|
let res = await this.$get(this.api.experimentRemaining, { userId: this.userId }); |
|
|
|
res.data && this.countDown(res.data) |
|
|
|
res.data && this.countDown(res.data); |
|
|
|
// this.countDown('00:00:05') |
|
|
|
// this.countDown('00:00:05') |
|
|
|
}, |
|
|
|
}, |
|
|
|
countDown(time) { |
|
|
|
countDown(time) { |
|
|
|
this.countdown = time |
|
|
|
this.countdown = time; |
|
|
|
this.timer = setInterval(() => { |
|
|
|
this.timer = setInterval(() => { |
|
|
|
let timeList = this.countdown.split(':') |
|
|
|
let timeList = this.countdown.split(":"); |
|
|
|
let total = Number.parseInt(timeList[1] * 60) + Number.parseInt(timeList[2]) |
|
|
|
let total = Number.parseInt(timeList[1] * 60) + Number.parseInt(timeList[2]); |
|
|
|
if (total > 0) { |
|
|
|
if (total > 0) { |
|
|
|
--total |
|
|
|
--total; |
|
|
|
let minutes = Math.floor(total / 60) |
|
|
|
let minutes = Math.floor(total / 60); |
|
|
|
let seconds = Math.floor(total % 60) |
|
|
|
let seconds = Math.floor(total % 60); |
|
|
|
this.countdown = `00:${util.formateTime(minutes)}:${util.formateTime(seconds)}` |
|
|
|
this.countdown = `00:${util.formateTime(minutes)}:${util.formateTime(seconds)}`; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
this.isDone = true |
|
|
|
this.isDone = true; |
|
|
|
util.warningMsg('测评时间结束'); |
|
|
|
util.warningMsg("测评时间结束"); |
|
|
|
clearInterval(this.timer) |
|
|
|
clearInterval(this.timer); |
|
|
|
this.prevQues() |
|
|
|
this.prevQues(); |
|
|
|
} |
|
|
|
} |
|
|
|
},1000) |
|
|
|
}, 1000); |
|
|
|
}, |
|
|
|
}, |
|
|
|
selectOption(option) { |
|
|
|
selectOption(option) { |
|
|
|
if (!this.isDone) { |
|
|
|
if (!this.isDone) { |
|
|
|
if (this.selected.includes(option)) { |
|
|
|
if (this.selected.includes(option)) { |
|
|
|
this.selected = this.selected.replace(option,'') |
|
|
|
this.selected = this.selected.replace(option, ""); |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
if (this.question.questionType == 2) { |
|
|
|
if (this.question.questionType == 2) { |
|
|
|
this.selected += option |
|
|
|
this.selected += option; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
this.selected = option |
|
|
|
this.selected = option; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
getHistory() { |
|
|
|
getHistory() { |
|
|
|
this.history = this.$store.state.answerHistory |
|
|
|
this.history = this.$store.state.answerHistory; |
|
|
|
}, |
|
|
|
}, |
|
|
|
async nextQues() { |
|
|
|
async nextQues() { |
|
|
|
if(!this.selected) return util.warningMsg('请选择答案') |
|
|
|
if (!this.selected) return util.warningMsg("请选择答案"); |
|
|
|
this.getHistory() |
|
|
|
this.getHistory(); |
|
|
|
if (this.history.length > this.question.currentQuestionSortNo) { |
|
|
|
if (this.history.length > this.question.currentQuestionSortNo) { |
|
|
|
this.history[this.question.currentQuestionSortNo-1] = this.selected |
|
|
|
this.history[this.question.currentQuestionSortNo - 1] = this.selected; |
|
|
|
} else if (this.history.length < this.question.currentQuestionSortNo) { |
|
|
|
} else if (this.history.length < this.question.currentQuestionSortNo) { |
|
|
|
this.history.push(this.selected) |
|
|
|
this.history.push(this.selected); |
|
|
|
} |
|
|
|
} |
|
|
|
this.$store.commit("answerHistoryData", { answerHistory : this.history}) |
|
|
|
this.$store.commit("answerHistoryData", { answerHistory: this.history }); |
|
|
|
let res = await this.$post(this.api.experimentNext, { |
|
|
|
let res = await this.$post(this.api.experimentNext, { |
|
|
|
id: this.question.id, |
|
|
|
id: this.question.id, |
|
|
|
currentQuestionSortNo: this.question.currentQuestionSortNo, |
|
|
|
currentQuestionSortNo: this.question.currentQuestionSortNo, |
|
|
|
// userAnswer: this.selected.split('').sort().join(',') |
|
|
|
// userAnswer: this.selected.split('').sort().join(',') |
|
|
|
userAnswer: this.selected |
|
|
|
userAnswer: this.selected |
|
|
|
}) |
|
|
|
}); |
|
|
|
if (res.data) { |
|
|
|
if (res.data) { |
|
|
|
this.question = res.data |
|
|
|
this.question = res.data; |
|
|
|
this.selected = '' |
|
|
|
this.selected = ""; |
|
|
|
if (this.history.length >= this.question.currentQuestionSortNo) { |
|
|
|
if (this.history.length >= this.question.currentQuestionSortNo) { |
|
|
|
this.selected = this.history[this.question.currentQuestionSortNo-1] |
|
|
|
this.selected = this.history[this.question.currentQuestionSortNo - 1]; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
this.selected = '' |
|
|
|
this.selected = ""; |
|
|
|
} |
|
|
|
} |
|
|
|
this.handleQues() |
|
|
|
this.handleQues(); |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
async prevQues() { |
|
|
|
async prevQues() { |
|
|
|
if (this.question.currentQuestionSortNo > 1) { |
|
|
|
if (this.question.currentQuestionSortNo > 1) { |
|
|
|
this.getHistory() |
|
|
|
this.getHistory(); |
|
|
|
let res = await this.$post(this.api.experimentPrevious, { |
|
|
|
let res = await this.$post(this.api.experimentPrevious, { |
|
|
|
id: this.question.id, |
|
|
|
id: this.question.id, |
|
|
|
currentQuestionSortNo: this.question.currentQuestionSortNo, |
|
|
|
currentQuestionSortNo: this.question.currentQuestionSortNo, |
|
|
|
// userAnswer: this.selected.split('').sort().join(',') |
|
|
|
// userAnswer: this.selected.split('').sort().join(',') |
|
|
|
userAnswer: this.selected |
|
|
|
userAnswer: this.selected |
|
|
|
}) |
|
|
|
}); |
|
|
|
if (res.data) { |
|
|
|
if (res.data) { |
|
|
|
this.question = res.data |
|
|
|
this.question = res.data; |
|
|
|
this.selected = this.history[this.question.currentQuestionSortNo-1] |
|
|
|
this.selected = this.history[this.question.currentQuestionSortNo - 1]; |
|
|
|
this.isDone ? this.submitQues() : this.handleQues() |
|
|
|
this.isDone ? this.submitQues() : this.handleQues(); |
|
|
|
} |
|
|
|
} |
|
|
|
} else if (this.isDone) { |
|
|
|
} else if (this.isDone) { |
|
|
|
if(!this.selected) this.selected = 'A' |
|
|
|
if (!this.selected) this.selected = "A"; |
|
|
|
this.submitQues() |
|
|
|
this.submitQues(); |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
async submitQues() { |
|
|
|
async submitQues() { |
|
|
|
if(!this.selected) return util.warningMsg('请选择答案'); |
|
|
|
if (!this.selected) return util.warningMsg("请选择答案"); |
|
|
|
let res = await this.$post(this.api.experimentSubmit, { |
|
|
|
let res = await this.$post(this.api.experimentSubmit, { |
|
|
|
id: this.question.id, |
|
|
|
id: this.question.id, |
|
|
|
currentQuestionSortNo: this.question.currentQuestionSortNo, |
|
|
|
currentQuestionSortNo: this.question.currentQuestionSortNo, |
|
|
@ -430,112 +448,112 @@ export default { |
|
|
|
userAnswer: this.selected, |
|
|
|
userAnswer: this.selected, |
|
|
|
userId: this.userId, |
|
|
|
userId: this.userId, |
|
|
|
types: this.btnType |
|
|
|
types: this.btnType |
|
|
|
}) |
|
|
|
}); |
|
|
|
if (res.data) { |
|
|
|
if (res.data) { |
|
|
|
this.result = res.data |
|
|
|
this.result = res.data; |
|
|
|
this.evaluationVisible = false |
|
|
|
this.evaluationVisible = false; |
|
|
|
this.resultVisible = true |
|
|
|
this.resultVisible = true; |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
async getDetail() { |
|
|
|
async getDetail() { |
|
|
|
let res = await this.$get(this.api.experimentDetail, { |
|
|
|
let res = await this.$get(this.api.experimentDetail, { |
|
|
|
evaluationRecordId: this.question.id |
|
|
|
evaluationRecordId: this.question.id |
|
|
|
}) |
|
|
|
}); |
|
|
|
if (res.data) { |
|
|
|
if (res.data) { |
|
|
|
this.totalScore = res.data.totalScore |
|
|
|
this.totalScore = res.data.totalScore; |
|
|
|
this.detailData = res.data.evaluationDetailVOS |
|
|
|
this.detailData = res.data.evaluationDetailVOS; |
|
|
|
this.resultVisible = false |
|
|
|
this.resultVisible = false; |
|
|
|
this.detailVisible = true |
|
|
|
this.detailVisible = true; |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
systemChange() { |
|
|
|
systemChange() { |
|
|
|
this.videoSrc = '' |
|
|
|
this.videoSrc = ""; |
|
|
|
this.preview(this[`videoList${this.systemId}`][0]) |
|
|
|
this.preview(this[`videoList${this.systemId}`][0]); |
|
|
|
}, |
|
|
|
}, |
|
|
|
preview(row) { |
|
|
|
preview(row) { |
|
|
|
let url = row.links |
|
|
|
let url = row.links; |
|
|
|
this.videoSrc = '' |
|
|
|
this.videoSrc = ""; |
|
|
|
this.coverUrl = '' |
|
|
|
this.coverUrl = ""; |
|
|
|
this.pdfSrc = '' |
|
|
|
this.pdfSrc = ""; |
|
|
|
this.iframeSrc = '' |
|
|
|
this.iframeSrc = ""; |
|
|
|
this.curLink = row.title |
|
|
|
this.curLink = row.title; |
|
|
|
let ext = util.getFileExt(url) |
|
|
|
let ext = util.getFileExt(url); |
|
|
|
if (util.isVideo(ext)) { |
|
|
|
if (util.isVideo(ext)) { |
|
|
|
this.videoSrc = url |
|
|
|
this.videoSrc = url; |
|
|
|
}else if(ext == 'pdf'){ |
|
|
|
} else if (ext == "pdf") { |
|
|
|
this.pdfSrc = url |
|
|
|
this.pdfSrc = url; |
|
|
|
this.pdfVisible = true |
|
|
|
this.pdfVisible = true; |
|
|
|
} else if (util.isImg(ext)) { |
|
|
|
} else if (util.isImg(ext)) { |
|
|
|
window.open(url) |
|
|
|
window.open(url); |
|
|
|
} else if (util.isDoc(ext)) { |
|
|
|
} else if (util.isDoc(ext)) { |
|
|
|
if(ext == 'pptx'){ |
|
|
|
if (ext == "pptx") { |
|
|
|
this.isPPT = true |
|
|
|
this.isPPT = true; |
|
|
|
this.isWord = false |
|
|
|
this.isWord = false; |
|
|
|
this.isExcel = false |
|
|
|
this.isExcel = false; |
|
|
|
}else if(ext == 'doc' || ext == 'docx'){ |
|
|
|
} else if (ext == "doc" || ext == "docx") { |
|
|
|
this.isPPT = false |
|
|
|
this.isPPT = false; |
|
|
|
this.isWord = true |
|
|
|
this.isWord = true; |
|
|
|
this.isExcel = false |
|
|
|
this.isExcel = false; |
|
|
|
}else if(ext == 'xls' || ext == 'xlsx'){ |
|
|
|
} else if (ext == "xls" || ext == "xlsx") { |
|
|
|
this.isExcel = true |
|
|
|
this.isExcel = true; |
|
|
|
this.isPPT = false |
|
|
|
this.isPPT = false; |
|
|
|
this.isWord = false |
|
|
|
this.isWord = false; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
this.isPPT = false |
|
|
|
this.isPPT = false; |
|
|
|
this.isWord = false |
|
|
|
this.isWord = false; |
|
|
|
this.isExcel = false |
|
|
|
this.isExcel = false; |
|
|
|
} |
|
|
|
} |
|
|
|
if (this.isPPT) { |
|
|
|
if (this.isPPT) { |
|
|
|
this.showMask = true |
|
|
|
this.showMask = true; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
this.showMask = false |
|
|
|
this.showMask = false; |
|
|
|
} |
|
|
|
} |
|
|
|
if (this.isWord) { |
|
|
|
if (this.isWord) { |
|
|
|
this.showMask1 = true |
|
|
|
this.showMask1 = true; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
this.showMask1 = false |
|
|
|
this.showMask1 = false; |
|
|
|
} |
|
|
|
} |
|
|
|
if (this.isExcel) { |
|
|
|
if (this.isExcel) { |
|
|
|
this.showMask2 = true |
|
|
|
this.showMask2 = true; |
|
|
|
} else { |
|
|
|
} else { |
|
|
|
this.showMask2 = false |
|
|
|
this.showMask2 = false; |
|
|
|
} |
|
|
|
} |
|
|
|
this.iframeSrc = `https://view.officeapps.live.com/op/view.aspx?src=${url}` |
|
|
|
this.iframeSrc = `https://view.officeapps.live.com/op/view.aspx?src=${url}`; |
|
|
|
} |
|
|
|
} |
|
|
|
}, |
|
|
|
}, |
|
|
|
closeIframe() { |
|
|
|
closeIframe() { |
|
|
|
this.iframeSrc = '' |
|
|
|
this.iframeSrc = ""; |
|
|
|
this.showMask = false |
|
|
|
this.showMask = false; |
|
|
|
this.showMask1 = false |
|
|
|
this.showMask1 = false; |
|
|
|
this.showMask2 = false |
|
|
|
this.showMask2 = false; |
|
|
|
this.curLink = '' |
|
|
|
this.curLink = ""; |
|
|
|
}, |
|
|
|
}, |
|
|
|
// 插入阿里云播放器脚本 |
|
|
|
// 插入阿里云播放器脚本 |
|
|
|
insertScript() { |
|
|
|
insertScript() { |
|
|
|
const linkTag = document.createElement('link') |
|
|
|
const linkTag = document.createElement("link"); |
|
|
|
linkTag.id = 'aliplayerLink' |
|
|
|
linkTag.id = "aliplayerLink"; |
|
|
|
linkTag.rel = 'stylesheet' |
|
|
|
linkTag.rel = "stylesheet"; |
|
|
|
linkTag.href = 'https://g.alicdn.com/de/prismplayer/2.8.2/skins/default/aliplayer-min.css' |
|
|
|
linkTag.href = "https://g.alicdn.com/de/prismplayer/2.8.2/skins/default/aliplayer-min.css"; |
|
|
|
document.body.appendChild(linkTag) |
|
|
|
document.body.appendChild(linkTag); |
|
|
|
|
|
|
|
|
|
|
|
const scriptTag = document.createElement('script') |
|
|
|
const scriptTag = document.createElement("script"); |
|
|
|
scriptTag.id = 'aliplayerScript' |
|
|
|
scriptTag.id = "aliplayerScript"; |
|
|
|
scriptTag.type = 'text/javascript' |
|
|
|
scriptTag.type = "text/javascript"; |
|
|
|
scriptTag.src = 'https://g.alicdn.com/de/prismplayer/2.8.2/aliplayer-min.js' |
|
|
|
scriptTag.src = "https://g.alicdn.com/de/prismplayer/2.8.2/aliplayer-min.js"; |
|
|
|
document.body.appendChild(scriptTag) |
|
|
|
document.body.appendChild(scriptTag); |
|
|
|
this.$once('hook:beforeDestroy', function () { |
|
|
|
this.$once("hook:beforeDestroy", function() { |
|
|
|
document.body.removeChild(document.querySelector('#aliplayerLink')) |
|
|
|
document.body.removeChild(document.querySelector("#aliplayerLink")); |
|
|
|
document.body.removeChild(document.querySelector('#aliplayerScript')) |
|
|
|
document.body.removeChild(document.querySelector("#aliplayerScript")); |
|
|
|
}) |
|
|
|
}); |
|
|
|
}, |
|
|
|
}, |
|
|
|
goSubSystem() { |
|
|
|
goSubSystem() { |
|
|
|
util.cookies.set("assessmentId",'',-1) |
|
|
|
util.cookies.set("assessmentId", "", -1); |
|
|
|
util.cookies.set("studentId",this.studentId) |
|
|
|
util.cookies.set("studentId", this.studentId); |
|
|
|
util.cookies.set("projectId",'',-1) |
|
|
|
util.cookies.set("projectId", "", -1); |
|
|
|
util.cookies.set("startTime",'',-1) |
|
|
|
util.cookies.set("startTime", "", -1); |
|
|
|
util.cookies.set("stopTime",'',-1) |
|
|
|
util.cookies.set("stopTime", "", -1); |
|
|
|
location.href = Setting.defaultSubSystem |
|
|
|
location.href = Setting.defaultSubSystem; |
|
|
|
}, |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
}; |
|
|
|
}; |
|
|
|
</script> |
|
|
|
</script> |
|
|
@ -546,24 +564,30 @@ export default { |
|
|
|
height: 650px; |
|
|
|
height: 650px; |
|
|
|
border: 0; |
|
|
|
border: 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.video_wid:focus { |
|
|
|
.video_wid:focus { |
|
|
|
outline: none; |
|
|
|
outline: none; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.title_view { |
|
|
|
.title_view { |
|
|
|
background-color: #2F3236; |
|
|
|
background-color: #2F3236; |
|
|
|
padding: 12px 10px; |
|
|
|
padding: 12px 10px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
h3 { |
|
|
|
h3 { |
|
|
|
color: #9076FF; |
|
|
|
color: #9076FF; |
|
|
|
margin-bottom: 10px; |
|
|
|
margin-bottom: 10px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.catalog .title_view .el-button { |
|
|
|
.catalog .title_view .el-button { |
|
|
|
padding: 8px 20px; |
|
|
|
padding: 8px 20px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.btns { |
|
|
|
.btns { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
justify-content: space-between; |
|
|
|
justify-content: space-between; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.btns .el-button { |
|
|
|
.btns .el-button { |
|
|
|
flex: 1; |
|
|
|
flex: 1; |
|
|
|
height: 90px; |
|
|
|
height: 90px; |
|
|
@ -571,95 +595,118 @@ h3{ |
|
|
|
background: transparent url(../../../assets/img/ques1.png) 0 0/100% 100% no-repeat; |
|
|
|
background: transparent url(../../../assets/img/ques1.png) 0 0/100% 100% no-repeat; |
|
|
|
border: 0; |
|
|
|
border: 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.list_he { |
|
|
|
.list_he { |
|
|
|
height: 500px; |
|
|
|
height: 500px; |
|
|
|
overflow-y: auto; |
|
|
|
overflow-y: auto; |
|
|
|
padding: 20px 12px; |
|
|
|
padding: 20px 12px; |
|
|
|
background: #3f4449; |
|
|
|
background: #3f4449; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.list_he ul { |
|
|
|
.list_he ul { |
|
|
|
padding: 20px 0; |
|
|
|
padding: 20px 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.list_he ul li:first-child { |
|
|
|
.list_he ul li:first-child { |
|
|
|
margin-top: 0; |
|
|
|
margin-top: 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.list_he ul li { |
|
|
|
.list_he ul li { |
|
|
|
margin-top: 10px; |
|
|
|
margin-top: 10px; |
|
|
|
font-size: 14px; |
|
|
|
font-size: 14px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.list_title { |
|
|
|
.list_title { |
|
|
|
color: #9278FF; |
|
|
|
color: #9278FF; |
|
|
|
font-size: 20px; |
|
|
|
font-size: 20px; |
|
|
|
margin-left: 12px; |
|
|
|
margin-left: 12px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.list_catalog { |
|
|
|
.list_catalog { |
|
|
|
padding: 0 8px; |
|
|
|
padding: 0 8px; |
|
|
|
font-size: 14px; |
|
|
|
font-size: 14px; |
|
|
|
margin-top: 15px; |
|
|
|
margin-top: 15px; |
|
|
|
cursor: pointer; |
|
|
|
cursor: pointer; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.mar0 { |
|
|
|
.mar0 { |
|
|
|
margin-top: 0; |
|
|
|
margin-top: 0; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.list_catalog .catalog_button .el-button { |
|
|
|
.list_catalog .catalog_button .el-button { |
|
|
|
background-color: #2F3236; |
|
|
|
background-color: #2F3236; |
|
|
|
border: 1px solid rgba(144, 118, 255, 1); |
|
|
|
border: 1px solid rgba(144, 118, 255, 1); |
|
|
|
color: #9278FF; |
|
|
|
color: #9278FF; |
|
|
|
padding: 6px 8px; |
|
|
|
padding: 6px 8px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.experimental_title { |
|
|
|
.experimental_title { |
|
|
|
color: #fff; |
|
|
|
color: #fff; |
|
|
|
word-wrap: break-word; |
|
|
|
word-wrap: break-word; |
|
|
|
|
|
|
|
|
|
|
|
&.active { |
|
|
|
&.active { |
|
|
|
color: #9278FF; |
|
|
|
color: #9278FF; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.experimental_status { |
|
|
|
.experimental_status { |
|
|
|
margin-right: 10px; |
|
|
|
margin-right: 10px; |
|
|
|
color: #7A7A7A; |
|
|
|
color: #7A7A7A; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.curriculum_name { |
|
|
|
.curriculum_name { |
|
|
|
color: #fff; |
|
|
|
color: #fff; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.curriculum_name i { |
|
|
|
.curriculum_name i { |
|
|
|
margin-left: 5px; |
|
|
|
margin-left: 5px; |
|
|
|
margin-right: 5px; |
|
|
|
margin-right: 5px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.curriculum_status { |
|
|
|
.curriculum_status { |
|
|
|
color: #7A7A7A; |
|
|
|
color: #7A7A7A; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog { |
|
|
|
/deep/ .evaluation_dialog { |
|
|
|
min-height: 700px; |
|
|
|
min-height: 700px; |
|
|
|
background: url(../../../assets/img/evaluation_bg1.png) 0 0/100% 100% no-repeat; |
|
|
|
background: url(../../../assets/img/evaluation_bg1.png) 0 0/100% 100% no-repeat; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .el-dialog__headerbtn, /deep/ .evaluation_dialog .el-dialog__headerbtn, /deep/ .detail_dialog .el-dialog__headerbtn { |
|
|
|
/deep/ .evaluation_dialog .el-dialog__headerbtn, /deep/ .evaluation_dialog .el-dialog__headerbtn, /deep/ .detail_dialog .el-dialog__headerbtn { |
|
|
|
font-size: 28px; |
|
|
|
font-size: 28px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .title, /deep/ .detail_dialog .title { |
|
|
|
/deep/ .evaluation_dialog .title, /deep/ .detail_dialog .title { |
|
|
|
margin-bottom: 45px; |
|
|
|
margin-bottom: 45px; |
|
|
|
text-align: center; |
|
|
|
text-align: center; |
|
|
|
font-size: 24px |
|
|
|
font-size: 24px |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .title { |
|
|
|
/deep/ .evaluation_dialog .title { |
|
|
|
margin-bottom: 55px; |
|
|
|
margin-bottom: 55px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .serial { |
|
|
|
/deep/ .evaluation_dialog .serial { |
|
|
|
font-size: 12px; |
|
|
|
font-size: 12px; |
|
|
|
text-align: center; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .ques-wrap { |
|
|
|
/deep/ .evaluation_dialog .ques-wrap { |
|
|
|
width: 80%; |
|
|
|
width: 80%; |
|
|
|
margin: 0 auto; |
|
|
|
margin: 0 auto; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .type { |
|
|
|
/deep/ .evaluation_dialog .type { |
|
|
|
color: #666; |
|
|
|
color: #666; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .ques { |
|
|
|
/deep/ .evaluation_dialog .ques { |
|
|
|
margin: 20px 0; |
|
|
|
margin: 20px 0; |
|
|
|
min-height: 145px; |
|
|
|
min-height: 145px; |
|
|
|
color: #666; |
|
|
|
color: #666; |
|
|
|
font-size: 16px; |
|
|
|
font-size: 16px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .countdown { |
|
|
|
/deep/ .evaluation_dialog .countdown { |
|
|
|
margin-bottom: 20px; |
|
|
|
margin-bottom: 20px; |
|
|
|
justify-content: center; |
|
|
|
justify-content: center; |
|
|
@ -667,18 +714,22 @@ h3{ |
|
|
|
color: #DC3434; |
|
|
|
color: #DC3434; |
|
|
|
font-size: 14px; |
|
|
|
font-size: 14px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .countdown img { |
|
|
|
/deep/ .evaluation_dialog .countdown img { |
|
|
|
width: 15px !important; |
|
|
|
width: 15px !important; |
|
|
|
margin-right: 10px; |
|
|
|
margin-right: 10px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .options { |
|
|
|
/deep/ .evaluation_dialog .options { |
|
|
|
display: flex; |
|
|
|
display: flex; |
|
|
|
flex-direction: column; |
|
|
|
flex-direction: column; |
|
|
|
min-height: 340px; |
|
|
|
min-height: 340px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .options.isDone { |
|
|
|
/deep/ .evaluation_dialog .options.isDone { |
|
|
|
min-height: 395px; |
|
|
|
min-height: 395px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .options li { |
|
|
|
/deep/ .evaluation_dialog .options li { |
|
|
|
padding: 0 15px; |
|
|
|
padding: 0 15px; |
|
|
|
margin-bottom: 15px; |
|
|
|
margin-bottom: 15px; |
|
|
@ -688,33 +739,40 @@ h3{ |
|
|
|
color: #666; |
|
|
|
color: #666; |
|
|
|
cursor: pointer; |
|
|
|
cursor: pointer; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .options li:hover { |
|
|
|
/deep/ .evaluation_dialog .options li:hover { |
|
|
|
color: #fff; |
|
|
|
color: #fff; |
|
|
|
background-color: #b038bb; |
|
|
|
background-color: #b038bb; |
|
|
|
border-color: #b038bb; |
|
|
|
border-color: #b038bb; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .options li.active { |
|
|
|
/deep/ .evaluation_dialog .options li.active { |
|
|
|
color: #fff; |
|
|
|
color: #fff; |
|
|
|
background-color: #916CFF; |
|
|
|
background-color: #916CFF; |
|
|
|
border-color: #916CFF; |
|
|
|
border-color: #916CFF; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .options em { |
|
|
|
/deep/ .evaluation_dialog .options em { |
|
|
|
margin-right: 10px; |
|
|
|
margin-right: 10px; |
|
|
|
font-weight: bold; |
|
|
|
font-weight: bold; |
|
|
|
font-style: normal; |
|
|
|
font-style: normal; |
|
|
|
font-size: 16px; |
|
|
|
font-size: 16px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .options span { |
|
|
|
/deep/ .evaluation_dialog .options span { |
|
|
|
font-size: 16px; |
|
|
|
font-size: 16px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .el-dialog__footer { |
|
|
|
/deep/ .evaluation_dialog .el-dialog__footer { |
|
|
|
text-align: center; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .first, /deep/ .result_dialog .first { |
|
|
|
/deep/ .evaluation_dialog .first, /deep/ .result_dialog .first { |
|
|
|
color: #fff; |
|
|
|
color: #fff; |
|
|
|
background-color: #9268FF; |
|
|
|
background-color: #9268FF; |
|
|
|
border-color: #9268FF; |
|
|
|
border-color: #9268FF; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .second, /deep/ .result_dialog .second { |
|
|
|
/deep/ .evaluation_dialog .second, /deep/ .result_dialog .second { |
|
|
|
color: #fff; |
|
|
|
color: #fff; |
|
|
|
background-color: #E371DA; |
|
|
|
background-color: #E371DA; |
|
|
@ -725,31 +783,37 @@ h3{ |
|
|
|
min-height: 500px; |
|
|
|
min-height: 500px; |
|
|
|
background: url(../../../assets/img/evaluation_bg2.png) 0 0/100% 100% no-repeat; |
|
|
|
background: url(../../../assets/img/evaluation_bg2.png) 0 0/100% 100% no-repeat; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .result_dialog .el-dialog__headerbtn .el-dialog__close { |
|
|
|
/deep/ .result_dialog .el-dialog__headerbtn .el-dialog__close { |
|
|
|
color: #5a5a5a; |
|
|
|
color: #5a5a5a; |
|
|
|
font-size: 28px; |
|
|
|
font-size: 28px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .result_dialog .result { |
|
|
|
/deep/ .result_dialog .result { |
|
|
|
margin-top: 60px; |
|
|
|
margin-top: 60px; |
|
|
|
text-align: center; |
|
|
|
text-align: center; |
|
|
|
color: #fff; |
|
|
|
color: #fff; |
|
|
|
font-size: 24px; |
|
|
|
font-size: 24px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .result_dialog .point { |
|
|
|
/deep/ .result_dialog .point { |
|
|
|
margin: 30px 0 20px; |
|
|
|
margin: 30px 0 20px; |
|
|
|
text-align: center; |
|
|
|
text-align: center; |
|
|
|
font-size: 30px; |
|
|
|
font-size: 30px; |
|
|
|
color: #666; |
|
|
|
color: #666; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .result_dialog .point span { |
|
|
|
/deep/ .result_dialog .point span { |
|
|
|
font-size: 120px; |
|
|
|
font-size: 120px; |
|
|
|
font-weight: bold; |
|
|
|
font-weight: bold; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .result_dialog .tips { |
|
|
|
/deep/ .result_dialog .tips { |
|
|
|
color: #666; |
|
|
|
color: #666; |
|
|
|
text-align: center; |
|
|
|
text-align: center; |
|
|
|
font-size: 14px; |
|
|
|
font-size: 14px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .result_dialog .third { |
|
|
|
/deep/ .result_dialog .third { |
|
|
|
color: #fff; |
|
|
|
color: #fff; |
|
|
|
background-color: #418cf5; |
|
|
|
background-color: #418cf5; |
|
|
@ -759,18 +823,22 @@ h3{ |
|
|
|
/deep/ .detail_dialog { |
|
|
|
/deep/ .detail_dialog { |
|
|
|
background: url(../../../assets/img/evaluation_bg3.png) 0 0/100% 100% no-repeat; |
|
|
|
background: url(../../../assets/img/evaluation_bg3.png) 0 0/100% 100% no-repeat; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .detail_dialog .title { |
|
|
|
/deep/ .detail_dialog .title { |
|
|
|
margin-top: -20px; |
|
|
|
margin-top: -20px; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .detail_dialog .el-table__header th:nth-last-child(2) { |
|
|
|
/deep/ .detail_dialog .el-table__header th:nth-last-child(2) { |
|
|
|
text-align: center; |
|
|
|
text-align: center; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .detail_dialog .total { |
|
|
|
/deep/ .detail_dialog .total { |
|
|
|
margin-top: 20px; |
|
|
|
margin-top: 20px; |
|
|
|
text-align: center; |
|
|
|
text-align: center; |
|
|
|
font-size: 30px; |
|
|
|
font-size: 30px; |
|
|
|
color: #DC3434; |
|
|
|
color: #DC3434; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog { |
|
|
|
/deep/ .evaluation_dialog { |
|
|
|
margin: 0 !important; |
|
|
|
margin: 0 !important; |
|
|
|
position: absolute; |
|
|
|
position: absolute; |
|
|
@ -780,6 +848,7 @@ h3{ |
|
|
|
max-height: calc(100% - 30px); |
|
|
|
max-height: calc(100% - 30px); |
|
|
|
max-width: calc(100% - 30px); |
|
|
|
max-width: calc(100% - 30px); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/deep/ .evaluation_dialog .el-dialog__body { |
|
|
|
/deep/ .evaluation_dialog .el-dialog__body { |
|
|
|
flex: 1; |
|
|
|
flex: 1; |
|
|
|
overflow: auto; |
|
|
|
overflow: auto; |
|
|
@ -790,6 +859,7 @@ h3{ |
|
|
|
position: absolute; |
|
|
|
position: absolute; |
|
|
|
background-color: rgb(57, 58, 61); |
|
|
|
background-color: rgb(57, 58, 61); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.word-mask { |
|
|
|
.word-mask { |
|
|
|
z-index: 9; |
|
|
|
z-index: 9; |
|
|
|
position: absolute; |
|
|
|
position: absolute; |
|
|
@ -798,6 +868,7 @@ h3{ |
|
|
|
width: 100%; |
|
|
|
width: 100%; |
|
|
|
background-color: rgb(243, 242, 241); |
|
|
|
background-color: rgb(243, 242, 241); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.word-mask1 { |
|
|
|
.word-mask1 { |
|
|
|
z-index: 9; |
|
|
|
z-index: 9; |
|
|
|
position: absolute; |
|
|
|
position: absolute; |
|
|
@ -806,11 +877,13 @@ h3{ |
|
|
|
width: 100%; |
|
|
|
width: 100%; |
|
|
|
background-color: #185abd; |
|
|
|
background-color: #185abd; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.word-mask2 { |
|
|
|
.word-mask2 { |
|
|
|
z-index: 9; |
|
|
|
z-index: 9; |
|
|
|
position: absolute; |
|
|
|
position: absolute; |
|
|
|
background-color: transparent; |
|
|
|
background-color: transparent; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
.excel-mask1 { |
|
|
|
.excel-mask1 { |
|
|
|
z-index: 9; |
|
|
|
z-index: 9; |
|
|
|
position: absolute; |
|
|
|
position: absolute; |
|
|
@ -819,11 +892,13 @@ h3{ |
|
|
|
width: 60%; |
|
|
|
width: 60%; |
|
|
|
background-color: #107c41; |
|
|
|
background-color: #107c41; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$height: 650px; |
|
|
|
$height: 650px; |
|
|
|
.cover { |
|
|
|
.cover { |
|
|
|
position: relative; |
|
|
|
position: relative; |
|
|
|
height: $height; |
|
|
|
height: $height; |
|
|
|
border: 0; |
|
|
|
border: 0; |
|
|
|
|
|
|
|
|
|
|
|
.fileIframe { |
|
|
|
.fileIframe { |
|
|
|
width: 100%; |
|
|
|
width: 100%; |
|
|
|
height: $height !important; |
|
|
|
height: $height !important; |
|
|
|