let compareTime = (rule, value, callback) => { let startTimeNum = new Date( (this as any).headerForm.startTime == '' ? (this as any).headerForm.BeginDate : (this as any).headerForm.startTime ).getTime(); let endTimeNum = new Date( (this as any).headerForm.endTime == '' ? (this as any).headerForm.EndDate : (this as any).headerForm.endTime ).getTime(); if (startTimeNum > endTimeNum) { this.$message({ type: 'info', message: '开始时间不能大于结束时间' }); callback(new Error(' ')); } callback(); }; headerForm: { BeginDate: '', EndDate: '' }, headerFormrules: { BeginDate: [ { required: true, type: 'date', message: ' ', trigger: 'change' }, { validator: compareTime, trigger: 'change' } ], EndDate: [ { required: true, type: 'date', message: ' ', trigger: 'change' }, { validator: compareTime, trigger: 'change' } ] }, pickerOptionsEnd: { disabledDate: time => { return this.pickerOptionsend(time); } }, pickerOptionsStart: { disabledDate: time => { return this.pickerOptionsstart(time); } },
<el-form ref="headerForm" :model="headerForm" :rules="headerFormrules" label-width="80px"> <el-form-item prop="BeginDate" label="起始时间" > <el-date-picker type="datetime" placeholder="选择日期" v-model="headerForm.BeginDate" format="yyyy-MM-dd" style="width: 100%;" @change="getStartTime" :picker-options='pickerOptionsStart' ></el-date-picker> </el-form-item> <el-form-item prop="EndDate" label="结束时间" > <el-date-picker type="datetime" placeholder="选择日期" v-model="headerForm.EndDate" format="yyyy-MM-dd" style="width: 100%;" :editable="false" @change="getEndTime" :picker-options='pickerOptionsEnd' ></el-date-picker> </el-form-item> </el-form>
public pickerOptionsstart(time) { var that = <any>this; const data = that.$data; if (data.headerForm.EndDate == '') { return time.getTime() > Date.now(); } else { let EndDateVal = new Date(data.headerForm.EndDate).getTime(); if (EndDateVal) { return time.getTime() > EndDateVal || time.getTime() > Date.now(); } } } public pickerOptionsend(time) { var that = <any>this; const data = that.$data; if (data.headerForm.BeginDate == '') { return time.getTime() > Date.now(); } else { let beginDateVal = new Date(data.headerForm.BeginDate).getTime(); if (beginDateVal) { return time.getTime() < beginDateVal || time.getTime() > Date.now(); } } } public getStartTime(e) { const that: any = this; const data = that.$data; data.headerForm.startTime = e; } public getEndTime(e) { const that: any = this; const data = that.$data; data.headerForm.endTime = e; }
public pickerOptionsstart(time) { var that = <any>this; const data = that.$data; if (data.headerForm.EndDate == '') { return time.getTime() > Date.now(); } else { let EndDateVal = new Date(data.headerForm.EndDate).getTime(); if (EndDateVal) { return time.getTime() > EndDateVal || time.getTime() > Date.now(); } } } public pickerOptionsend(time) { var that = <any>this; const data = that.$data; if (data.headerForm.BeginDate == '') { return time.getTime() > Date.now(); } else { let beginDateVal = new Date(data.headerForm.BeginDate).getTime(); if (beginDateVal) { return time.getTime() < beginDateVal || time.getTime() > Date.now(); } } }