|
@@ -214,6 +214,107 @@
|
|
|
</el-form-item>
|
|
|
</el-row>
|
|
|
</el-tab-pane>
|
|
|
+ <!-- 周期设置 -->
|
|
|
+ <el-tab-pane label="周期设置" name="tab8">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item
|
|
|
+ label="是否开启周期设置"
|
|
|
+ :label-width="style.label_width_tab4"
|
|
|
+ >
|
|
|
+ <el-radio-group
|
|
|
+ v-model="form.properties.EXAM_CYCLE_ENABLED"
|
|
|
+ class="input"
|
|
|
+ @change="examCycleEnabledChange"
|
|
|
+ >
|
|
|
+ <el-radio label="true">开启</el-radio>
|
|
|
+ <el-radio label="false">不开启</el-radio>
|
|
|
+ </el-radio-group></el-form-item
|
|
|
+ >
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <el-row
|
|
|
+ v-if="form.properties.EXAM_CYCLE_ENABLED == 'true'"
|
|
|
+ style="height: 90px"
|
|
|
+ >
|
|
|
+ <el-col :span="24">
|
|
|
+ <el-form-item
|
|
|
+ style="width:100%"
|
|
|
+ label="日期循环设置"
|
|
|
+ prop="examCycleWeekArr"
|
|
|
+ :label-width="style.label_width_tab4"
|
|
|
+ >
|
|
|
+ <el-checkbox-group
|
|
|
+ style="width:100%"
|
|
|
+ v-model="examCycleWeekArr"
|
|
|
+ class="input"
|
|
|
+ >
|
|
|
+ <el-checkbox label="1" key="1">星期一</el-checkbox>
|
|
|
+ <el-checkbox label="2" key="2">星期二</el-checkbox>
|
|
|
+ <el-checkbox label="3" key="3">星期三</el-checkbox>
|
|
|
+ <el-checkbox label="4" key="4">星期四</el-checkbox>
|
|
|
+ <el-checkbox label="5" key="5">星期五</el-checkbox>
|
|
|
+ <el-checkbox label="6" key="6">星期六</el-checkbox>
|
|
|
+ <el-checkbox label="7" key="7">星期七</el-checkbox>
|
|
|
+ </el-checkbox-group></el-form-item
|
|
|
+ >
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ <template v-if="form.properties.EXAM_CYCLE_ENABLED == 'true'">
|
|
|
+ <el-row>
|
|
|
+ <el-col :span="14">
|
|
|
+ <el-form-item
|
|
|
+ label="时间分段设置"
|
|
|
+ :label-width="style.label_width_tab4"
|
|
|
+ prop="examCycleTimeRangeArr"
|
|
|
+ >
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="10" style="line-height: 48px;height: 40px;">
|
|
|
+ <i
|
|
|
+ class="el-icon-circle-plus"
|
|
|
+ style="color:#00A4FF;font-size:24px;"
|
|
|
+ @click="addCycleTimeRange"
|
|
|
+ ></i>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+
|
|
|
+ <el-row
|
|
|
+ v-for="(item, index) in examCycleTimeRangeArr"
|
|
|
+ :key="'tr' + index"
|
|
|
+ >
|
|
|
+ <el-col :span="14">
|
|
|
+ <el-form-item
|
|
|
+ :label-width="style.label_width_tab4"
|
|
|
+ :label="index + 1 + '.'"
|
|
|
+ >
|
|
|
+ <el-time-picker
|
|
|
+ :picker-options="{
|
|
|
+ format: 'HH:mm'
|
|
|
+ }"
|
|
|
+ class="input"
|
|
|
+ style="width:100%"
|
|
|
+ v-model="item.timeRange"
|
|
|
+ is-range
|
|
|
+ start-placeholder="开始时间"
|
|
|
+ range-separator="至"
|
|
|
+ end-placeholder="结束时间"
|
|
|
+ value-format="HH:mm"
|
|
|
+ :clearable="false"
|
|
|
+ size="small"
|
|
|
+ ></el-time-picker>
|
|
|
+ </el-form-item>
|
|
|
+ </el-col>
|
|
|
+ <el-col :span="10" style="line-height: 48px;height: 40px;">
|
|
|
+ <i
|
|
|
+ class="el-icon-remove"
|
|
|
+ style="color:#00A4FF;font-size:24px;"
|
|
|
+ @click="removeExamCycleTimeRange(index)"
|
|
|
+ ></i>
|
|
|
+ </el-col>
|
|
|
+ </el-row>
|
|
|
+ </template>
|
|
|
+ </el-tab-pane>
|
|
|
<!-- 控制设置 -->
|
|
|
<el-tab-pane label="控制设置" name="tab2">
|
|
|
<el-row>
|
|
@@ -515,6 +616,22 @@ import ckeditor from "@/components/ckeditor.vue";
|
|
|
import LinkTitlesCustom from "@/components/LinkTitlesCustom.vue";
|
|
|
let _this = null;
|
|
|
|
|
|
+let validateExamCycleTimeRange = (rule, value, callback) => {
|
|
|
+ if (_this.examCycleTimeRangeArr.length == 0) {
|
|
|
+ callback(new Error("请至少设置一个时间段"));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
+let validateExamCycleWeek = (rule, value, callback) => {
|
|
|
+ if (_this.examCycleWeekArr.length == 0) {
|
|
|
+ callback(new Error("请至少勾选一个日期"));
|
|
|
+ } else {
|
|
|
+ callback();
|
|
|
+ }
|
|
|
+};
|
|
|
+
|
|
|
let validateCode = (rule, value, callback) => {
|
|
|
if (_this.examId == "add") {
|
|
|
_this.form.code = _this.form.name;
|
|
@@ -677,6 +794,8 @@ export default {
|
|
|
label_width_tab6: "120px",
|
|
|
label_width_tab7: "150px"
|
|
|
},
|
|
|
+ examCycleTimeRangeArr: [],
|
|
|
+ examCycleWeekArr: ["1", "2", "3", "4", "5", "6", "7"],
|
|
|
activeName: "tab1",
|
|
|
toActiveName: null,
|
|
|
examDatetimeRange: [],
|
|
@@ -733,7 +852,10 @@ export default {
|
|
|
ADD_FACE_VERIFY_OUT_FREEZE_TIME: "false",
|
|
|
OUT_FREEZE_TIME_FACE_VERIFY_START_MINUTE: 10,
|
|
|
OUT_FREEZE_TIME_FACE_VERIFY_END_MINUTE: 30,
|
|
|
- LIMITED_IF_NO_SPECIAL_SETTINGS: "false"
|
|
|
+ LIMITED_IF_NO_SPECIAL_SETTINGS: "false",
|
|
|
+ EXAM_CYCLE_ENABLED: "false",
|
|
|
+ EXAM_CYCLE_WEEK: "",
|
|
|
+ EXAM_CYCLE_TIME_RANGE: ""
|
|
|
}
|
|
|
},
|
|
|
examTypeList: EXAM_TYPE,
|
|
@@ -771,12 +893,71 @@ export default {
|
|
|
validator: validateMaxInterruptNum,
|
|
|
trigger: "blur"
|
|
|
}
|
|
|
+ ],
|
|
|
+ examCycleWeekArr: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ validator: validateExamCycleWeek,
|
|
|
+ trigger: "change"
|
|
|
+ }
|
|
|
+ ],
|
|
|
+ examCycleTimeRangeArr: [
|
|
|
+ {
|
|
|
+ required: true,
|
|
|
+ validator: validateExamCycleTimeRange,
|
|
|
+ trigger: "change"
|
|
|
+ }
|
|
|
]
|
|
|
}
|
|
|
};
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
+ examCycleEnabledChange(val) {
|
|
|
+ if (val == "true") {
|
|
|
+ this.examCycleWeekArr = ["1", "2", "3", "4", "5", "6", "7"];
|
|
|
+ this.addCycleTimeRange();
|
|
|
+ } else {
|
|
|
+ this.examCycleTimeRangeArr = [];
|
|
|
+ this.examCycleWeekArr = [];
|
|
|
+ }
|
|
|
+ },
|
|
|
+ getNowTimeStr() {
|
|
|
+ let now = new Date();
|
|
|
+ let hour = now.getHours();
|
|
|
+ if (hour.length < 10) {
|
|
|
+ hour = "0" + hour;
|
|
|
+ }
|
|
|
+ let minute = now.getMinutes();
|
|
|
+ if (minute < 10) {
|
|
|
+ minute = "0" + minute;
|
|
|
+ }
|
|
|
+ return hour + ":" + minute;
|
|
|
+ },
|
|
|
+ removeExamCycleTimeRange(index) {
|
|
|
+ if (this.examCycleTimeRangeArr.length == 1) {
|
|
|
+ this.$notify({
|
|
|
+ type: "warning",
|
|
|
+ message: "不能删除最后一个分段"
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.examCycleTimeRangeArr.splice(index, 1);
|
|
|
+ this.$refs.form.validateField("examCycleTimeRangeArr");
|
|
|
+ },
|
|
|
+ addCycleTimeRange() {
|
|
|
+ if (this.examCycleTimeRangeArr.length >= 12) {
|
|
|
+ this.$notify({
|
|
|
+ type: "warning",
|
|
|
+ message: "时间分段不得超过12条"
|
|
|
+ });
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ this.examCycleTimeRangeArr.push({
|
|
|
+ timeRange: [this.getNowTimeStr(), this.getNowTimeStr()]
|
|
|
+ });
|
|
|
+ this.$refs.form.validateField("examCycleTimeRangeArr");
|
|
|
+ },
|
|
|
faceEnableChange() {
|
|
|
if (this.form.properties.IS_FACE_ENABLE == "false") {
|
|
|
this.form.properties.IS_STRANGER_ENABLE = "false";
|
|
@@ -820,6 +1001,17 @@ export default {
|
|
|
this.form.properties.LIMITED_IF_NO_SPECIAL_SETTINGS =
|
|
|
this.form.properties.LIMITED_IF_NO_SPECIAL_SETTINGS === "true";
|
|
|
|
|
|
+ if (this.form.properties.EXAM_CYCLE_TIME_RANGE) {
|
|
|
+ this.examCycleTimeRangeArr = JSON.parse(
|
|
|
+ this.form.properties.EXAM_CYCLE_TIME_RANGE
|
|
|
+ );
|
|
|
+ }
|
|
|
+ if (this.form.properties.EXAM_CYCLE_WEEK) {
|
|
|
+ this.examCycleWeekArr = JSON.parse(
|
|
|
+ this.form.properties.EXAM_CYCLE_WEEK
|
|
|
+ );
|
|
|
+ }
|
|
|
+
|
|
|
this.show_ckeditor = true;
|
|
|
|
|
|
this.checkRootOrgPrivileges();
|
|
@@ -888,6 +1080,12 @@ export default {
|
|
|
this.toActiveName = null;
|
|
|
this.form.beginTime = this.examDatetimeRange[0];
|
|
|
this.form.endTime = this.examDatetimeRange[1];
|
|
|
+ this.form.properties.EXAM_CYCLE_TIME_RANGE = JSON.stringify(
|
|
|
+ this.examCycleTimeRangeArr
|
|
|
+ );
|
|
|
+ this.form.properties.EXAM_CYCLE_WEEK = JSON.stringify(
|
|
|
+ this.examCycleWeekArr
|
|
|
+ );
|
|
|
console.log(this.form);
|
|
|
let url = EXAM_WORK_API + "/exam";
|
|
|
this.$refs.form.validate(valid => {
|