美文网首页
Element-ui时间(区间)选择器默认选中当天

Element-ui时间(区间)选择器默认选中当天

作者: 罗伊玛斯坦 | 来源:发表于2020-06-30 12:02 被阅读0次

element-ui date-picker选择器默认选择当天的时间段

示例

示例代码:

        <el-date-picker
          ref="picker_date"
          prefix-icon="el-icon-date"
          :clearable="false"
          v-model="timeSelect"
          type="datetimerange"
          start-placeholder="开始日期"
          end-placeholder="结束日期"
          value-format="yyyy-MM-dd HH:mm:ss"
          :picker-options="datePickerOptions"
          :default-time="defaultSelectTime"
        >
        </el-date-picker>

        created(){
          //此处为初始化默认选择代码,可能有些不需要
         //parseTime为自己封装的时间转换函数,未贴上去
          let start = new Date(new Date().setHours(0, 0, 0, 0));
          let end = new Date();
          this.defaultSelectTime = [
            parseTime(start, "hh:ii:ss"),
            parseTime(end, "hh:ii:ss")
          ];

        }

        data(){
          const _this = this
          return {
            timeSelect: [ ],
            datePickerOptions: {
              startDate: null,
              disabledDate: time => {
                if (
                  this.datePickerOptions.startDate === undefined ||
                  this.datePickerOptions.startDate === null
                ) {
                  return time.getTime() > new Date().getTime();
                } else {
                  return (
                    time.getTime() >
                      this.datePickerOptions.startDate.getTime() + 86399000 ||
                    time.getTime() < this.datePickerOptions.startDate.getTime()
                  );
                }
              },
              onPick: function(dateRange) {
                //方法1: 副作用是输入框会闪灰一下
                const min = new Date(dateRange.minDate)
                const max = new Date(parseTime(dateRange.minDate,'yyyy-mm-dd') + ' ' + _this.defaultSelectTime[1])
                setTimeout(() => {
                  _this.$refs.picker_date.picker.handleChangeRange({
                    minDate:min,
                    maxDate:max, //设置为默认时间
                    rangeState: {
                      endDate:min,
                      selecting:false
                    }
                  })
                }, 30);
                return
                //方法2: 副作用是控制台会报错,但是程序能正常执行
                _this.$refs.picker_date.picker.handleChangeRange({
                    minDate:min,
                    maxDate:max, //设置为默认时间
                    rangeState: {
                      endDate:min,
                      selecting:false
                    }
                })
                this.$nextTick(()=>{
                  _this.$refs.picker_date.picker.handleTimeChange(min ,'min')
                  _this.$refs.picker_date.picker.handleTimeChange(max ,'max')
                })
                return

                //通过禁用让用户只能够重复点选2次来选择时间段
                _this.datePickerOptions.startDate = dateRange.minDate;
                if (dateRange.maxDate) {
                  _this.datePickerOptions.startDate = null;
                }
              }
            }
          }
        }

相关文章

网友评论

      本文标题:Element-ui时间(区间)选择器默认选中当天

      本文链接:https://www.haomeiwen.com/subject/lxzofktx.html