选择与表单

时间选项选择器 AsamTimeSelect

从固定起止区间按步长生成时间选项,用于预约和排班。

使用场景 ​

从固定起止区间按步长生成时间选项,用于预约和排班。正常选择提交格式化时间文本,清空时直接输出原生 valueOnClear 结果。

原生默认模型 ​

未设置行为属性时由原生控件解析默认值。以下完整 SFC 对照显式 undefined、null 和空字符串;输出保留原始模型类型,不把清空值统一为 null。固定原生版本的非法输入诊断与兼容限制仍按原生处理。

原生默认模型

展开源码

格式、清空与禁用 ​

模型初始为空;选择后显示当前值。disabled 由调用方切换,clear 的行为与 update:modelValue 分开。

格式、清空与禁用

展开源码

动态最早时间 ​

minTime/maxTime 限制可选范围,includeEndTime 可包含终点。修改前一个值后,调用方决定是否重置后一个值。

动态最早时间

展开源码

公开实例操作 ​

focus/blur 访问实际输入。

公开实例操作

展开源码

四档尺寸与上下文继承 ​

四个实例分别显式使用 large、big、default、small。下面省略 size 的实例随 ConfigProvider 响应切换;显式 size 覆盖祖先。面板本身没有 size 契约的入口不附加虚构尺寸属性。

四档尺寸与上下文继承

展开源码

ASAM 扩展与迁移 ​

固定 2.14.7 对无法解析或负数的 start/end,以及无法解析、负数或零步长 step 给出诊断,并分别回退到 09:00、18:00、00:30,避免无穷生成选项。 完整说明。

start 大于 end 且 includeEndTime=false 时没有选项;includeEndTime=true 时仍追加 end。 完整说明。

ASAM 四档 size 与表单、ConfigProvider 继承一致。 完整说明。

API 阅读方式 ​

下方 Props、Events、Slots、Exposes 按当前实际公开类型与运行默认值生成。组合属性按分支生效,不能任意混搭值模式。标为“未知 / 未声明”的默认值不代表 false 或空值。源码区域提供对应语言的独立 Demo.vue,可直接复制或下载;本地辅助组件、数据和素材已内联到当前文件。

固定 2.14.7 完整用法 ​

下面以 ASAM 公开组件和图标入口承接固定 2.14.7 完整用途,保留 TS/JS 完整示例。基础入口使用原生默认值,未指定 valueFormat 的日期/时间选择保持 Date 模型。

基础用法 ​

基础用法

展开源码

时间格式 ​

时间格式

展开源码

时间范围 ​

时间范围

展开源码

非法时间配置与安全回退 ​

非法时间配置与安全回退

展开源码

本地化与高级配置 ​

通过 ConfigProvider 在中文和英文之间切换;该例使用明确公开类型配置本入口的高级属性。尺寸、模型、原生范围与两个独立端点的职责仍按前文分支生效。

日期语言和控件文字是两份配置:本例的 locale.ts / locale.js 同时注册 Day.js 的 zh-cn 日期 locale,中文每周从周一开始,英文从周日开始。 完整说明。

固定版本已经创建的日期对象可能保留旧 locale;本示例切换语言时通过 key 重建控件以更新日期语言,输入弹层会关闭,重新打开即可查看新语言。该例格式含本地化 AM/PM,切换语言时清空旧格式字符串;需要稳定的语言无关模型,可使用 HH:mm。

本地化与高级配置的完整 SFC

展开源码

原生清空配置与迁移 ​

基础入口仅委托原生公开 props、事件、slots、模型与 expose。未传属性与显式 undefined、null、false 均保持原生语义;不补入空值,不替换清空工厂,不将输出统一为 null。合法 0、false、undefined 或数组工厂输出及原生的事件顺序完整保留,工厂调用受原生校验与计算规则约束。

固定 2.14.7 对某些清空哨兵与格式组合可能产生空显示、格式化异常或诊断;这些属于原生兼容限制,基础包装不接管处理。 完整说明。

清空工厂与上下文配置

展开源码

原生默认值与适配说明 ​

start=09:00、end=18:00、step=00:30、format=HH:mm;modelValue 未设置时为 undefined。 完整说明。

