|
@@ -52,29 +52,28 @@
|
|
|
</el-form-item>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-form-item label="考试次数限制">
|
|
|
+ <el-form-item label="考试次数限制" prop="examCount">
|
|
|
<el-input-number
|
|
|
v-model.number.trim="form.examCount"
|
|
|
- :min="0"
|
|
|
+ :min="1"
|
|
|
:max="10000"
|
|
|
></el-input-number>
|
|
|
</el-form-item>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-form-item label="考试时长(分钟)">
|
|
|
+ <el-form-item label="考试时长(分钟)" prop="maxDurationSeconds">
|
|
|
<MinuteInput v-model.trim="form.maxDurationSeconds">
|
|
|
</MinuteInput>
|
|
|
</el-form-item>
|
|
|
</el-row>
|
|
|
<el-row v-if="!isModeAnytime">
|
|
|
- <el-form-item label="迟到时长(分钟)">
|
|
|
+ <el-form-item label="迟到时长(分钟)" prop="openingSeconds">
|
|
|
<MinuteInput v-model.trim="form.openingSeconds"> </MinuteInput>
|
|
|
</el-form-item>
|
|
|
</el-row>
|
|
|
<el-row>
|
|
|
- <el-form-item label="冻结时间(分钟)">
|
|
|
- <MinuteInput v-model.trim="form.minDurationSeconds">
|
|
|
- </MinuteInput>
|
|
|
+ <el-form-item label="冻结时间(分钟)" prop="minDurationSeconds">
|
|
|
+ <MinuteInput v-model.trim="form.minDurationSeconds" />
|
|
|
</el-form-item>
|
|
|
</el-row>
|
|
|
<el-row v-if="!isModeAnytime">
|
|
@@ -810,6 +809,42 @@ export default {
|
|
|
{ type: "string", min: 1, max: 30, message: "长度必须在1到30之间" },
|
|
|
],
|
|
|
startEndTimeProxy: { required: true, message: "必填" },
|
|
|
+ examCount: [
|
|
|
+ { required: true, message: "必填" },
|
|
|
+ { type: "number", min: 1, message: "必须大于0" },
|
|
|
+ ],
|
|
|
+ maxDurationSeconds: [
|
|
|
+ { required: true, message: "必填" },
|
|
|
+ { type: "number", min: 1, message: "必须大于0" },
|
|
|
+ ],
|
|
|
+ openingSeconds: {
|
|
|
+ validator: (rule, value) => {
|
|
|
+ // console.log(value);
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ if (
|
|
|
+ !this.form.isModeAnytime &&
|
|
|
+ this.form.maxDurationSeconds < value
|
|
|
+ ) {
|
|
|
+ reject("迟到时长必须小于考试时长");
|
|
|
+ } else {
|
|
|
+ resolve();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ },
|
|
|
+ minDurationSeconds: {
|
|
|
+ trigger: "change",
|
|
|
+ validator: (rule, value) => {
|
|
|
+ // console.log(value);
|
|
|
+ return new Promise((resolve, reject) => {
|
|
|
+ if (this.form.maxDurationSeconds < value) {
|
|
|
+ reject("冻结时长必须小于考试时长");
|
|
|
+ } else {
|
|
|
+ resolve();
|
|
|
+ }
|
|
|
+ });
|
|
|
+ },
|
|
|
+ },
|
|
|
inProcessLivenessFixedRange: {
|
|
|
validator: (rule, value) => {
|
|
|
return new Promise((resolve, reject) => {
|
|
@@ -853,14 +888,14 @@ export default {
|
|
|
},
|
|
|
ipAllow: {
|
|
|
validator: (rule, value) => {
|
|
|
- console.log(value);
|
|
|
+ // console.log(value);
|
|
|
return new Promise((resolve, reject) => {
|
|
|
if (!this.form.enableIpLimit) {
|
|
|
resolve();
|
|
|
return;
|
|
|
}
|
|
|
const ips = value.split(",").map((v) => v.trim());
|
|
|
- console.log(ips);
|
|
|
+ // console.log(ips);
|
|
|
const checkIpSeg = (seg, idx) => {
|
|
|
if (idx < 2) {
|
|
|
if (!/^\d+$/.test(seg)) {
|