|
@@ -2,10 +2,10 @@
|
|
<div id="event">
|
|
<div id="event">
|
|
<el-form :model="form" ref="form" :rules="formRules" label-width="80px" size="small" @submit.native.prevent style="padding: 15px;">
|
|
<el-form :model="form" ref="form" :rules="formRules" label-width="80px" size="small" @submit.native.prevent style="padding: 15px;">
|
|
<el-form-item label="开始时间" prop="start" required>
|
|
<el-form-item label="开始时间" prop="start" required>
|
|
- <el-date-picker v-model="form.start" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd"> </el-date-picker>
|
|
|
|
|
|
+ <el-date-picker v-model="form.start" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" :picker-options="pickerOptions"> </el-date-picker>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="结束时间" prop="end" required>
|
|
<el-form-item label="结束时间" prop="end" required>
|
|
- <el-date-picker v-model="form.end" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd"> </el-date-picker>
|
|
|
|
|
|
+ <el-date-picker v-model="form.end" type="date" format="yyyy-MM-dd" value-format="yyyy-MM-dd" :picker-options="pickerOptions"> </el-date-picker>
|
|
</el-form-item>
|
|
</el-form-item>
|
|
<el-form-item label="期数" prop="term" required> <el-input v-model="form.term"></el-input> </el-form-item>
|
|
<el-form-item label="期数" prop="term" required> <el-input v-model="form.term"></el-input> </el-form-item>
|
|
<el-form-item label="班级类型" prop="type" required>
|
|
<el-form-item label="班级类型" prop="type" required>
|
|
@@ -43,18 +43,25 @@ export default {
|
|
data: { type: Object, default: () => {} }, //数据
|
|
data: { type: Object, default: () => {} }, //数据
|
|
isNew: { type: Boolean, default: true }, //是不是修改
|
|
isNew: { type: Boolean, default: true }, //是不是修改
|
|
predefineColors: { type: Array, default: () => [] }, //颜色列表
|
|
predefineColors: { type: Array, default: () => [] }, //颜色列表
|
|
|
|
+ year: { type: null, default: new Date().getFullYear() },
|
|
|
|
+ vacation: { type: Array, default: () => [] },
|
|
},
|
|
},
|
|
components: {},
|
|
components: {},
|
|
- data: () => ({
|
|
|
|
- form: { color: '#409EFF' },
|
|
|
|
- formRules: {
|
|
|
|
- start: [{ required: true, message: '请选择开始时间', trigger: 'change' }],
|
|
|
|
- end: [{ required: true, message: '请选择结束时间', trigger: 'change' }],
|
|
|
|
- term: [{ required: true, message: '请输入期数' }],
|
|
|
|
- number: [{ required: true, message: '请输入每班人数' }],
|
|
|
|
- type: [{ required: true, message: '请选择班级类型' }],
|
|
|
|
- },
|
|
|
|
- }),
|
|
|
|
|
|
+ data() {
|
|
|
|
+ return {
|
|
|
|
+ form: { color: '#409EFF' },
|
|
|
|
+ formRules: {
|
|
|
|
+ start: [{ required: true, message: '请选择开始时间', trigger: 'change' }],
|
|
|
|
+ end: [{ required: true, message: '请选择结束时间', trigger: 'change' }],
|
|
|
|
+ term: [{ required: true, message: '请输入期数' }],
|
|
|
|
+ number: [{ required: true, message: '请输入每班人数' }],
|
|
|
|
+ type: [{ required: true, message: '请选择班级类型' }],
|
|
|
|
+ },
|
|
|
|
+ pickerOptions: {
|
|
|
|
+ disabledDate: time => this.setDisabledDate(time),
|
|
|
|
+ },
|
|
|
|
+ };
|
|
|
|
+ },
|
|
created() {},
|
|
created() {},
|
|
methods: {
|
|
methods: {
|
|
//保存表单函数
|
|
//保存表单函数
|
|
@@ -73,6 +80,32 @@ export default {
|
|
resetForm() {
|
|
resetForm() {
|
|
this.$refs.form.resetFields();
|
|
this.$refs.form.resetFields();
|
|
},
|
|
},
|
|
|
|
+ //禁用时间
|
|
|
|
+ setDisabledDate(time) {
|
|
|
|
+ let thisTime = time.getTime();
|
|
|
|
+ let start = new Date(`${this.year}-01-01`).getTime();
|
|
|
|
+ let end = new Date(`${this.year}-12-31`).getTime();
|
|
|
|
+ if (thisTime < start) return true;
|
|
|
|
+ else if (thisTime > end) return true;
|
|
|
|
+ else {
|
|
|
|
+ //循环假期列表,判断这个时间是不是在假期时间外:
|
|
|
|
+ // 此刻=假期开始时间||此刻=假期结束时间 return true(不能选)
|
|
|
|
+ // 此刻<假期开始时间 => return false(继续判断下个假期)
|
|
|
|
+ // 此刻>假期开始时间 => 此刻<假期结束时间 ? 在假期中,return true(不允许选择): return false(继续判断下个假期)
|
|
|
|
+ let res = false;
|
|
|
|
+ for (const vac of this.vacation) {
|
|
|
|
+ let vacS = new Date(vac.start).setDate(new Date(vac.start).getDate() - 1); //减一天匹配日历
|
|
|
|
+ let vacE = new Date(vac.end).setDate(new Date(vac.end).getDate() - 1);
|
|
|
|
+ if (thisTime > vacS) {
|
|
|
|
+ if (thisTime < vacE) {
|
|
|
|
+ res = true;
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ return res;
|
|
|
|
+ }
|
|
|
|
+ },
|
|
},
|
|
},
|
|
watch: {
|
|
watch: {
|
|
data: {
|
|
data: {
|