Michael Wang 4 жил өмнө
parent
commit
578ff002cd

+ 11 - 8
src/features/examwork/ActivityManagement/ActivityEdit.vue

@@ -86,7 +86,6 @@ export default {
     },
   },
   data() {
-    const that = this;
     return {
       form: [
         {
@@ -102,12 +101,14 @@ export default {
         startTime: [
           { required: true, message: "开始时间必填" },
           {
-            validator(rule, value) {
+            validator: (rule, value) => {
               return new Promise((resolve, reject) => {
                 if (
                   moment(value).isBetween(
-                    moment(that.exam.startTime),
-                    moment(that.exam.endTime)
+                    moment(this.exam.startTime),
+                    moment(this.exam.endTime),
+                    undefined,
+                    "[]"
                   )
                 ) {
                   resolve(); // reject with error message
@@ -138,12 +139,14 @@ export default {
         finishTime: [
           { required: true, message: "交卷时间必填" },
           {
-            validator(rule, value) {
+            validator: (rule, value) => {
               return new Promise((resolve, reject) => {
                 if (
                   moment(value).isBetween(
-                    moment(that.exam.startTime),
-                    moment(that.exam.endTime)
+                    moment(this.exam.startTime),
+                    moment(this.exam.endTime),
+                    undefined,
+                    "[]"
                   )
                 ) {
                   resolve(); // reject with error message
@@ -230,7 +233,7 @@ export default {
       }
 
       await saveActivities(data);
-      this.$emit("reload");
+      this.$notify({ title: "保存成功", type: "success" });
     },
   },
 };

+ 60 - 2
src/features/examwork/ActivityManagement/ActivityManagementDialog.vue

@@ -67,6 +67,9 @@
 <script>
 import MinuteInput from "@/components/MinuteInput";
 import { saveActivity } from "@/api/examwork-activity";
+import moment from "moment";
+import { getExamDetail } from "@/api/examwork-exam";
+
 export default {
   name: "ActivityManagementDialog",
   components: { MinuteInput },
@@ -82,6 +85,7 @@ export default {
   data() {
     return {
       visible: false,
+      exam: {},
       form: {
         id: "",
         startTime: null,
@@ -91,7 +95,55 @@ export default {
         maxDurationSeconds: 0,
         enable: 0,
       },
-      rules: {},
+      rules: {
+        startTime: [
+          { required: true, message: "开始时间必填" },
+          {
+            validator: (rule, value) => {
+              return new Promise((resolve, reject) => {
+                if (
+                  moment(value).isBetween(
+                    moment(this.exam.startTime),
+                    moment(this.exam.endTime),
+                    undefined,
+                    "[]"
+                  )
+                ) {
+                  resolve(); // reject with error message
+                } else {
+                  reject("reject");
+                }
+              });
+            },
+            message: "场次的开始时间不在考试的时间范围",
+          },
+        ],
+        finishTime: [
+          { required: true, message: "交卷时间必填" },
+          {
+            validator: (rule, value) => {
+              return new Promise((resolve, reject) => {
+                if (
+                  moment(value).isBetween(
+                    moment(this.exam.startTime),
+                    moment(this.exam.endTime),
+                    undefined,
+                    "[]"
+                  )
+                ) {
+                  resolve(); // reject with error message
+                } else {
+                  reject("reject");
+                }
+              });
+            },
+            message: "场次的交卷时间不在考试的时间范围",
+          },
+        ],
+        maxDurationSeconds: [{ required: true, message: "考试时长必填" }],
+        prepareSeconds: [{ required: true, message: "候考时间必填" }],
+        openingSeconds: [{ required: true, message: "迟到时长必填" }],
+      },
     };
   },
   watch: {
@@ -112,8 +164,14 @@ export default {
     },
   },
   methods: {
-    openDialog() {
+    async openDialog() {
       this.visible = true;
+      try {
+        this.exam = (await getExamDetail({ id: this.examId }))?.data.data;
+      } catch (error) {
+        console.log(error);
+        this.$notify({ type: "error", title: "获取考试详情失败" });
+      }
     },
     closeDialog() {
       this.visible = false;

+ 1 - 1
src/features/examwork/CourseManagement/CourseManagement.vue

@@ -17,7 +17,7 @@
         />
       </el-form-item>
       <el-button @click="searchForm">查询</el-button>
-      <el-button @click="importPaper">导入</el-button>
+      <el-button @click="importPaper">导入试卷</el-button>
     </el-form>
 
     <el-table :data="tableData" stripe style="width: 100%;">

+ 3 - 2
src/features/examwork/CourseManagement/CoursePaperDialog.vue

@@ -1,7 +1,7 @@
 <template>
   <el-dialog
     ref="dialog"
-    title="导入试卷"
+    title="编辑绑卷"
     width="800px"
     :visible.sync="visible"
     @close="closeDialog"
@@ -133,7 +133,7 @@ export default {
         pageNumber: this.currentPage,
         pageSize: this.pageSize,
       });
-      this.papers = res?.data.data.records;
+      this.papers = res?.data.data;
     },
     openDialog() {
       this.visible = true;
@@ -162,6 +162,7 @@ export default {
         this.$notify({ title: "保存成功", type: "success" });
         this.closeDialog();
       } catch (error) {
+        console.log(error);
         this.initData();
         this.$notify({ title: "保存失败", type: "warning" });
       }

+ 5 - 2
src/features/examwork/ExamManagement/ExamEdit.vue

@@ -67,7 +67,10 @@
             <el-form-item label="启用开考口令">
               <el-radio v-model="form.enableShortCode" :label="1">是</el-radio>
               <el-radio v-model="form.enableShortCode" :label="0">否</el-radio>
-              <el-input v-model.trim="form.shortCode"></el-input>
+              <el-input
+                v-if="form.enableShortCode"
+                v-model.trim="form.shortCode"
+              ></el-input>
             </el-form-item>
           </el-row>
           <el-row>
@@ -378,7 +381,7 @@ export default {
   async created() {
     if (this.isEdit) {
       const res = await getExamDetail({ id: this.examId });
-      this.form = { ...this.form, ...res.data.data.records };
+      this.form = { ...this.form, ...res.data.data };
       this.form.startEndTimeProxy = [this.form.startTime, this.form.endTime];
       this.form.monitorProxy = !!this.form.monitorVideoSource;
     }

+ 1 - 1
src/features/system/OrgManagement/OrgManagementDialog.vue

@@ -124,7 +124,7 @@ export default {
       handler: async function () {
         if (this.isEdit) {
           const res = await searchOrg(this.org.id);
-          this.form = res.data.data.records[0];
+          this.form = res.data.data[0];
         } else {
           this.form = {
             name: "",

+ 1 - 6
src/views/Home/Home.vue

@@ -1,13 +1,8 @@
 <template>
   <div class="home">
     <h1 class="text-center">
-      以下为部分样例页面
+      欢迎登陆管理平台!
     </h1>
-
-    <ul>
-      <li><router-link to="/samples/login_01">登录页_01</router-link></li>
-      <li><router-link to="/samples/layout_01">Layout_01</router-link></li>
-    </ul>
   </div>
 </template>
 

+ 1 - 1
src/views/Layout/components/menu.js

@@ -49,7 +49,7 @@ const businessMenuConfig = [
         name: "ExamManagement",
       },
       {
-        title: "考生管理",
+        title: "考生信息",
         name: "ExamStudentManagement",
       },
       {