From 0cefa99d2ae9ba43e60fe3e1beceb000dd186931 Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期四, 17 十月 2024 18:31:03 +0800
Subject: [PATCH] 密码失效修改密码,格式校验
---
src/views/exam/exam/MarkPaperDetail.vue | 46 +++++++++++++++++++++++++++++++++++-----------
1 files changed, 35 insertions(+), 11 deletions(-)
diff --git a/src/views/exam/exam/MarkPaperDetail.vue b/src/views/exam/exam/MarkPaperDetail.vue
index 4c2d105..70319d6 100644
--- a/src/views/exam/exam/MarkPaperDetail.vue
+++ b/src/views/exam/exam/MarkPaperDetail.vue
@@ -1,6 +1,6 @@
<template>
<div class="paper-container">
- <div class="paper-card">
+ <div class="paper-card" v-loading="formLoading">
<el-card style="height: 100vh">
<el-row style="text-align: left; margin-bottom : 20px; font-size: 20px">璇枃鑰冭瘯</el-row>
<el-row>
@@ -12,13 +12,13 @@
<el-row>
<el-col class="info">
<span class="exam-info">浜ゅ嵎鏃堕棿锛�</span>
- <span class="exam-info">{{ form.updateTime }}</span>
+ <span class="exam-info">{{ form.submitTime }}</span>
</el-col>
</el-row>
<el-row>
<el-col class="info">
<span class="exam-info">瀹屾垚鑰楁椂锛�</span>
- <span class="exam-info">{{ form.doTime }}</span>
+ <span class="exam-info">{{ formattedDoTime }}</span>
</el-col>
</el-row>
<el-row>
@@ -30,7 +30,7 @@
<el-divider></el-divider>
<el-row class="do-exam-title">
<el-col :span="24">
- <span :key="item.itemOrder" v-for="item in form.answers">
+ <span :key="item.itemOrder" v-for="item in form.navbar">
<el-tag :type="questionDoRightTag(item.right)" class="do-exam-title-tag"
@click="goAnchor('#question-' + item.itemOrder)">{{ item.itemOrder }}</el-tag>
</span>
@@ -38,29 +38,30 @@
</el-row>
<el-divider></el-divider>
<div style="text-align: center">
- <el-button type="primary" style="width: 120px;height: 35px" @click="submit">鎻愪氦鎵规敼</el-button>
+ <el-button type="primary" style="width: 120px;height: 35px" @click="open">鎻愪氦鎵规敼</el-button>
</div>
</el-card>
</div>
<div class="paper-form">
<el-form :model="form" ref="form" v-loading="formLoading" label-width="100px">
<el-row :key="index" v-for="(titleItem, index) in form.titleItems">
- <h3>{{ titleItem.name }}</h3>
+ <h3>{{ titleItem.title }}</h3>
<el-card class="exampaper-item-box" v-if="titleItem.questionList.length !== 0">
<el-form-item :key="questionItem.itemOrder" :label="questionItem.itemOrder + '.'"
v-for="questionItem in titleItem.questionList" class="exam-question-item"
label-width="50px" :id="'question-' + questionItem.itemOrder">
- <MarkPaperShow :qType="questionItem.questionType" :question="questionItem"/>
+ <MarkPaperShow :qType="questionItem.questionType" :question="questionItem" :answer="form.navbar"/>
</el-form-item>
</el-card>
</el-row>
</el-form>
</div>
+ <el-empty v-if="empty" style="width:1200px;height:500px;"></el-empty>
</div>
</template>
<script>
-import { getStudentExam } from '@/api/exam'
+import { getStudentExam, submitMark } from '@/api/exam'
import MarkPaperShow from '@/views/exam/exam/components/MarkPaperShow'
import { mapGetters, mapState } from 'vuex'
@@ -69,23 +70,40 @@
components: { MarkPaperShow },
mounted () {
getStudentExam(this.$route.query.examId, this.$route.query.userId).then(re => {
+ this.formLoading = true
this.form = re.data.data
+ if (!this.form.titleItems) this.empty = true;
this.formLoading = false
})
},
data () {
return {
+ empty: false,
paperQuestionList: [],
form: {},
formLoading: false,
userId: null,
userName: '寮犱笁',
- questionLoading: false,
+ questionLoading: false
}
},
methods: {
- submit () {
- // 鎻愪氦鎵规敼
+ open () {
+ this.$confirm('纭鏄惁鎻愪氦鎴愮哗鎵规敼?', '鎻愮ず', {
+ confirmButtonText: '纭畾',
+ cancelButtonText: '鍙栨秷',
+ type: 'warning'
+ }).then(() => {
+ submitMark(this.form).then(re => {
+ if (re.data.code === 1) {
+ console.log('1111111')
+ this.$message.success('鎻愪氦鎴愬姛')
+ this.$router.back()
+ } else {
+ this.$message.error(re.message)
+ }
+ })
+ })
},
goAnchor (selector) {
this.$el.querySelector(selector).scrollIntoView({ behavior: 'instant', block: 'center', inline: 'nearest' })
@@ -100,6 +118,12 @@
}
},
computed: {
+ formattedDoTime () {
+ const totalSeconds = this.form.doTime
+ const minutes = Math.floor(totalSeconds / 60)
+ const seconds = totalSeconds % 60
+ return `${minutes}鍒�${seconds < 10 ? '0' + seconds : seconds}绉抈
+ },
...mapGetters('enumItem', ['enumFormat']),
...mapState('enumItem', {
doRightTag: state => state.exam.question.answer.doRightTag
--
Gitblit v1.8.0