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])
  })
},
相关推荐
JustHappy2 小时前
古法编程秘籍(七):互联网到底是什么?把两台电脑怎么说话搞懂就够了
前端·后端·网络协议
老毛肚2 小时前
jeecg-boot-base-core 02 day
javascript·python
snow@li2 小时前
SEO-文章标题:写文章时候,分类+主标题+大纲+解释 作为标题 / 不点进去也知道全文覆盖什么 / 标题即架构
前端
kyriewen3 小时前
Git Commit 前自动修复代码风格?配置 Husky + lint-staged,从此 CR 只聊逻辑
前端·git·面试
小和尚同志3 小时前
AI 自动化测试探索(一):Playwright MCP
前端·人工智能·aigc
老马识途2.04 小时前
在AI的帮助下理解spring的启动过程
java·前端·spring
徐小夕4 小时前
Loop Engineering 深度解析与实战指南(全网最全)
前端·算法·github
运筹vivo@4 小时前
Python ContextVar 底层机制与内存模型拆解
前端·数据库·python
#麻辣小龙虾#6 小时前
基于vue3.0开发一款【固废与废气运维管理系统】(支持源码)
前端·vue.js·vue3
Cosolar6 小时前
Docsify零构建文档站完全指南:从快速搭建到企业级部署
前端·开源·github