Skip to content
API 风格:

TimePicker 时间选择器 ​

LhTimePicker 是一个用于选择时间的选择器组件,支持时、分、秒的精确选择。

基础用法 ​

基础用法
vue
<script setup lang="ts">
import { ref } from 'vue'

const baseTime = ref(new Date())
</script>

<template>
  <LhTimePicker v-model="baseTime" />
</template>
vue
<script>
export default {
  data() {
    return { baseTime: new Date() }
  },
}
</script>

<template>
  <LhTimePicker v-model="baseTime" />
</template>

禁用状态 ​

禁用状态
vue
<script setup lang="ts">
import { ref } from 'vue'

const disabledTime = ref(new Date())
</script>

<template>
  <LhTimePicker v-model="disabledTime" disabled />
</template>
vue
<script>
export default {
  data() {
    return { disabledTime: new Date() }
  },
}
</script>

<template>
  <LhTimePicker v-model="disabledTime" disabled />
</template>

时间格式化 ​

时间格式化
vue
<script setup lang="ts">
import { ref } from 'vue'

const formatTime1 = ref(new Date())
</script>

<template>
  <LhTimePicker v-model="formatTime1" format="HH:mm" />
</template>
vue
<script>
export default {
  data() {
    return { formatTime1: new Date() }
  },
}
</script>

<template>
  <LhTimePicker v-model="formatTime1" format="HH:mm" />
</template>

清除按钮 ​

清除按钮
vue
<script setup lang="ts">
import { ref } from 'vue'

const clearTime = ref(new Date())
</script>

<template>
  <LhTimePicker v-model="clearTime" clearable />
</template>
vue
<script>
export default {
  data() {
    return { clearTime: new Date() }
  },
}
</script>

<template>
  <LhTimePicker v-model="clearTime" clearable />
</template>

自定义时间范围 ​

自定义时间范围
vue
<script setup lang="ts">
import { ref } from 'vue'

const rangeTime = ref(new Date())
</script>

<template>
  <LhTimePicker v-model="rangeTime" :start="8" :end="20" />
</template>
vue
<script>
export default {
  data() {
    return { rangeTime: new Date() }
  },
}
</script>

<template>
  <LhTimePicker v-model="rangeTime" :start="8" :end="20" />
</template>

尺寸 ​

尺寸
vue
<script setup lang="ts">
import { ref } from 'vue'

const smallTime = ref(new Date())
const mediumTime = ref(new Date())
const largeTime = ref(new Date())
</script>

<template>
  <LhTimePicker v-model="smallTime" size="small" />
  <LhTimePicker v-model="mediumTime" size="medium" />
  <LhTimePicker v-model="largeTime" size="large" />
</template>
vue
<script>
export default {
  data() {
    return {
      smallTime: new Date(),
      mediumTime: new Date(),
      largeTime: new Date(),
    }
  },
}
</script>

<template>
  <LhTimePicker v-model="smallTime" size="small" />
  <LhTimePicker v-model="mediumTime" size="medium" />
  <LhTimePicker v-model="largeTime" size="large" />
</template>

步进 ​

步进
vue
<script setup lang="ts">
import { ref } from 'vue'

const stepTime = ref(new Date())
</script>

<template>
  <LhTimePicker v-model="stepTime" :stepMinute="5" :stepSecond="10" />
</template>
vue
<script>
export default {
  data() {
    return { stepTime: new Date() }
  },
}
</script>

<template>
  <LhTimePicker v-model="stepTime" :stepMinute="5" :stepSecond="10" />
</template>

占位、只读与方向键控制 ​

placeholder 自定义占位文本;readonly 只读;arrow-control 用方向键在列间滚动选择;start / end 限定时间范围;step-hour / step-minute / step-second 自定义各列步进。

placeholder / readonly
vue
<script setup lang="ts">
import { ref } from 'vue'
const tp1 = ref(null)
const tp2 = ref(new Date())
</script>

<template>
  <!-- 占位文本 -->
  <LhTimePicker v-model="tp1" placeholder="选择提醒时间" />
  <!-- 只读 -->
  <LhTimePicker :model-value="tp2" readonly />
</template>
vue
<script>
export default {
  data() {
    return {
      tp1: null,
      tp2: new Date(),
    }
  },
}
</script>

<template>
  <!-- 占位文本 -->
  <LhTimePicker v-model="tp1" placeholder="选择提醒时间" />
  <!-- 只读 -->
  <LhTimePicker :model-value="tp2" readonly />
</template>

TimePicker API ​

属性说明类型默认值
modelValue绑定的时间Datenull
size尺寸"small" | "medium" | "large" | "mini" | "x-large"'medium'
disabled是否禁用booleanfalse
clearable是否显示清除按钮booleantrue
placeholder占位文本(未传时按 format 生成,取语言包 timepicker.hour/minute/second)string''
format时间格式string'HH:mm:ss'
readonly输入框只读booleantrue
arrowControl是否显示箭头booleanfalse
start开始小时number0
end结束小时number24
stepHour小时步进number1
stepMinute分钟步进number1
stepSecond秒步进number1
sx快速布局属性(如 { mt: 2, w: '50%' }),转内联样式作用于触发器根元素(浮层面板不受影响)LhSxProps—

TimePicker Events ​

事件名说明类型
update:model-value值改变时触发(value: Date) => void
change值确认改变时触发(value: Date) => void

类型定义 ​

本组件对外导出的 TypeScript 类型结构如下(自动提取自 packages/components/time-picker/src/types.ts 与 @lh-ui/share/core/* 源码,点击各条目展开查看完整定义;属性说明见上方 Props 表):

LhTimePickerProps
ts
export interface LhTimePickerProps {
  modelValue?: Date | null
  size?: LhComponentSize
  disabled?: boolean
  clearable?: boolean
  placeholder?: string
  format?: string
  readonly?: boolean
  arrowControl?: boolean
  start?: number
  end?: number
  stepHour?: number
  stepMinute?: number
  stepSecond?: number
  /** sx 快速布局属性 */
  sx?: LhSxProps
}
LhComponentSize (来自 @lh-ui/share/core/shared)
ts
export type LhComponentSize = (typeof LH_SIZE_CONST)[keyof typeof LH_SIZE_CONST]