dev_202412
yujialong 7 months ago
parent 5f20a498af
commit 50339c1779
  1. 44
      src/pages/match/details/index.vue
  2. 90
      src/pages/match/theoryExam/index.vue

@ -403,23 +403,26 @@
查找不到团队点击 <el-link :underline="false" type="primary" @click="toTeam">创建团队</el-link>
</p>
</el-form>
<div class="agreement">
<h6>指导老师承诺书</h6>
<div class="text">
<p class="line">本人自愿参加2024年安徽省大学生金融投资创新大赛工作为进一步提高廉洁自律意识客观公正的履行职责我以参赛团队领队/指导教师的身份和荣誉郑重作出如下承诺</p>
<p class="line">1.尊重大赛组委会及秘书处尊重专家和仲裁尊重其他参赛单位和选手认真指导学生参加安徽省大学生金融投资创新大赛客观公正地履行职责</p>
<p class="line">2.遵守道德遵守大赛纪律在确定大赛指导教师身份后至大赛结束前不私下接触其他参赛单位和团队成员专家裁判员仲裁员不参与以大赛名义举办的收费培训不收受他人的财物或其他好处
</p>
<p class="line">3.遵守公正公平原则不干预裁判员仲裁员等工作影响比赛成绩</p>
<p class="line">4.不为所带队学生的违纪行为说情解脱</p>
<p class="line">5.不发表不传播没有根据并对大赛产生不利影响的言论</p>
<p class="line">6.不隐瞒按规定应该回避的事项</p>
<p class="line">7.对于涉嫌泄密事宜愿接受协助配合相关部门的监督检查并履行举证义务</p>
<p class="line">8.如若发生上述问题自愿承担相关责任</p>
<p class="line">特此承诺</p>
<p class="line">勾选后才可登录和注册</p>
<el-checkbox class="m-t-10" v-model="agreeCheck">同意我已阅读</el-checkbox>
<div class="agree">
<div class="agreement">
<h6>指导老师承诺书</h6>
<div class="text">
<p class="line">本人自愿参加2024年安徽省大学生金融投资创新大赛工作为进一步提高廉洁自律意识客观公正的履行职责我以参赛团队领队/指导教师的身份和荣誉郑重作出如下承诺</p>
<p class="line">1.尊重大赛组委会及秘书处尊重专家和仲裁尊重其他参赛单位和选手认真指导学生参加安徽省大学生金融投资创新大赛客观公正地履行职责</p>
<p class="line">
2.遵守道德遵守大赛纪律在确定大赛指导教师身份后至大赛结束前不私下接触其他参赛单位和团队成员专家裁判员仲裁员不参与以大赛名义举办的收费培训不收受他人的财物或其他好处
</p>
<p class="line">3.遵守公正公平原则不干预裁判员仲裁员等工作影响比赛成绩</p>
<p class="line">4.不为所带队学生的违纪行为说情解脱</p>
<p class="line">5.不发表不传播没有根据并对大赛产生不利影响的言论</p>
<p class="line">6.不隐瞒按规定应该回避的事项</p>
<p class="line">7.对于涉嫌泄密事宜愿接受协助配合相关部门的监督检查并履行举证义务</p>
<p class="line">8.如若发生上述问题自愿承担相关责任</p>
<p class="line">特此承诺</p>
<p class="line">勾选后才可登录和注册</p>
</div>
</div>
<el-checkbox class="m-t-15 m-l-20" v-model="agreeCheck">同意我已阅读</el-checkbox>
</div>
</div>
<span slot="footer" class="dialog-footer">
@ -2201,11 +2204,16 @@ export default {
}
/deep/.enter-dia {
.agree {
width: 500px;
margin-left: 20px;
}
.agreement {
width: 600px;
max-height: 300px;
padding: 10px 20px;
margin-left: 20px;
box-shadow: 0 0 7px rgba(235, 235, 235, .8);
overflow: auto;
h6 {
font-size: 20px;

@ -102,14 +102,16 @@
<!-- 简答题需要展示题干文件及富文本 -->
<template v-if="item.questionType === 'essay'">
<div v-if="ques.stemAttachment" class="m-b-20">
<el-link class="m-r-10" type="primary">{{ ques.stemAttachment }}</el-link>
<el-button type="primary" size="mini" round @click="download(ques.stemAttachment)">下载</el-button>
<el-link class="m-r-10" type="primary" @click="preview(ques.stemAttachment)">{{ ques.fileName ||
ques.stemAttachment }}</el-link>
<el-button type="primary" size="mini" round
@click="download(ques.fileName || ques.stemAttachment, ques.stemAttachment)">下载</el-button>
</div>
<UeditorPlus :ref="'essayAnswer' + ques.id" v-model="ques.answer"
@ready="editor => essayAnswerReady(editor, ques)" />
<div v-if="ques.allowAttachment" class="m-t-20">
<div v-if="ques.uploadInstructions" class="flex m-b-10 fs-12">
<span>上传附件</span>
<span>上传要求说明</span>
<div v-html="ques.uploadInstructions"></div>
</div>
<Upload style="max-width: 700px;" accept=".csv,.xlsx,.xls,.docx,.doc,.pdf,.jpg,.png,.zip,.rar,.7z"
@ -129,6 +131,12 @@
</li>
</ul>
</div>
<el-dialog title="图片预览" :visible.sync="previewImgVisible" width="800px" :close-on-click-modal="false">
<el-image style="max-width: 100px; max-height: 100px" :src="previewImg" :preview-src-list="[previewImg]">
</el-image>
</el-dialog>
<PdfDia :key="pdfVisible" :visible.sync="pdfVisible" :src.sync="pdfSrc" />
</div>
</template>
@ -141,11 +149,12 @@ import _ from 'lodash'
import Oss from '@/components/upload/upload.js'
import Upload from '@/components/upload'
import UeditorPlus from '@/components/ueditorPlus'
import PdfDia from '@/components/pdf'
import Bus from '@/libs/bus'
export default {
components: {
Upload, UeditorPlus
Upload, UeditorPlus, PdfDia
},
data () {
return {
@ -166,6 +175,7 @@ export default {
stageName: '',
paperName: '',
},
timer: null,
counterTimer: null,
countVal: 0,
//
@ -193,12 +203,15 @@ export default {
submited: false,
warned: 0,
quesWrapWidth: 0,
previewImgVisible: false,
previewImg: '',
pdfVisible: false,
pdfSrc: '',
};
},
mounted () {
this.$once('hook:beforeDestroy', function () {
clearInterval(this.counterTimer)
this.submited || this.submit(0)
})
// websocket
@ -328,6 +341,12 @@ export default {
n.answered = hasFillLen === inputs.length ? 1 : 0
n.partAnswer = hasFillLen && hasFillLen !== inputs.length ? 1 : 0
clearTimeout(this.timer)
this.timer = setTimeout(() => {
this.submit(0)
this.calcProgress()
}, 500)
text = text.trim()
// //
@ -473,11 +492,13 @@ export default {
ques.answered = 1
this.calcProgress()
this.submit(0)
},
//
mulChange (ques) {
ques.answered = ques.questionAnswerVersionsList.some(e => e.answer)
this.calcProgress()
this.submit(0)
},
//
@ -487,13 +508,31 @@ export default {
const content = editor.getContent()
ques.answered = content ? 1 : 0
ques.answers = content
this.calcProgress()
clearTimeout(this.timer)
this.timer = setTimeout(() => {
this.submit(0)
this.calcProgress()
}, 500)
})
ques.answer && editor.setContent(ques.answer)
},
//
preview (url) {
const ext = url.split('.').pop()
if (Util.isDoc(ext)) {
window.open('https://view.officeapps.live.com/op/view.aspx?src=' + url)
} else if (Util.isImg(ext)) {
this.previewImgVisible = true
this.previewImg = url
} else if (ext === 'pdf') {
this.pdfVisible = true
this.pdfSrc = url
}
},
//
download (url) {
Util.downloadFile(url, url)
download (name, url) {
Util.downloadFile(name, url)
},
handleRemove (ques) {
Oss.del(ques.attachmentUrl)
@ -531,11 +570,10 @@ export default {
},
//
async submit (isSubmit) {
if (this.submiting) return false
if (isSubmit && this.submiting) return false
try {
this.submiting = true
if (isSubmit) this.submiting = true
const form = _.cloneDeep(this.form)
const now = await Util.getNow()
const { entryTime, curStage } = this
const ques = []
form.paperOutline.map(e => {
@ -564,27 +602,31 @@ export default {
})
})
})
const timeSum = Math.ceil((now - entryTime) / 60000) //
const submitTime = Util.formatDate('yyyy-MM-dd hh:mm:ss', now)
//
await this.$post(this.api[isSubmit ? 'submitTheExamPaper' : 'examPaperRecordCache'], {
const data = {
competitionId: this.id,
stageId: curStage.stageId,
teamId: this.teamId,
startTime: Util.formatDate('yyyy-MM-dd hh:mm:ss', entryTime), //
endTime: this.per ? curStage.endTime : submitTime, //
submitTime, // 3
timeSum,
totalScore: form.score,
paperId: curStage.paperId,
examSubmitJudgeList: ques,
})
}
// if (isSubmit) {
const now = isSubmit ? await Util.getNow() : new Date()
const submitTime = Util.formatDate('yyyy-MM-dd hh:mm:ss', now)
data.endTime = this.per ? curStage.endTime : submitTime
data.submitTime = submitTime
data.timeSum = Math.ceil((now - entryTime) / 60000) //
// }
//
await this.$post(this.api[isSubmit ? 'submitTheExamPaper' : 'examPaperRecordCache'], data)
clearInterval(this.counterTimer)
this.submiting = false
this.submited = true
if (isSubmit) {
clearInterval(this.counterTimer)
this.submiting = false
this.submited = true
//
if (this.id) {
const time = curStage.resultAnnouncementTime
@ -669,7 +711,7 @@ export default {
}
.type-wrap {
max-height: calc(100vh - 294);
max-height: calc(100vh - 297px);
padding: 10px;
overflow: auto;
@ -866,7 +908,7 @@ export default {
}
.stem {
max-width: calc(100% - 191px);
max-width: calc(100% - 197px);
}
.fill-input {

Loading…
Cancel
Save