element 日期选择器

element DatePicker 日期选择器 限制在三个月外加快捷选择日期

在项目中想使用日期选择器,并且把时间限制在三个月以内,在官网中查看到 disabledDateonPick 两个方法。

在这里插入图片描述
在项目中直接使用:
在这里插入图片描述
在data中定义
在这里插入图片描述

选中第一个时间后,就要设置不可选中区域
在这里插入图片描述
监听存放时间的数组是否为空,如果为空,那就要重置minDate(为解决clearable清空后,依然记录的是上一次选择的minDate时间问题)
在这里插入图片描述

部分可复制代码

   <el-date-picker v-model="queryParams.devTime" value-format="yyyy-MM-dd" type="daterange" align="right"
          unlink-panels range-separator="至" start-placeholder="开始日期" end-placeholder="结束日期" clearable
          :picker-options="pickerOptions">
   </el-date-picker>
   maxDate: undefined,
   minDate: undefined,
  computed: {
    pickerOptions() {
      let _this = this
      return {
        shortcuts: [{
          text: '最近一周',
          onClick(picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 7);
            picker.$emit('pick', [start, end]);
            _this.minDate = start
          }
        }, {
          text: '最近一个月',
          onClick(picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 30);
            picker.$emit('pick', [start, end]);
            _this.minDate = start
          }
        }, {
          text: '最近三个月',
          onClick(picker) {
            const end = new Date();
            const start = new Date();
            start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
            picker.$emit('pick', [start, end]);
            _this.minDate = start
          }
        }],
        disabledDate(time) {
          const times = 86400000 * 90  // 三个月的毫秒数
          let curSelectTime = new Date(_this.minDate).getTime()
          let before = curSelectTime - times//前三个月毫秒数
          let after = curSelectTime + times//后三个月毫秒数
          return time.getTime() > after || time.getTime() < before
        },

        onPick({ maxDate, minDate }) {
          if (!maxDate) {
            _this.minDate = minDate
          }
        }
      }
    }
  },
  watch: {
    'queryParams.devTime': {
      deep: true, // 深度监听
      handler() {
        if (!this.queryParams.devTime) {
          this.queryParams.devTime == []
          this.minDate = undefined
        }  
      }
    }
  },
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值