View Design TimePicker 限制时间范围

javascript 复制代码
<TimePicker
:disabled-hours="[1,5,10]"
 :disabled-minutes="[0,10,20]"
 placeholder="Select time"
 style="width: 168px" />

由于TimePicker 的 限制disabled-hours disabled-minutes disabled-seconds 组合禁止用户选择某个时间,需要传入数组

javascript 复制代码
<TimePicker format="HH:mm" placeholder="开始时间" v-model="xzInfo.val1" style="width: 200px;margin-right: 15px;"
:disabled-hours="disabledhoursStar"
 :disabled-minutes="disabledminutesStar"
 @on-change="changeStar"
 />
 <TimePicker format="HH:mm" placeholder="结束时间" v-model="xzInfo.val2" style="width: 200px"
 :disabled-hours="disabledhoursEnd"
 :disabled-minutes="disabledminutesEnd"
 @on-change="changeEnd"
 />
 disabledhoursStar: [],
 disabledminutesStar: [],
 disabledhoursEnd: [],
 disabledminutesEnd: []

默认空数组,根据change 时间改变来更改限制条件

javascript 复制代码
//获取不可选择的小时
disabledStartHours(endTime){
  if(endTime){
      let hours = [];
      // let hour = moment(endTime).hour();
      let hour = endTime.split(':')[0];
      for (let i = Number(hour)+1; i < 24; i++) {
          hours.push(i);
      }
      return hours
  }
},
//获取不可选择的分钟
disabledStartMinutes(endTime,selectedHour){
  if(endTime){
      let minutes = [];
      // let hour = moment(endTime).hour();
      let hour = endTime.split(':')[0];
      // let minute = moment(endTime).minute();
      let minute = endTime.split(':')[1];
      if(selectedHour===hour){
          for (let i = Number(minute)+1; i < 60; i++) {
              minutes.push(i);
          }
      }
      return minutes
  }
},
//获取不可选择的小时
disabledEndHours(startTime){
  if(startTime){
      let hours = [];
      // let hour = moment(startTime).hour();
      let hour = startTime.split(':')[0];
      for (let i = 0; i < hour; i++) {
          hours.push(i);
      }
      return hours
  }
},
//获取不可选择的分钟
disabledEndMinutes(startTime,selectedHour){
  if(startTime){
      let minutes = [];
      // let hour = moment(startTime).hour();
      let hour = startTime.split(':')[0];
      // let minute = moment(startTime).minute();
      let minute = startTime.split(':')[1];
      if(selectedHour===hour){
          for (let i = 0; i < minute; i++) {
              minutes.push(i);
          }
      }
      return minutes
  }
},
changeStar(e) {
  this.$nextTick(() => {
      this.disabledhoursEnd = this.disabledEndHours(this.xzInfo.val1)
      this.disabledminutesStar = this.disabledStartMinutes(this.xzInfo.val2, e.split(':')[0])
  })
},
changeEnd(e) {
  this.$nextTick(() => {
      this.disabledhoursStar = this.disabledStartHours(this.xzInfo.val2)
      this.disabledminutesEnd = this.disabledEndMinutes(this.xzInfo.val1, e.split(':')[0])
  })
},
相关推荐
777VG4 小时前
PostgreSQL +martin将多张表输出成一个 MVT
前端·数据库·postgresql
mayaairi5 小时前
JS循环语句深度解析:嵌套for、while与do...while
开发语言·前端·javascript
To_OC5 小时前
啃完流式输出:从一个卡顿的 LLM 接口开始,我搞懂了数据流到底怎么 “流”
前端·javascript·llm
阳光是sunny5 小时前
LangGraph实战教程:defer延迟节点——让收尾工作自动排到最后
前端·人工智能·后端
kyriewen5 小时前
我用了三周Claude Code Skills——总结出5条铁律,第3条最反直觉
前端·ai编程·claude
阳光是sunny5 小时前
LangGraph实战教程:控制流详解
前端·人工智能·后端
格尔曼Noah6 小时前
Safari浏览器中如何只允许指定网站下载
前端·safari
用户059540174467 小时前
用了3年Redis,才发现我一直没搞懂缓存一致性测试
前端·css
swipe7 小时前
07|(前端转后全栈)为什么后端也要缓存?从前端缓存思维理解 Redis
前端·后端·全栈
IT小盘7 小时前
05-企业项目统一接入多个大模型-适配器模式实战
前端·人工智能·适配器模式