Skip to content

TimeZone 时区选择器

时区选择器组件用于选择 IANA 时区,支持搜索过滤、键盘导航、中文别名搜索、自定义别名注入,适合多时区后台、出海业务等场景。

基础用法

通过 v-model 绑定选中的时区代码(IANA Timezone 标识)。

vue

<TTimeZone v-model="timezone" label="选择时区" />

标签与描述

通过 labeldescription prop 添加表单标签和描述文字。点击标签自动聚焦输入框。

vue

<TTimeZone
  v-model="timezone"
  label="工作时区"
  description="用于显示所有时间相关的数据"
/>

搜索过滤

输入城市、时区代码或 UTC 偏移关键词快速过滤时区列表。支持中文别名搜索,输入 shanghaibeijin 等可直达对应时区。支持键盘 ↑↓ 导航和 Enter 选择。

vue

<TTimeZone v-model="timezone" label="搜索时区" />

属性透传

TTimeZone 未声明的属性(如 sizevalidationprepend-textblock 等)会自动透传到内部的 TCombobox 组件,实现灵活的 UI 控制。

vue

<TTimeZone v-model="timezone" label="小尺寸" size="sm" validation="valid" />

自定义别名

通过 custom-aliases 注入业务特有的搜索别名,用户输入自定义关键词也能检索到对应时区。

vue

<TTimeZone
  v-model="timezone"
  label="搜索时区"
  :custom-aliases="{
    'Asia/Shanghai': ['我的城市', '魔都'],
    'America/New_York': ['纽约', '扭腰'],
  }"
/>

API

Props

Prop说明类型默认值
v-model选中的时区代码(IANA)string''
label标签文字stringundefined
description描述文字stringundefined
placeholder搜索框占位符string'搜索时区...'
disabled禁用booleanfalse
required必填booleanfalse
customAliases自定义搜索别名Record<string, string[]>{}

透传属性

以下属性通过 v-bind="$attrs" 透传给内部的 TCombobox,可直接在 TTimeZone 上使用:

属性说明类型
size尺寸'sm' | 'lg'
validation验证状态'valid' | 'invalid'
block块级宽度boolean
prependText前置文本string
appendText后置文本string