• Element UI disableddate设置动态时间,结束日期不可大于开始日期以及时间点


    elementui中 开始日期 -- 结束日期 开始时间--结束时间校验:

    个人不建议使用computed,性能不太好,触发过于频繁;

    注意:时间间隔中,不可设置秒数,因为element中el-time-picker组件中就算限制了秒数用户还是可选,并没有禁用,大家可自行尝试下;

    具体写法如下:

    <!--开始日期-->
    <el-form-item  label="开始日期"  prop="startDateStr">
     <el-date-picker
       v-model="startDateStr"
      :picker-options="pickerStartDate"
       type="date"
       format="yyyy-MM-dd"
       range-separator="-"
       value-format="yyyy-MM-dd"
       placeholder="开始日期">
     </el-date-picker>
    </el-form-item>

    <!--结束日期-->
    <el-form-item label="结束日期" prop="endDateStr">
     <el-date-picker
      :picker-options="pickerEndDate"
       v-model="endDateStr"
       type="date"
       format="yyyy-MM-dd"
       range-separator="-"
       value-format="yyyy-MM-dd"
       placeholder="结束日期">
     </el-date-picker>
    </el-form-item>

    <!--开始时间-->
    <el-form-item  label="开始时间"  prop="startTime">
      <el-time-picker
       v-model="startTime"
       selectableRange:`00:00:00 - ${endTime ? endTime+':00' : '23:59:00'}`
      }"
       format="HH:mm"
       value-format="HH:mm"
       placeholder="开始时间">
     </el-time-picker>
    </el-form-item>

    <!--结束时间-->
    <el-form-item label="结束时间" prop="endTime">
    <el-time-picker
       format="HH:mm"
       value-format="HH:mm"
       v-model="endTime"
       placeholder="结束时间"
      :picker-options="{
       selectableRange:`${startTime ? startTime+':00' : '00:00:00'} - 23:59:00`
      }"
       >
     </el-time-picker>
    </el-form-item>

    data() {
     return {
       oneDayMsec: 1 * 24 * 3600 * 1000, //一天的毫秒数
    pickerStartDate: this.pickerStartDate(),
       pickerEndDate: this.pickerEndDate(),
    }
    },
    methods: {
       /**开始日期可选 当天之后(包含当天)且不可大于结束日期 **/
       pickerStartDate() {
         var _this = this;
         return {
           disabledDate(time) {
             var time1 = new Date(_this.endDateStr).getTime();// 开始日期时间戳
             let a = time.getTime() <= Date.now() - 8.64e7;
             return time1 ? (a || time.getTime() > time1) : a;
          }
        }
      },  
         /**结束日期必须大于等于开始日期 且限制从当天之后(包含当天)可选**/
         pickerEndDate() {
           var _this = this;
           return {
             disabledDate(time) {
               var time1 = new Date(_this.startDateStr).getTime();// 开始日期时间戳
               let a = time.getTime() <= Date.now() - 8.64e7;
               return time1 ? (a || time.getTime() <= time1 - _this.oneDayMsec) : a;
            }
          }
        },
    }


    /**
    pickerOptions1: {
            disabledDate(time) {
              return time.getTime() < Date.now() - 8.64e7;//当天之后的时间可选
              return time.getTime() > Date.now() - 8.64e7;//当天之前的时间可选
              return time.getTime() > Date.now() ;//当天之前的时间可选---不包括当天
            },
          }      
    **/

     

  • 相关阅读:
    python-web自动化环境安装
    python-单元测试优化,加入日志
    小谢第17问:三目运算符嵌套使用方法
    小谢第16问:1到6000的正整数正则表达式怎么写?
    小谢第15问:5到60的正整数正则表达式怎么写?
    小谢第14问:多个if语句和else if有什么区别?
    小谢第13问:输入框绑定回车enter事件自动刷新页面
    小谢第12问:初始化页面的时候子组件为什么不渲染?
    小谢第11问:vue中,子组件获取的值怎么传给父组件
    小谢第10问:前端JS下载文件、表格
  • 原文地址:https://www.cnblogs.com/fmixue/p/13373582.html
Copyright © 2020-2023  润新知