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])
  })
},
相关推荐
老华带你飞2 分钟前
电影购票|基于java+ vue电影购票系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot
老华带你飞4 分钟前
宠物管理|基于java+ vue宠物管理系统(源码+数据库+文档)
java·开发语言·前端·数据库·vue.js·spring boot·宠物
释怀不想释怀2 小时前
Ajax,vue生命周期(自动加载页面发出请求)Axios
前端·javascript·ajax
一点晖光2 小时前
ios底部按钮被挡住
前端·ios·微信小程序
cz追天之路8 小时前
华为机考--- 字符串最后一个单词的长度
javascript·css·华为·less
Light608 小时前
CSS逻辑革命:原生if()函数如何重塑我们的样式编写思维
前端·css·响应式设计·组件化开发·css if函数·声明式ui·现代css
蜡笔小嘟9 小时前
宝塔安装dify,更新最新版本--代码版
前端·ai编程·dify
ModyQyW10 小时前
HBuilderX 4.87 无法正常读取 macOS 环境配置的解决方案
前端·uni-app
bitbitDown10 小时前
我的2025年终总结
前端
五颜六色的黑10 小时前
vue3+elementPlus实现循环列表内容超出时展开收起功能
前端·javascript·vue.js