Эх сурвалжийг харах

网考-考试明细-考试记录详情改造

deason 2 жил өмнө
parent
commit
84dea203e8

+ 112 - 17
src/modules/oe/views/examDetail.vue

@@ -458,7 +458,8 @@
         </el-col>
       </el-row>
       <el-dialog
-        title="审核"
+        title="重审"
+        width="400px"
         :visible.sync="dialogAuditFormVisible"
         @closed="auditDialogClosed"
       >
@@ -492,7 +493,7 @@
             <el-input
               v-model="auditForm.disciplineDetail"
               type="textarea"
-              :autosize="{ minRows: 6, maxRows: 10 }"
+              :autosize="{ minRows: 3, maxRows: 5 }"
               placeholder="请输入内容"
             ></el-input>
           </el-form-item>
@@ -554,6 +555,19 @@
       <el-dialog :append-to-body="true" :visible.sync="dialogVisible">
         <img width="100%" :src="dialogImageUrl" alt />
       </el-dialog>
+
+      <el-dialog
+        title="考试记录详情"
+        width="1250px"
+        :visible.sync="examRecordDataDialog"
+        @close="examRecordDataDialogClose"
+      >
+        <ExamRecordDetail
+          :exam-record-data-id="curSelectedExamRecordDataId"
+          :show-audit-button="curSelectedShowAuditButton"
+          @changeExamRecordData="changeExamRecordData"
+        ></ExamRecordDetail>
+      </el-dialog>
     </el-main>
   </el-container>
 </template>
@@ -588,6 +602,11 @@ export default {
   },
   data() {
     return {
+      curSelectedExamRecordDataId: null,
+      curSelectedShowAuditButton: false,
+      examRecordDataDialog: false,
+      toNext: false,
+      curTotalPages: 0,
       isOnlineExam: false,
       needShowReAudit: false,
       selectedIds: [],
@@ -675,7 +694,7 @@ export default {
   },
   created() {
     this.form.rootOrgId = this.user.rootOrgId;
-    this.backFill();
+    // this.backFill();
     this.getDisciplineTypeList("");
   },
   methods: {
@@ -799,6 +818,7 @@ export default {
             this.tableData = response.data.content;
             this.total = response.data.totalElements;
             this.form.pageNo = response.data.number + 1;
+            this.curTotalPages = response.data.totalPages;
 
             this.tableData.forEach((obj) => {
               if (obj.showReAudit) {
@@ -809,9 +829,9 @@ export default {
             this.tableData = [];
           }
           this.tableLoading = false;
-          this.$router.push({
-            path: "/oe/examDetail?" + new URLSearchParams(params),
-          });
+          // this.$router.push({
+          //   path: "/oe/examDetail?" + new URLSearchParams(params),
+          // });
         });
     },
     handleSelectionChange(row) {
@@ -843,18 +863,93 @@ export default {
         "/admin/oe/examPaperDetail/" + courseId + "/" + examRecordDataId
       );
     },
+    curSelectedRow(examRecordDataId) {
+      for (let n = 0; n < this.tableData.length; n++) {
+        let row = this.tableData[n];
+        if (examRecordDataId === row.dataId) {
+          this.$refs["multipleTable"]?.toggleRowSelection(row, true);
+        } else {
+          this.$refs["multipleTable"]?.toggleRowSelection(row, false);
+        }
+      }
+    },
+    examRecordDataDialogClose() {
+      this.examRecordDataDialog = false;
+    },
+    examRecordDataDialogOpen(examRecordDataId, showAuditButton) {
+      this.examRecordDataDialog = true;
+      this.curSelectedShowAuditButton = showAuditButton;
+      this.curSelectedExamRecordDataId = examRecordDataId;
+      this.curSelectedRow(examRecordDataId);
+    },
+    changeExamRecordData(isNext) {
+      // console.log("isNext:" + isNext);
+      let curId = null;
+      let isFirst = false;
+      let isLast = false;
+      let rowSize = this.tableData.length;
+      for (let n = 0; n < rowSize; n++) {
+        isFirst = n === 0;
+        isLast = n === rowSize - 1;
+        let row = this.tableData[n];
+        if (this.curSelectedExamRecordDataId === row.dataId) {
+          curId = row.dataId;
+          if (isNext) {
+            if (!isLast) {
+              curId = this.tableData[n + 1].dataId;
+            } else {
+              // if (this.form.pageNo < this.curTotalPages) {
+              //   // 跳到下一页
+              //   curId = null;
+              //   this.handleCurrentChange(this.form.pageNo + 1);
+              // }
+              this.$message({
+                message: "当前数据为最后一条!",
+                type: "warning",
+                showClose: true,
+              });
+            }
+          } else {
+            if (!isFirst) {
+              curId = this.tableData[n - 1].dataId;
+            } else {
+              // if (this.form.pageNo > 1) {
+              //   // 跳到上一页
+              //   curId = null;
+              //   this.handleCurrentChange(this.form.pageNo - 1);
+              // }
+              this.$message({
+                message: "当前数据为第一条!",
+                type: "warning",
+                showClose: true,
+              });
+            }
+          }
+          break;
+        }
+      }
+
+      if (curId) {
+        this.curSelectedExamRecordDataId = curId;
+        this.curSelectedRow(curId);
+      } else {
+        this.examRecordDataDialogClose();
+      }
+    },
     gotoCaptureDetail(row) {
-      this.routeSelectedIds = [];
-      this.routeSelectedIds.push(row.dataId);
-      this.$refs["multipleTable"]?.toggleRowSelection(row, true);
-      this.$nextTick(() => {
-        /** checkbox UI选中状态延迟 */
-        setTimeout(() => {
-          this.$router.push({
-            path: "/oe/captureDetail/" + row.dataId + "/examDetail",
-          });
-        }, 200);
-      });
+      this.examRecordDataDialogOpen(row.dataId, false);
+
+      // this.routeSelectedIds = [];
+      // this.routeSelectedIds.push(row.dataId);
+      // this.$refs["multipleTable"]?.toggleRowSelection(row, true);
+      // this.$nextTick(() => {
+      //   /** checkbox UI选中状态延迟 */
+      //   setTimeout(() => {
+      //     this.$router.push({
+      //       path: "/oe/captureDetail/" + row.dataId + "/examDetail",
+      //     });
+      //   }, 200);
+      // });
     },
     exportData() {
       if (!this.form.examId) {