TimePicker时间选择框 - 图1

TimePicker 时间选择框

输入或选择时间的控件。

何时使用

当用户需要输入一个时间,可以点击标准输入框,弹出时间面板进行选择。

代码演示

TimePicker时间选择框 - 图2TimePicker时间选择框 - 图3TimePicker时间选择框 - 图4TimePicker时间选择框 - 图5

基本

点击 TimePicker,然后可以在浮层中选择或者输入某一时间。

  1. <template>
  2. <a-time-picker v-model:value="value" />
  3. <a-time-picker v-model:value="strValue" valueFormat="HH:mm:ss" />
  4. </template>
  5. <script lang="ts">
  6. import moment, { Moment } from 'moment';
  7. import { defineComponent, ref, watch } from 'vue';
  8. export default defineComponent({
  9. setup() {
  10. const value = ref<Moment>(moment('08:00:00', 'HH:mm:ss'));
  11. const strValue = ref<string>('09:00:00');
  12. watch(value, () => {
  13. console.log(value.value);
  14. });
  15. watch(strValue, () => {
  16. console.log(strValue.value);
  17. });
  18. return {
  19. value,
  20. strValue,
  21. moment,
  22. };
  23. },
  24. });
  25. </script>

TimePicker时间选择框 - 图6

附加内容

在 TimePicker 选择框底部显示自定义的内容。

  1. <template>
  2. <div>
  3. <a-time-picker v-model:value="value" v-model:open="open" @openChange="handleOpenChange">
  4. <template #addon="{ prefixCls }">
  5. <a-button size="small" type="primary" @click="handleClose">Ok {{ prefixCls }}</a-button>
  6. </template>
  7. </a-time-picker>
  8. <a-time-picker v-model:value="value" v-model:open="open2">
  9. <template #addon>
  10. <a-button size="small" type="primary" @click="handleClose">Ok</a-button>
  11. </template>
  12. </a-time-picker>
  13. </div>
  14. </template>
  15. <script lang="ts">
  16. import { Moment } from 'moment';
  17. import { defineComponent, ref } from 'vue';
  18. export default defineComponent({
  19. setup() {
  20. const open = ref(false);
  21. const open2 = ref(false);
  22. const value = ref<Moment>();
  23. const handleOpenChange = (openStatus: boolean) => {
  24. console.log('open', openStatus);
  25. open.value = openStatus;
  26. };
  27. const handleClose = () => {
  28. open.value = false;
  29. open2.value = false;
  30. };
  31. return {
  32. value,
  33. open,
  34. open2,
  35. handleOpenChange,
  36. handleClose,
  37. };
  38. },
  39. });
  40. </script>

TimePicker时间选择框 - 图7TimePicker时间选择框 - 图8

选择时分

TimePicker 浮层中的列会随着 format 变化,当略去 format 中的某部分时,浮层中对应的列也会消失。

  1. <template>
  2. <a-time-picker v-model:value="value" format="HH:mm" />
  3. </template>
  4. <script lang="ts">
  5. import moment from 'moment';
  6. import { defineComponent, ref } from 'vue';
  7. export default defineComponent({
  8. setup() {
  9. const value = ref(moment('12:08', 'HH:mm'));
  10. return {
  11. value,
  12. moment,
  13. };
  14. },
  15. });
  16. </script>

TimePicker时间选择框 - 图9

三种大小

三种大小的输入框,大的用在表单中,中的为默认。

  1. <template>
  2. <div>
  3. <a-time-picker v-model:value="value1" size="large" />
  4. <a-time-picker v-model:value="value2" />
  5. <a-time-picker v-model:value="value3" size="small" />
  6. </div>
  7. </template>
  8. <script lang="ts">
  9. import moment from 'moment';
  10. import { defineComponent, ref } from 'vue';
  11. export default defineComponent({
  12. setup() {
  13. return {
  14. value1: ref(moment('12:08:23', 'HH:mm')),
  15. value2: ref(moment('12:08:23', 'HH:mm')),
  16. value3: ref(moment('12:08:23', 'HH:mm')),
  17. };
  18. },
  19. });
  20. </script>

TimePicker时间选择框 - 图10

12 小时制

