vue3+ts使用ant desigen vue库DatePicker日期选择框只能选择此刻之后

今日在开发中,碰到了这样的需求,开始时间框只能选择此刻和此刻之后的时间,翻阅了许多博客都没有找到很简便的方法实习,官方的文档解释的也不是很清楚,结合了一下案例后实现了这个需求。

首先我们需要定义一个DatePicker组件

<a-range-picker v-model:value="time"
                          :placeholder="['开始时间','结束时间']"
                          class="w-full"
                          :disabled-date="disabledDate"
                          :disabled-time="disabledRangeTime"
                          :show-time="{
                            hideDisabledOptions: true,
                            defaultValue: [dayjs('00:00:00', 'HH:mm:ss'), dayjs('11:59:59', 'HH:mm:ss')]
                          }"
                          format="YYYY-MM-DD HH:mm"
          />

根据官方文档disabled-date控制不可选择的天,disabled-time控制不可选择的时分秒。

我们在setup中定义这两个方法:

disabledData返回一个布尔值,确定不可以选择的区间

const disabledDate = (current: Dayjs) => {
      return current && current < dayjs().subtract(1, "days") 
    }

disabledRangeTime可拆分:

”_“此时选择的时间,可以用来做判断,“type”即双选框时判断是开始时间还是结束时间

 const disabledRangeTime = (_: Dayjs, type: 'start' | 'end') => {
      const date = new Date()
      const day = date.getDate()
      const hour = date.getHours()
      const min = date.getMinutes()
      if (type === 'start') {
        return {
          disabledHours: () => {
            if(_ !== null) {
              if(_.date() > day) {
                return []
              } else {
                return range(0, hour)
              }
            }
            return range(0, hour)
          },
          disabledMinutes: () =>{
            
            if(_ !== null) {
              if(_.hour() > hour) {
                return []
              } else {
                return range(0, min)
              }
            }
            return range(0, min)
          } 
        }
      }
    }

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
vite是一个基于浏览器原生模块系统的构建工具,它主要用于快速构建现代化的Web应用程序。它具有快速的冷启动速度、快速的热模块更新、按需编译等优点,可以大大提高开发效率。 Vue3是Vue.js的最新版本,它经过全面升级和重构,提供了更高效、更灵活的开发体验。Vue3引入了一些重要的改进,如Composition API、Teleport、Suspense等,可以帮助开发者更好地组织和管理代码。 TSTypeScript的缩写,它是JavaScript的超集,提供了静态类型检查和强大的面向对象编程能力。使用TS可以在开发过程中更早地发现潜在的错误,帮助开发者降低Bug的发生概率,并提供了更好的代码智能提示和自动补全功能。 Ant Design是一个基于React的企业级UI组件,提供了丰富的组件和模板,可以帮助开发者快速搭建美观、易用的用户界面。Ant Design提供了丰富的样式和主题定制能力,开发者可以根据自己的需求定制界面风格。 将vite、Vue3、TSAnt Design结合使用,可以为我们开发现代化、高效的Web应用程序提供很多便利。我们可以使用vite快速构建项目,并利用Vue3的新特性和Composition API来组织和管理代码。同时,我们可以使用TS进行静态类型检查,提高代码的可维护性和可读性。最后,借助Ant Design的组件,我们可以轻松地构建出漂亮、易用的用户界面。这一组合使得我们能够快速构建现代化的Web应用程序,提高开发效率和用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值