【ElementUI】根据上个选择的开始日期,限制结束日期不能大于开始日期

ElementUI】ruleForm循环中根据上个选择的开始日期,限制结束日期不能大于开始日期

如下图所示

 <div class="addbdan"
             v-for="(item, index) in ruleForm.employeesAssessments"
             :key="index"
        >
         
            <p class="fl addsy">第{{index+1}}次</p>

            <el-form-item label="考核日期:"
                          :prop="`employeesAssessments[${index}].examinationDate`"
                          :rules="{ type: 'string', required: true, message: '请选择日期', trigger: 'change' }"
                          class="bitianxian">
              <el-date-picker
                :picker-options="pickerOptions2"
                v-model="item.examinationDate"
                value-format="yyyy-MM-dd"
                :default-value='defaultTimekh'
                type="date"
                placeholder="选择日期"
                @change="change_khrq(item.examinationDate)">
              </el-date-picker>
            </el-form-item>

            <el-form-item label="发证日期:"
                          :prop="`employeesAssessments[${index}].certificateDate`"
                          :rules="{ type: 'string', required: true, message: '请选择日期', trigger: 'change' }"
                          :class="item.certificatePass==2?'':'bitianxian'">
              <el-date-picker
                :picker-options="beginDate(item.examinationDate)"
                v-model="item.certificatePass==2?'':item.certificateDate"
                value-format="yyyy-MM-dd"
                :default-value='defaultTimefz'
                type="date"
                :disabled="item.certificatePass==2"
                placeholder="选择日期">
              </el-date-picker>
            </el-form-item>
          </div>

data

data (){ 
   return {
    pickerOptions2: {
                disabledDate(time) {
                    return time.getTime() > Date.now();
                }
            },
 
    }
 }
 
  change_khrq(e){
        console.log(e)
  }
   beginDate(oldtime){
            if(oldtime != '') {
                let date = new Date(oldtime)
                let pickerDate = date.toDateString() === new Date(oldtime).toDateString()
                console.log(pickerDate)
                return {
                    // 日期限制
                    disabledDate: (time) => {
                        let old = oldtime
                        return time.getTime() < new Date(old).getTime() - 86400000  || time.getTime() > Date.now()
                    },

                }
            }
        },

<el-form-item label="培训开始时间:"
                        prop="trainingStartTime"
                        class="bitianxian">
            <el-date-picker
              v-model="ruleForm.trainingStartTime"
              value-format="yyyy-MM-dd HH:mm:ss"
              :default-value='defaultTimepx'
              type="datetime"
              :picker-options="pickerOptions0"
              placeholder="选择日期">
            </el-date-picker>
          </el-form-item>
          <el-form-item label="培训结束时间:"
                        prop="trainingEndTime"
                        class="bitianxian">
            <el-date-picker
              v-model="ruleForm.trainingEndTime"
              value-format="yyyy-MM-dd HH:mm:ss"
              :default-value='defaultTimepx'
              type="datetime"
              :picker-options="endDate(ruleForm.trainingStartTime)"
              placeholder="选择日期">
            </el-date-picker>
          </el-form-item>

data

 pickerOptions0: {
             
  },
   defaultTimepx: new Date(), //日期
endDate(oldtime){
            if(oldtime != '') {
                let date = new Date(oldtime)
                let minutes = date.getMinutes() + 1
                // // h和m 是将日期只取时分
                let h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
                let m = (minutes < 10 ? '0' + minutes : minutes);
                // pickerDate 判断当前选择时间是否等于上条数据时间
                // 若等于时,限制时间从00:00:00 - 上条数据开始时间,不等于时,24小时可选
                let pickerDate = date.toDateString() === new Date(oldtime).toDateString()
                return {
                    // 日期限制
                    disabledDate: (time) => {
                        return time.getTime() < new Date(oldtime).getTime()- 1*24*60*60*1000;//减去一天的时间代表可以选择同一天;
                    },
                    // 时间限制
                    selectableRange: pickerDate? h + m  + ':00 - 23:59:59' : '00:00:00 - 23:59:59'
                }

            }
        },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值