Cube-UI 时间选择器 TimePicker 组件详解

Cube-UI 时间选择器 TimePicker 组件详解

cube-ui :large_orange_diamond: A fantastic mobile ui lib implement by Vue cube-ui 项目地址: https://gitcode.com/gh_mirrors/cu/cube-ui

什么是 TimePicker 组件

TimePicker 是 Cube-UI 提供的一个功能强大的时间选择器组件,它可以帮助开发者快速实现移动端的时间选择功能。这个组件采用三列滚轮式设计,分别用于选择日期、小时和分钟,操作直观便捷。

基础用法

要使用 TimePicker 组件,首先需要在项目中引入并注册 Cube-UI。基础用法非常简单:

<cube-button @click="showTimePicker">打开时间选择器</cube-button>
export default {
  methods: {
    showTimePicker() {
      this.$createTimePicker({
        showNow: true,
        minuteStep: 5,
        delay: 15,
        onSelect: (selectedTime, selectedText, formatedTime) => {
          // 处理选择结果
        },
        onCancel: () => {
          // 处理取消操作
        }
      }).show()
    }
  }
}

在这个基础示例中,我们配置了几个关键属性:

  • showNow: 是否显示"现在"选项
  • minuteStep: 分钟步长,这里设置为5分钟
  • delay: 从当前时间往后延迟的分钟数,影响可选的最小时间

高级配置

日期选项配置

TimePicker 允许对日期列进行详细配置:

this.$createTimePicker({
  day: {
    len: 5,  // 显示5天的选项
    filter: ['今天', '明天'],  // 自定义前两天的显示文本
    format: 'M月d日'  // 日期格式化
  }
})

时间格式配置

从1.10.0版本开始,支持自定义时间格式:

this.$createTimePicker({
  format: 'hh:mm',  // 只显示小时和分钟
  onSelect: (selectedTime, selectedText, formatedTime) => {
    // formatedTime 将按照指定格式显示
  }
})

时间范围限制

1.12.6版本新增了min和max属性,可以限制可选时间范围:

// 设置最小可选时间(2小时20分钟前)
this.$createTimePicker({
  min: +new Date() - (2 * 60 + 20) * 60 * 1000
})

// 设置最大可选时间(2天2小时20分钟后)
this.$createTimePicker({
  max: +new Date() + ((2 * 24 + 2) * 60 + 20) * 60 * 1000
})

手动设置时间

可以通过实例方法动态设置显示的时间:

const timePicker = this.$createTimePicker({...})
// 设置为1小时后
timePicker.setTime(new Date().valueOf() + 1 * 60 * 60 * 1000)
timePicker.show()

属性详解

TimePicker 提供了丰富的配置属性:

| 属性 | 说明 | 类型 | 默认值 | |------|------|------|------| | day | 日期配置 | Object | { len: 3, filter: ['今日'], format: 'M月D日' } | | showNow | 是否显示"现在"选项 | Boolean/Object | true | | minuteStep | 分钟步长 | Number | 10 | | delay | 从当前时间延迟的分钟数 | Number | 15 | | min | 最小可选时间 | Date/Number | null | | max | 最大可选时间 | Date/Number | null | | title | 标题 | String | '选择时间' | | format | 时间格式化字符串 | String | 'YYYY/M/D hh:mm' |

事件处理

TimePicker 提供了三个主要事件:

  1. select - 点击确定按钮时触发

    • 参数1: 选中的时间戳
    • 参数2: 选中的文本表示
    • 参数3: 格式化后的时间字符串
  2. change - 滚动选择器时触发

    • 参数1: 当前滚动列的索引
    • 参数2: 当前列选中项的索引
  3. cancel - 点击取消按钮时触发

最佳实践

在实际项目中使用 TimePicker 时,建议:

  1. 根据业务需求合理设置时间步长(minuteStep),如预约场景可以设置为30分钟步长

  2. 使用min和max属性限制可选时间范围,提升用户体验

  3. 对于需要频繁使用的时间选择器,可以创建实例后复用,而不是每次都新建

  4. 在移动端使用时,考虑添加适当的动画效果(siwpeTime)使交互更流畅

TimePicker 组件作为 Cube-UI 的重要组成部分,其设计充分考虑了移动端的使用场景和交互体验,开发者可以灵活配置以满足各种业务需求。

cube-ui :large_orange_diamond: A fantastic mobile ui lib implement by Vue cube-ui 项目地址: https://gitcode.com/gh_mirrors/cu/cube-ui

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

班岑航Harris

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值