element DatePicker 快捷选择 昨日 今日 近一周 近30天 近一年 ;并且限制范围

11 篇文章 0 订阅

效果图:
在这里插入图片描述

<el-date-picker
  size="small"
  v-model="time"
  type="daterange"
  :picker-options="pickerOptions"
  format="yyyy-MM-dd"
  value-format="yyyy-MM-dd"
  range-separator="至"
  start-placeholder="开始日期"
  end-placeholder="结束日期"
  align="right">
</el-date-picker>

data(){
	return{
	     time:[],
		 startTime:'2021-06-29',
      	 endTime:'2021-07-07',
		 pickerOptions: {
          disabledDate: (time) => {
                let beginDate = new Date(this.startTime)
                let endDate = new Date(this.endTime)
                return time.getTime() > endDate.getTime() || time.getTime() < beginDate.getTime()
          },
          shortcuts: [
          {
            text: '昨日',
            onClick(picker) {
              const end = new Date();
              end.setTime(end.getTime() - 3600 * 1000 * 24 * 1);
              end.setHours(23);end.setMinutes(59);end.setSeconds(59);
              const start = new Date();
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 1);
              start.setHours(0);start.setMinutes(0);start.setSeconds(0);
              picker.$emit('pick', [start, end]);
            }
          },
          {
            text: '今日',
            onClick(picker) {
              const end = new Date();
              end.setTime(end.getTime());
              end.setHours(end.getHours());
              end.setMinutes(end.getMinutes());
              end.setSeconds(end.getSeconds());
              const start = new Date();
              start.setTime(start.getTime());
              start.setHours(0);start.setMinutes(0);start.setSeconds(0);
              picker.$emit('pick', [start, end]);
            }
          },
          {
            text: '最近一周',
            onClick(picker) {
              const end = new Date();
              end.setHours(23);end.setMinutes(59);end.setSeconds(59);
              const start = new Date();
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 6);
              start.setHours(0);start.setMinutes(0);start.setSeconds(0);
              picker.$emit('pick', [start, end]);
            }
          },
          {
            text: '最近30天',
            onClick(picker) {
              const end = new Date();
              end.setHours(23);end.setMinutes(59);end.setSeconds(59);
              const start = new Date();
              start.setHours(0);start.setMinutes(0);start.setSeconds(0);
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 29);
              picker.$emit('pick', [start, end]);
            }
          },
          {
            text: '最近90天',
            onClick(picker) {
              const end = new Date();
              end.setHours(23);end.setMinutes(59);end.setSeconds(59);
              const start = new Date();
              start.setHours(0);start.setMinutes(0);start.setSeconds(0);
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 90);
              picker.$emit('pick', [start, end]);
            }
          },
          {
            text: '最近一年',
            onClick(picker) {
              const end = new Date();
              end.setHours(23);end.setMinutes(59);end.setSeconds(59);
              const start = new Date();
              start.setHours(0);start.setMinutes(0);start.setSeconds(0);
              start.setTime(start.getTime() - 3600 * 1000 * 24 * 365);
              picker.$emit('pick', [start, end]);
            }
          },
          ],
      },
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值