一、需求:未输入,所有日期均可选;选择起始日期,之前的日期置灰,之后可选5天,其他的日期置灰;清空输入日期,所有日期均可选
二:主要实现代码
 <el-date-picker
    v-model="valuePicker"
    type="daterange"
    value-format="yyyy-MM-dd"
    align="right"
    unlink-panels
    range-separator="-"
    :picker-options="pickerOptions"
    start-placeholder="开始日期"
    end-placeholder="结束日期"
    @change="changeDate"
>
</el-date-picker>
export default {
  data() {
    return {
      minDate: '',
      maxDate: '',
      valuePicker: [],
      pickerOptions: {
        onPick: ({maxDate, minDate}) => {
          this.minDate = minDate;
          this.maxDate = maxDate;
        },
        disabledDate: (time) => {
          let three = 5 * 24 * 3600 * 1000;
          if (this.minDate) {
            return (
              time.getTime() < this.minDate.getTime() || time > new Date(this.minDate.getTime() + three)
            );
          }
        },
    }   
  },
  methods: {
    changeDate(e) {
      if (e === null) {
        this.minDate = "";
        this.maxDate = "";
      }
    },
  }    
}
三:主要使用技术点

四、实现效果预览

Logo

技术共进,成长同行——讯飞AI开发者社区

更多推荐