乐趣区

elementui动态限定的日期范围选择器代码片段

何开此题

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

细节

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 动态限定的日期范围选择器,再回首,不用愁。

退出移动版