局部与全局浮层 ​

基础示例使用默认的全局挂载;局部挂载示例展示显式配置的 teleported 或 appendTo。先打开控件浮层,再观察其所在容器。挂载位置与控件值、请求协议互相独立。

API

属性 AsamTimeSelectProps

属性名说明类型默认值
effectTooltip 主题,内置了 dark / light 两种enum"light" | "dark"完整类型:(AsamTimeSelectProps)["effect"]—
popperClass为 TimeSelect 下拉面板设置自定义类名AsamTimeSelectProps["popperClass"]—
popperStyle为 TimeSelect 下拉面板设置自定义样式(AsamTimeSelectProps)["popperStyle"]—
disabled禁用状态(AsamTimeSelectProps)["disabled"]false
start开始时间string | undefined—
name原生属性string | undefined—
format设置时间格式string | undefined—
end结束时间string | undefined—
editable文本框可输入(AsamTimeSelectProps)["editable"]false
emptyValues组件空值配置,参阅配置提供器的空值说明。unknown[] | undefined—
valueOnClear清空后的返回值,参阅配置提供器的空值说明。(AsamTimeSelectProps)["valueOnClear"]—
clearable是否显示清除按钮(AsamTimeSelectProps)["clearable"]false
step间隔时间string | undefined—
clearIcon自定义清除图标(AsamTimeSelectProps)["clearIcon"]—
prefixIcon自定义前缀图标(AsamTimeSelectProps)["prefixIcon"]—
placeholder非范围选择时的占位内容string | undefined—
minTime最早时间点,早于该时间的时间段将被禁用(AsamTimeSelectProps)["minTime"]—
maxTime最晚时间点,晚于该时间的时间段将被禁用(AsamTimeSelectProps)["maxTime"]—
includeEndTime是否在选项中包含endboolean | undefinedfalse
size输入框尺寸enum"large" | "big" | "default" | "small"完整类型:AsamControlSize | undefined—
modelValue选中项绑定值AsamTimeSelectValuefalse
teleported透传给内部选择器浮层。boolean | undefinedfalse
validateEvent透传给内部选择器的表单校验契约。boolean | undefinedfalse

事件 AsamTimeSelectEmits

属性名说明类型默认值
update:modelValue—[value: AsamTimeSelectValue]—
change—[value: AsamTimeSelectValue]—
focus—[event: FocusEvent]—
blur—[event: FocusEvent]—
clear—(AsamTimeSelectEmits)["clear"]—

插槽 AsamTimeSelectSlots

实例方法与状态 AsamTimeSelectExpose

属性名说明类型默认值
focus使选择器的输入框获取焦点() => void—
blur使 input 失去焦点() => void—

用法与契约补充说明 ​

ASAM 扩展与迁移 ​

固定 2.14.7 对无法解析或负数的 start/end,以及无法解析、负数或零步长 step 给出诊断,并分别回退到 09:00、18:00、00:30,避免无穷生成选项。原生没有附加 24 小时或 60 分钟上限:25:70 的解析和内部格式仍为 25:70;推进零步长得到 26:10,推进 00:30 得到 26:40(组件中的零步长先回退,不能用工具函数零步长代替组件行为)。默认 HH:mm 下对应选项显示 02:10 和 02:40,选择时模型也是这个显示格式值;跨午夜的 24:15 同样显示并提交 00:15。需要限制钟表范围时,由调用方验证输入。

ASAM 扩展与迁移 ​

start 大于 end 且 includeEndTime=false 时没有选项;includeEndTime=true 时仍追加 end。minTime/maxTime 使用原始时间比较,等于 min/max 的选项也禁用,包括被追加的 end。format 同时决定选项显示和选择提交的文本;不自动清除调用方已有的越界模型,联动更新由调用方决定。teleported 和 validateEvent 由内部 Select 承接。

ASAM 扩展与迁移 ​

ASAM 四档 size 与表单、ConfigProvider 继承一致。step 是时间文本,不是分钟数。 validateEvent 控制表单校验触发;teleported 决定弹层挂载位置。 单点日期时间使用 DatePicker type=datetime;两个独立日期时间端点使用 DateTimeRangePicker。

本地化与高级配置 ​