12 小时制的时间选择器,默认的 format 为 h:mm:ss a

  1. <template>
  2. <div>
  3. <a-time-picker v-model:value="value" use12-hours />
  4. <a-time-picker v-model:value="value" use12-hours format="h:mm:ss A" />
  5. <a-time-picker v-model:value="value" use12-hours format="h:mm a" />
  6. </div>
  7. </template>
  8. <script lang="ts">
  9. import { Moment } from 'moment';
  10. import { defineComponent, ref } from 'vue';
  11. export default defineComponent({
  12. setup() {
  13. return {
  14. value: ref<Moment | undefined>(undefined),
  15. };
  16. },
  17. });
  18. </script>

TimePicker时间选择框 - 图11

禁用

禁用时间选择。

  1. <template>
  2. <a-time-picker :value="moment('12:08:23', 'HH:mm:ss')" disabled />
  3. </template>
  4. <script lang="ts">
  5. import moment from 'moment';
  6. import { defineComponent } from 'vue';
  7. export default defineComponent({
  8. setup() {
  9. return {
  10. moment,
  11. };
  12. },
  13. });
  14. </script>

TimePicker时间选择框 - 图12

步长选项

可以使用 hourStep minuteStep secondStep 按步长展示可选的时分秒。

  1. <template>
  2. <a-time-picker v-model:value="value" :minute-step="15" :second-step="10" />
  3. </template>
  4. <script lang="ts">
  5. import { defineComponent, ref } from 'vue';
  6. export default defineComponent({
  7. setup() {
  8. const value = ref();
  9. return {
  10. value,
  11. };
  12. },
  13. });
  14. </script>

TimePicker时间选择框 - 图13

后缀图标

点击 TimePicker,然后可以在浮层中选择或者输入某一时间。

  1. <template>
  2. <a-time-picker v-model:value="value" :defaultOpenValue="moment('00:00:00', 'HH:mm:ss')">
  3. <template #suffixIcon><smile-outlined /></template>
  4. </a-time-picker>
  5. </template>
  6. <script lang="ts">
  7. import moment, { Moment } from 'moment';
  8. import { SmileOutlined } from '@ant-design/icons-vue';
  9. import { defineComponent, ref } from 'vue';
  10. export default defineComponent({
  11. components: {
  12. SmileOutlined,
  13. },
  14. setup() {
  15. return {
  16. moment,
  17. value: ref<Moment | undefined>(),
  18. };
  19. },
  20. });
  21. </script>

API

参数说明类型默认值版本
addon选择框底部显示自定义的内容slot | slot-scope
allowClear是否展示清除按钮booleantrue
autofocus自动获取焦点booleanfalse
clearText清除按钮的提示文案stringclear
defaultOpenValue当 defaultValue/value 不存在时,可以设置面板打开时默认选中的值momentmoment()
defaultValue默认时间moment
disabled禁用全部操作booleanfalse
disabledHours禁止选择部分小时选项function()
disabledMinutes禁止选择部分分钟选项function(selectedHour)
disabledSeconds禁止选择部分秒选项function(selectedHour, selectedMinute)
format展示的时间格式string“HH:mm:ss”
getPopupContainer定义浮层的容器,默认为 body 上新建 divfunction(trigger)
hideDisabledOptions隐藏禁止选择的选项booleanfalse
hourStep小时选项间隔number1
inputReadOnly设置输入框为只读(避免在移动设备上打开虚拟键盘)booleanfalse
minuteStep分钟选项间隔number1
open(v-model)面板是否打开booleanfalse
placeholder没有值的时候显示的内容string“请选择时间”
popupClassName弹出层类名string‘’
popupStyle弹出层样式对象object-
secondStep秒选项间隔number1
suffixIcon自定义的选择框后缀图标string | VNode | slot-
clearIcon自定义的清除图标string | VNode | slot-1.5.0
use12Hours使用 12 小时制,为 true 时 format 默认为 h:mm:ss abooleanfalse
value(v-model)当前时间moment
align该值将合并到 placement 的配置中,设置参考 dom-alignObject1.5.4
valueFormat可选,绑定值的格式,对 value、defaultValue 起作用。不指定则绑定值为 moment 对象string,具体格式-1.5.4

事件

事件名称说明回调参数
change时间发生变化的回调function(time: moment | string, timeString: string): void
openChange面板打开/关闭时的回调(open: boolean): void

方法

名称描述
blur()移除焦点
focus()获取焦点