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])
  })
},
相关推荐
JNX_SEMI12 分钟前
AT2659 L1频段多模卫星导航低噪声放大器技术解析
前端·单片机·嵌入式硬件·物联网·硬件工程
Profile排查笔记2 小时前
指纹浏览器环境异常排查:Fingerprint、Profile、Proxy、Session 和 Task Log 怎么看
前端·人工智能·后端·自动化
京韵养生记2 小时前
【无标题】
java·服务器·前端
大气的小蜜蜂3 小时前
领域层的服务
java·前端·数据库
星栈3 小时前
LiveView 的 LiveComponent:比 React 组件更轻,但我一开始真的把它用错了
前端·前端框架·elixir
竹林8183 小时前
用 Pinata + IPFS 存 NFT 元数据踩了三天坑,我总结了这份完整的前端实现方案
javascript
林希_Rachel_傻希希3 小时前
web性能优化之延迟加载图片和<inframe>
前端·javascript·面试
maxmaxma3 小时前
Konva 从入门到实践 - day1
前端
火星校尉3 小时前
一场数据基建与消费场景的跨界实验
java·前端·数据库·python·php
W是笔名4 小时前
python_let`s try it 6___BMI计算器
java·前端·python