日期语言和控件文字是两份配置:本例的 locale.ts / locale.js 同时注册 Day.js 的 zh-cn 日期 locale,中文每周从周一开始,英文从周日开始。应用需显式安装 dayjs,并保证组件与应用消费同一实例;只切换 Provider 字典不会改变周首日。日期 locale 注册不切换应用的全局默认语言。

原生清空配置与迁移 ​

固定 2.14.7 对某些清空哨兵与格式组合可能产生空显示、格式化异常或诊断;这些属于原生兼容限制,基础包装不接管处理。需要 nullable 业务模型的调用方应在自己的高级数据适配层处理;双端 DateTimeRangePicker/DateTimePicker 保留明确的完整范围/null 组合协议。原依赖默认字符串模型的用法需显式传入 valueFormat(日期 YYYY-MM-DD,时间 HH:mm:ss)。

原生默认值与适配说明 ​

start=09:00、end=18:00、step=00:30、format=HH:mm;modelValue 未设置时为 undefined。 其余行为默认值交由固定版本原生组件解析;显式 undefined、null、false 原样输入,不以包装层默认值覆盖。size 仅负责 ASAM large/big/default/small 四档密度及品牌样式。DatePicker/TimePicker/TimeSelect 的 focus/blur(日期和时间另有 handleOpen/handleClose)直接使用原生公开实例的接收者和返回值;Panel 没有这些输入实例方法。

参数与事件补充说明

完整透传 2.14.7 的基础参数,并在适用时使用 ASAM 尺寸密度。

参数与事件说明

effect

必填:否;声明来源:上游声明。

effect 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

枚举:"light" / "dark"

默认值与来源
未知 / 未声明

