zhangjie 4 năm trước cách đây
mục cha
commit
c9bbadcc1e

+ 1 - 1
src/constants/navs.js

@@ -32,7 +32,7 @@ const navs = [
             router: "ExamRomeDetail"
           },
           {
-            title: "考任务详情",
+            title: "考任务详情",
             router: "ExamTaskDetail"
           },
           {

+ 4 - 4
src/modules/exam-center/views/DoneTaskDetail.vue

@@ -10,8 +10,8 @@
       <table class="table">
         <tr>
           <th>试卷类型</th>
-          <th>试卷文件</th>
-          <th>答题卡</th>
+          <th v-if="task.examPaper">试卷文件</th>
+          <th v-if="task.answerSheet">答题卡</th>
           <!-- <th>标答</th>
           <th>试卷结构</th> -->
         </tr>
@@ -20,7 +20,7 @@
           :key="attachment.id"
         >
           <td>{{ attachment.name }}卷</td>
-          <td class="td-link">
+          <td class="td-link" v-if="task.examPaper">
             <span @click="downloadPaper(attachment)" title="点击下载试卷">
               <i class="icon icon-download-act"></i>{{ attachment.filename }}
             </span>
@@ -28,7 +28,7 @@
           <td
             class="td-link"
             :rowspan="pTypeEnable ? paperAttachments.length : 1"
-            v-if="index === 0"
+            v-if="index === 0 && task.answerSheet"
           >
             <span @click="toPreviewCard" title="点击预览答题卡内容">{{
               task.cardName

+ 12 - 21
src/modules/exam-center/views/ExamTaskAudit.vue

@@ -17,9 +17,9 @@
             ></el-option>
           </el-select>
         </el-form-item>
-        <el-form-item label="状态:">
+        <el-form-item label="审核状态:">
           <el-select
-            v-model="filter.auditingStatus"
+            v-model="filter.status"
             style="width: 142px;"
             placeholder="请选择"
             clearable
@@ -50,24 +50,13 @@
       >
         <el-table-column prop="examCode" label="考试ID"></el-table-column>
         <el-table-column prop="examName" label="考试名称"></el-table-column>
-        <el-table-column label="科目名称(编码)">
-          <template slot-scope="scope">
-            <span
-              >{{ scope.row.courseName
-              }}<i v-if="scope.row.courseCode"
-                >({{ scope.row.courseCode }})</i
-              ></span
-            >
-          </template>
+        <el-table-column prop="courseNameCode" label="科目名称(编码)">
         </el-table-column>
-        <el-table-column prop="title" label="试卷"></el-table-column>
-        <el-table-column prop="printTime" label="答题卡"></el-table-column>
-        <el-table-column prop="overTime" label="任务截止日期"></el-table-column>
+        <el-table-column prop="paperStatus" label="试卷"></el-table-column>
+        <el-table-column prop="cardStatus" label="答题卡"></el-table-column>
+        <el-table-column prop="endTime" label="任务截止日期"></el-table-column>
         <el-table-column prop="overTime" label="剩余时间"></el-table-column>
-        <el-table-column
-          prop="auditingStatusName"
-          label="审核状态"
-        ></el-table-column>
+        <el-table-column prop="auditStatus" label="审核状态"></el-table-column>
         <el-table-column label="操作" align="center" width="120">
           <template slot-scope="scope">
             <el-button
@@ -76,6 +65,7 @@
               icon="icon icon-edit"
               @click="toDetail(scope.row)"
               title="审核"
+              v-if="scope.row.auditStatus === '未审核'"
             ></el-button>
             <el-button
               class="btn-table-icon"
@@ -83,6 +73,7 @@
               icon="icon icon-circle-right"
               @click="toDetail(scope.row)"
               title="详情"
+              v-else
             ></el-button>
           </template>
         </el-table-column>
@@ -111,7 +102,7 @@ export default {
   data() {
     return {
       filter: {
-        auditingStatus: "",
+        status: "",
         examId: ""
       },
       current: 1,
@@ -128,7 +119,7 @@ export default {
     };
   },
   mounted() {
-    // this.init();
+    this.init();
   },
   methods: {
     init() {
@@ -166,7 +157,7 @@ export default {
       this.$router.push({
         name: "ExamTaskAuditEdit",
         params: {
-          taskId: row.taskId
+          taskId: row.id
         }
       });
     }

+ 63 - 26
src/modules/exam-center/views/ExamTaskAuditEdit.vue

@@ -10,12 +10,12 @@
       <table class="table">
         <tr>
           <th>试卷类型</th>
-          <th>试卷文件</th>
-          <th>答题卡</th>
+          <th v-if="task.examPaper">试卷文件</th>
+          <th v-if="task.answerSheet">答题卡</th>
         </tr>
         <tr v-for="(attachment, index) in paperAttachments" :key="index">
           <td>{{ attachment.name }}卷</td>
-          <td class="td-link">
+          <td class="td-link" v-if="task.examPaper">
             <span @click="downloadPaper(attachment)" title="点击下载试卷">
               <i class="icon icon-download-act"></i>{{ attachment.filename }}
             </span>
@@ -23,7 +23,7 @@
           <td
             class="td-link"
             :rowspan="pTypeEnable ? paperAttachments.length : 1"
-            v-if="index === 0"
+            v-if="index === 0 && task.answerSheet"
           >
             <span @click="toPreviewCard" title="点击预览答题卡内容">{{
               task.cardName
@@ -40,30 +40,41 @@
         label-width="180px"
         style="min-width:800px;"
       >
-        <el-form-item prop="result" label="审核结果:">
-          <el-radio-group v-model="modalForm.result">
+        <el-form-item prop="status" label="审核结果:">
+          <el-radio-group v-model="modalForm.status" :disabled="hasAudited">
             <el-radio
-              v-for="(val, key) in AUDIT_TYPE"
-              :key="key"
-              :label="key * 1"
-              >{{ val }}</el-radio
+              v-for="item in AUDIT_TYPE"
+              :key="item.key"
+              :label="item.key"
+              >{{ item.name }}</el-radio
             >
           </el-radio-group>
         </el-form-item>
-        <el-form-item prop="content" label="审核意见:">
+        <el-form-item
+          prop="remark"
+          label="审核意见:"
+          v-if="modalForm.status === 2"
+        >
           <el-input
             type="textarea"
             style="width: 439px;"
-            v-model.trim="modalForm.content"
+            v-model.trim="modalForm.remark"
+            :disabled="hasAudited"
             placeholder="请输入审核意见"
             clearable
           ></el-input>
         </el-form-item>
         <el-form-item>
-          <el-button type="primary" :disabled="isSubmit" @click="save"
+          <el-button
+            type="primary"
+            :disabled="isSubmit"
+            @click="save"
+            v-if="!hasAudited"
             >提交</el-button
           >
-          <el-button @click="goback">取消</el-button>
+          <el-button @click="goback">{{
+            hasAudited ? "返回" : "取消"
+          }}</el-button>
         </el-form-item>
       </el-form>
     </div>
@@ -71,7 +82,7 @@
 </template>
 
 <script>
-import { doneTaskDetail } from "../api";
+import { waitTaskDetail, auditExamTask } from "../api";
 import { attachmentPreview } from "../../login/api";
 
 export default {
@@ -84,20 +95,27 @@ export default {
       paperAttachments: [],
       curAttachment: {},
       isSubmit: false,
-      AUDIT_TYPE: {
-        1: "通过",
-        2: "不通过"
-      },
-      modalForm: { result: 1, content: "" },
+      hasAudited: false,
+      AUDIT_TYPE: [
+        {
+          key: 1,
+          name: "通过"
+        },
+        {
+          key: 2,
+          name: "不通过"
+        }
+      ],
+      modalForm: { status: 1, remark: "" },
       rules: {
-        result: [
+        status: [
           {
             required: true,
             message: "请选择审核结果",
             trigger: "change"
           }
         ],
-        content: [
+        remark: [
           {
             required: true,
             message: "请输入审核意见",
@@ -107,12 +125,12 @@ export default {
       }
     };
   },
-  // mounted() {
-  //   this.getData();
-  // },
+  mounted() {
+    this.getData();
+  },
   methods: {
     async getData() {
-      const data = await doneTaskDetail(this.taskId);
+      const data = await waitTaskDetail(this.taskId);
       const nameCode = data.courseNameCode.split(/\(|\)/);
       this.task = Object.assign(this.task, data, {
         courseName: nameCode[0],
@@ -120,6 +138,11 @@ export default {
       });
       this.pTypeEnable = this.task.enablePaperType.split(",").length > 1;
       this.parsePaperAttachment();
+      this.hasAudited = this.task.auditStatus !== 0;
+      this.modalForm = {
+        status: this.hasAudited ? data.auditStatus : 1,
+        remark: data.remark
+      };
     },
     parsePaperAttachment() {
       const paperAttachment =
@@ -146,6 +169,20 @@ export default {
     async save() {
       const valid = await this.$refs["ModalForm"].validate().catch(() => {});
       if (!valid) return;
+
+      if (this.isSubmit) return;
+      this.isSubmit = true;
+      const datas = {
+        ...this.modalForm,
+        taskId: this.taskId,
+        examId: this.task.examId
+      };
+      const result = await auditExamTask(datas).catch(() => {});
+      this.isSubmit = false;
+      if (!result) return;
+
+      this.$message.success("审核成功!");
+      this.goback();
     }
   }
 };

+ 6 - 6
src/modules/exam-center/views/ExamTaskDetail.vue

@@ -3,8 +3,8 @@
     <div class="task-title">
       <h2>
         <span>考试名称:{{ examInfo.examName }}</span>
-        <span>考试开始时间:{{ examInfo.examStartTime }}</span>
-        <span>考试打印时间:{{ examInfo.examPrintTime }}</span>
+        <span>考试开始时间:{{ examInfo.beginTime }}</span>
+        <span>考试打印时间:{{ examInfo.printTime }}</span>
       </h2>
       <div class="task-title-infos">
         <el-button @click="goback">返回</el-button>
@@ -14,8 +14,8 @@
     <div class="task-body">
       <el-table :data="dataList" border stripe>
         <el-table-column prop="courseName" label="科目名称"></el-table-column>
-        <el-table-column prop="teacherName" label="命题老师"></el-table-column>
-        <el-table-column prop="examState" label="状态"></el-table-column>
+        <el-table-column prop="name" label="命题老师"></el-table-column>
+        <el-table-column prop="status" label="状态"></el-table-column>
       </el-table>
     </div>
   </div>
@@ -42,8 +42,8 @@ export default {
     },
     async getData() {
       const data = await examTaskDetail(this.examId);
-      this.dataList = data.records;
-      this.examInfo = data;
+      this.dataList = data.list;
+      this.examInfo = data.tcPExam;
     }
   }
 };

+ 4 - 4
src/modules/exam-center/views/WaitTaskDetail.vue

@@ -47,7 +47,7 @@
         </tr>
       </table>
 
-      <div class="task-audit" v-if="task.review && task.auditStatus === 0">
+      <div class="task-audit" v-if="task.review && task.auditStatus === 2">
         <p>
           <span>打回意见:</span
           ><span class="color-danger">{{ task.remark }}</span>
@@ -190,7 +190,7 @@ export default {
       this.parsePaperAttachment();
       this.pTypeEnableChange(this.pTypeEnable);
 
-      if (this.task.review && this.task.auditStatus === 0)
+      if (this.task.review && this.task.auditStatus === 2)
         this.getHistoryList();
     },
     async getHistoryList() {
@@ -290,12 +290,12 @@ export default {
       const attachmentValid = !this.curPaperAttachments.some(
         item => !item.attachmentId
       );
-      if (!attachmentValid) {
+      if (this.task.examPaper && !attachmentValid) {
         this.$message.error("请完成试卷文件上传!");
         return;
       }
 
-      if (!this.task.cardId && !this.task.refCardId) {
+      if (this.task.answerSheet && !this.task.cardId && !this.task.refCardId) {
         this.$message.error("请选择题卡创建方式!");
         return;
       }