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]