何开此题

我是一个码农,缘起就是这次需求遇到了之前实现过的功能细节,不想再从头翻组件文档实现一遍,最好是直接拷贝粘贴。

细节

picker-options 设定规则:时间范围最大可选择30天, 最晚时间为今天。

element-ui 的日期选择器的组件是 el-date-picker.

设定 pickerOptions2,

  data() {
    return {
      pickerOptions2: {
        disabledDate: theDate => {
          const oneDay = 3600 * 1000 * 24

          const current = theDate.getTime()
          const now = Date.now()

          const condition1 = current > now
          if (!this.minDateTimestamp) return condition1

          const pickerRangeNum = 30

          // 时间范围最大可选择30天,最晚时间为今天
          const lastMonthBegin = this.minDateTimestamp
          const lastMonthEnd = lastMonthBegin + pickerRangeNum * oneDay

          return (
            condition1 || current < lastMonthBegin || current > lastMonthEnd
          )
        },
        onPick: ({ maxDate, minDate }) => {
          this.minDateTimestamp = minDate.getTime()
          if (maxDate) {
            this.minDateTimestamp = 0
          }
        },
      },
    }
  },

模板的设定,

<template>
<el-date-picker
  class="form-item-control"
  v-model="qo2.dateRange2"
  type="daterange"
  range-separator=" 至 "
  start-placeholder="开始日期"
  end-placeholder="结束日期"
  placeholder="请选择时间段"
  :picker-options="pickerOptions2"
/>
</template>

总结

element-ui 动态限定的日期范围选择器,再回首,不用愁。


大暗扣
272 声望1 粉丝