固定上游文档默认:light(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

固定上游源码默认表达式:'light'(2.14.7;源码事实,未作为 ASAM 运行实测)

popperClass

必填:否;声明来源:上游声明。

popperClass 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

枚举:false

默认值与来源
未知 / 未声明

固定上游文档默认:''(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

固定上游源码默认表达式:''(2.14.7;源码事实,未作为 ASAM 运行实测)

popperStyle

必填:否;声明来源:上游声明。

popperStyle 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

枚举:false

嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。

默认值与来源
未知 / 未声明

固定上游文档默认:未声明(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

固定上游源码默认表达式:undefined(2.14.7;源码事实,未作为 ASAM 运行实测)

disabled

必填:否;声明来源:上游声明。

disabled 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

枚举:false / true

默认值与来源
false(隐式 Boolean 默认;已安装组件)

固定上游文档默认:false(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

固定上游源码默认表达式:undefined(2.14.7;源码事实,未作为 ASAM 运行实测)

start

必填:否;声明来源:上游声明。

默认值与来源
未知 / 未声明

固定上游文档默认:09:00(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

固定上游源码默认表达式:DEFAULT_START(2.14.7;源码事实,未作为 ASAM 运行实测)

name

必填:否;声明来源:上游声明。

默认值与来源
未知 / 未声明

固定上游文档默认:未声明(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

format

必填:否;声明来源:上游声明。

默认值与来源
未知 / 未声明

固定上游文档默认:HH:mm(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

固定上游源码默认表达式:'HH:mm'(2.14.7;源码事实,未作为 ASAM 运行实测)

end

必填:否;声明来源:上游声明。

默认值与来源
未知 / 未声明

固定上游文档默认:18:00(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

固定上游源码默认表达式:DEFAULT_END(2.14.7;源码事实,未作为 ASAM 运行实测)

editable

必填:否;声明来源:上游声明。

editable 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

枚举:false / true

默认值与来源
false(隐式 Boolean 默认;已安装组件)

固定上游文档默认:true(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

固定上游源码默认表达式:true(2.14.7;源码事实,未作为 ASAM 运行实测)

emptyValues

必填:否;声明来源:上游声明。

默认值与来源
未知 / 未声明

固定上游文档默认:未声明(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

valueOnClear

必填:否;声明来源:上游声明。

valueOnClear 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

枚举:false / true

  • valueOnClear.apply: (this: Function, thisArg: any, argArray?: any) => any — 依赖声明

    调用函数,以指定对象作为 this,并使用指定数组作为函数参数。

    事件参数:(this: Function, thisArg: any, argArray?: any): any

    嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。

  • valueOnClear.call: (this: Function, thisArg: any, ...argArray: any[]) => any — 依赖声明

    调用对象方法,并以另一个对象作为当前 this。

    事件参数:(this: Function, thisArg: any, ...argArray: any[]): any

    嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。

  • valueOnClear.bind: (this: Function, thisArg: any, ...argArray: any[]) => any — 依赖声明

    创建具有相同函数体的绑定函数,将 this 绑定到指定对象,并设置初始参数。

    事件参数:(this: Function, thisArg: any, ...argArray: any[]): any

    嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。

  • valueOnClear.toString: () => string — 依赖声明

    返回函数的字符串表示。

    事件参数:(): string

    嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。

  • valueOnClear.prototype: any — 依赖声明
  • valueOnClear.length: number — 依赖声明
  • valueOnClear.arguments: any — 依赖声明
  • valueOnClear.caller: Function — 依赖声明

    嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。

  • valueOnClear.name: string — 依赖声明

    返回函数名称;函数名称只读,不能修改。

  • valueOnClear.__@hasInstance@8888: (value: any) => boolean — 依赖声明

    当函数用作构造函数时,判断指定值是否继承自该函数;构造函数可以覆盖此方法,控制 instanceof 对实例的识别。

    事件参数:(value: any): boolean

    嵌套展开边界:框架 / 平台类型;完整类型见公开类型视图。

默认值与来源
未知 / 未声明

固定上游文档默认:未声明(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

clearable

必填:否;声明来源:上游声明。

clearable 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

枚举:false / true

默认值与来源
false(隐式 Boolean 默认;已安装组件)

固定上游文档默认:true(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

固定上游源码默认表达式:true(2.14.7;源码事实,未作为 ASAM 运行实测)

step

必填:否;声明来源:上游声明。

默认值与来源
未知 / 未声明

固定上游文档默认:00:30(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

固定上游源码默认表达式:DEFAULT_STEP(2.14.7;源码事实,未作为 ASAM 运行实测)

clearIcon

必填:否;声明来源:上游声明。

clearIcon 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

事件参数:(props: any, ctx: Parameters<Extract<NonNullable<(AsamTimeSelectProps)["clearIcon"]>, (...args: never[]) => unknown>>[1]): any

  • clearIcon.__isFragment: undefined — 依赖声明
  • clearIcon.__isTeleport: undefined — 依赖声明
  • clearIcon.__isSuspense: undefined — 依赖声明
默认值与来源
未知 / 未声明

固定上游文档默认:CircleClose(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

固定上游源码工厂(未执行):() => CircleClose(2.14.7;源码事实,未作为 ASAM 运行实测)

prefixIcon

必填:否;声明来源:上游声明。

prefixIcon 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

事件参数:(props: any, ctx: Parameters<Extract<NonNullable<(AsamTimeSelectProps)["prefixIcon"]>, (...args: never[]) => unknown>>[1]): any

  • prefixIcon.__isFragment: undefined — 依赖声明
  • prefixIcon.__isTeleport: undefined — 依赖声明
  • prefixIcon.__isSuspense: undefined — 依赖声明
默认值与来源
未知 / 未声明

固定上游文档默认:Clock(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

固定上游源码工厂(未执行):() => Clock(2.14.7;源码事实,未作为 ASAM 运行实测)

placeholder

必填:否;声明来源:上游声明。

默认值与来源
未知 / 未声明

固定上游文档默认:未声明(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

minTime

必填:否;声明来源:上游声明。

默认值与来源
未知 / 未声明

固定上游文档默认:未声明(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

固定上游源码未声明 default(2.14.7;源码事实,未作为 ASAM 运行实测)

maxTime

必填:否;声明来源:上游声明。

默认值与来源
未知 / 未声明

固定上游文档默认:未声明(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

固定上游源码未声明 default(2.14.7;源码事实,未作为 ASAM 运行实测)

includeEndTime

必填:否;声明来源:上游声明。

includeEndTime 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

枚举:false / true

默认值与来源
false(隐式 Boolean 默认;已安装组件)

固定上游文档默认:false(2.14.7;文档事实,实际默认以 ASAM 源码 / 安装包为准)

size

必填:否;声明来源:ASAM 声明。

size 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

枚举:"large" / "big" / "default" / "small"

modelValue

必填:否;声明来源:ASAM 声明。

modelValue 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

枚举:false / true

默认值与来源
false(隐式 Boolean 默认;已安装组件)
teleported

必填:否;声明来源:ASAM 声明。

teleported 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

枚举:false / true

默认值与来源
false(隐式 Boolean 默认;已安装组件)
validateEvent

必填:否;声明来源:ASAM 声明。

validateEvent 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

枚举:false / true

默认值与来源
false(隐式 Boolean 默认;已安装组件)
AsamTimeSelectProps 公开类型视图
ts
import type { Component, Attrs } from 'vue';
import type { AsamTimeSelectProps, AsamControlSize, AsamTimeSelectValue } from '@asam-ui/ui';

type PublicMember<T, K extends PropertyKey> = T extends unknown ? K extends keyof T ? T[K] : never : never;

// AsamTimeSelectProps
type PublicContract = {
	readonly "effect"?: (AsamTimeSelectProps)["effect"];
	readonly "popperClass"?: AsamTimeSelectProps["popperClass"];
	readonly "popperStyle"?: (AsamTimeSelectProps)["popperStyle"];
	readonly "disabled"?: (AsamTimeSelectProps)["disabled"];
	readonly "start"?: string | undefined;
	readonly "name"?: string | undefined;
	readonly "format"?: string | undefined;
	readonly "end"?: string | undefined;
	readonly "editable"?: (AsamTimeSelectProps)["editable"];
	readonly "emptyValues"?: unknown[] | undefined;
	readonly "valueOnClear"?: (AsamTimeSelectProps)["valueOnClear"];
	readonly "clearable"?: (AsamTimeSelectProps)["clearable"];
	readonly "step"?: string | undefined;
	readonly "clearIcon"?: (AsamTimeSelectProps)["clearIcon"];
	readonly "prefixIcon"?: (AsamTimeSelectProps)["prefixIcon"];
	readonly "placeholder"?: string | undefined;
	readonly "minTime"?: (AsamTimeSelectProps)["minTime"];
	readonly "maxTime"?: (AsamTimeSelectProps)["maxTime"];
	readonly "includeEndTime"?: boolean | undefined;
	"size"?: AsamControlSize | undefined;
	"modelValue"?: AsamTimeSelectValue;
	"teleported"?: boolean | undefined;
	"validateEvent"?: boolean | undefined;
};

参数与事件说明

update:modelValue

必填:是;声明来源:ASAM 声明。

change

必填:是;声明来源:ASAM 声明。

focus

必填:是;声明来源:ASAM 声明。

blur

必填:是;声明来源:ASAM 声明。

clear

必填:是;声明来源:ASAM 声明。

AsamTimeSelectEmits 公开类型视图
ts
import type { AsamTimeSelectEmits, AsamTimeSelectValue } from '@asam-ui/ui';

// AsamTimeSelectEmits
type PublicContract = {
	"update:modelValue": [value: AsamTimeSelectValue];
	"change": [value: AsamTimeSelectValue];
	"focus": [event: FocusEvent];
	"blur": [event: FocusEvent];
	"clear": (AsamTimeSelectEmits)["clear"];
};
AsamTimeSelectSlots 公开类型视图
ts
import type { AsamTimeSelectSlots } from '@asam-ui/ui';

// AsamTimeSelectSlots
type PublicContract = {
	[key: string]: never;
};

参数与事件说明

focus

必填:是;声明来源:上游声明。

focus 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

事件参数:(): void

blur

必填:是;声明来源:上游声明。

blur 参数与事件数据

下列为声明可读视图;可导入类型以公开类型视图为准。分支条件与父属性一致。

事件参数:(): void

AsamTimeSelectExpose 公开类型视图
ts
import type { AsamTimeSelectExpose } from '@asam-ui/ui';

// AsamTimeSelectExpose
type PublicContract = {
	"focus": () => void;
	"blur": () => void;
};

搜索文档

Tab 选择结果 Enter 打开 Esc 关闭