1. <el-form-item label="结束日期" prop="endDate" style="display: inline-block;" required>
    2. <el-date-picker
    3. v-model="form.endDate"
    4. type="date"
    5. value-format="yyyy-MM-dd"
    6. placeholder="结束日期"
    7. :picker-options="pickerEndDateOptions"
    8. >
    9. </el-date-picker>
    10. </el-form-item>
    selectDateRules() {
      let self = this;
      this.pickerEndDateOptions = {
        disabledDate(time){
          //当前年
          let currentYear = new Date().getFullYear();
          //选择的当年
          let selectYear = new Date(self.form.startDate).getFullYear();
          let selectStartDate;
          let selectEndDate = `${selectYear}-12-31`;
    
          let selectStartStamp;
          let selectEndStamp = new Date(selectEndDate).getTime();
    
          //如果选择的年和今年相等
          if(selectYear == currentYear) {
            selectStartStamp = Date.now()- 24 * 60 * 60 * 1000;
          }else {
            //如果选择的不是今年
            //注意:这里需要到年月日 时分秒 否则会默认为08:00:00
            selectStartDate = `${selectYear}-01-01 00:00:00`;
            selectStartStamp = new Date(selectStartDate).getTime();
          }
          //getTime() 返回距离1970年1月1日之间的毫秒数
          //如果选的时间(time.getTime())小于开始时间(selectStartDate)时间的话,就不能选择
          //如果选的时间(time.getTime())大于(selectStartDate)时间的话,就可以选择
          //return为true的话,就禁止掉
          return time.getTime() < selectStartStamp || time.getTime() > selectEndStamp;
        }
      }
    }