|
@@ -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;
|