From 11fbb577737ee65f9446bfa60b6cf96954e2390c Mon Sep 17 00:00:00 2001
From: fuliqi <fuliqi@qq.com>
Date: 星期二, 02 七月 2024 09:25:00 +0800
Subject: [PATCH] 阅卷

---
 src/views/exam/exam/MarkPaperDetail.vue |   43 ++++++++++++++++++++++++++++++++-----------
 1 files changed, 32 insertions(+), 11 deletions(-)

diff --git a/src/views/exam/exam/MarkPaperDetail.vue b/src/views/exam/exam/MarkPaperDetail.vue
index 4c2d105..ef466f7 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,19 +38,19 @@
         </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>
@@ -60,7 +60,7 @@
 </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,6 +69,7 @@
   components: { MarkPaperShow },
   mounted () {
     getStudentExam(this.$route.query.examId, this.$route.query.userId).then(re => {
+      this.formLoading = true
       this.form = re.data.data
       this.formLoading = false
     })
@@ -80,12 +81,26 @@
       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 +115,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