话不多说,直接上代码
<template>
<div>
<div>
<el-form
class="p10"
ref="formData"
:model="formData"
label-width="80px"
>
<el-row :gutter="10">
<el-col :span="6">
<el-form-item :label="unitName.common.startTime">
<el-date-picker
class="w100"
v-model="formData.queryStartTime"
key="'starTime'"
value-format="yyyy-MM-dd"
format="yyyy年MM月dd日"
type="date"
placeholder="选择日期"
@change="starChange"
>
</el-date-picker>
</el-form-item>
</el-col>
<el-col :span="6">
<el-form-item :label="unitName.common.endTime">
<el-date-picker
class="w100"
v-model="formData.queryEndTime"
key="'endTime'"
value-format="yyyy-MM-dd"
format="yyyy年MM月dd 日"
type="date"
placeholder="选择日期"
:picker-options="endDateLimit"
>
</el-date-picker>
</el-form-item>
</el-col>
</el-row>
</el-form>
</div>
</div>
</template>
<script>
import moment from "moment";
export default {
data() {
return {
formData: {},
endDateLimit: {
disabledDate(time) {
return time.getTime() < Date.now() + 60 * 60 * 24;
},
},
};
},
created() {
let startTime = moment(new Date().setDate(new Date().getDate() + 1)).format(
"YYYY-MM-DD"
);
this.$set(this.formData, "queryStartTime", startTime);
},
methods: {
starChange() {
//如果已经存在结束日期
if (this.formData.queryEndTime) {
if (this.formData.queryStartTime > this.formData.queryEndTime) {
this.formData.queryEndTime = "";
this.$message.warning("结束日期小于开始日期,请重新选择");
return;
}
}
//如果结束日期尚未选择
if (!this.formData.queryStartTime) {
this.$message.warning("请先选择开始日期");
this.endDateLimit = Object.assign({}, this.endDateLimit, {
disabledDate: (date) => {
return true;
},
});
} else {
this.endDateLimit = Object.assign({}, this.endDateLimit, {
disabledDate: (date) => {
return new Date(date) < new Date(this.formData.queryStartTime);
},
});
}
},
},
};
</script>