选择与表单

选择项 AsamOption

为 Select 的默认插槽提供原始值选项。

组件关系 ​

作为 选择器 的子组件使用,不能独立提供选择功能。需要组织选项时使用 选择项分组。

使用场景 ​

为 Select 的默认插槽提供原始值选项。value 是选择身份,label 是输入框回显,default 插槽可显示更丰富内容。

分组与显示内容 ​

Select 使用 valueMode=native 消费原始 Option。默认插槽内容负责菜单展示,label 保持简洁的选中回显。

分组与显示内容

展开源码

原始对象与唯一键 ​

原始对象值通过 Select.valueKey 定位;这与 ASAM valueMode=object 的规范化 option 模型不同。多文件 data 保持实际业务对象完整。

原始对象与唯一键

展开源码

四档尺寸与上下文继承 ​

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

四档尺寸与上下文继承

展开源码

ASAM 扩展与迁移 ​

Option/OptionGroup 没有独立 size 属性,菜单密度由外层 Select 的四档 size 与弹层上下文决定。当前仅有 default 插槽,没有独立事件或实例方法;选择变化监听 Select.change。

API 阅读方式 ​

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

API

属性 AsamOptionProps

属性名说明类型默认值
disabled是否禁用该选项boolean | undefinedfalse
created—boolean | undefinedfalse
style—unknown—
key—PropertyKey | undefined—
ref—VNodeRef | undefined—
ref_for—boolean | undefined—
ref_key—string | undefined—
onVnodeBeforeMount—(AsamOptionProps)["onVnodeBeforeMount"]—
onVnodeMounted—(AsamOptionProps)["onVnodeMounted"]—
onVnodeBeforeUpdate—(AsamOptionProps)["onVnodeBeforeUpdate"]—
onVnodeUpdated—(AsamOptionProps)["onVnodeUpdated"]—
onVnodeBeforeUnmount—(AsamOptionProps)["onVnodeBeforeUnmount"]—
onVnodeUnmounted—(AsamOptionProps)["onVnodeUnmounted"]—
class—unknown—
value选项的值(AsamOptionProps)["value"]—
label选项的标签,若不设置则默认与value相同(AsamOptionProps)["label"]—

插槽 AsamOptionSlots

属性名说明类型默认值
default—(() => unknown) | undefined—

实例方法与状态 AsamOptionExpose

参数与事件补充说明

基础选项值支持原始值,并通过 Select 的 valueKey 支持对象值。

参数与事件说明

disabled

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

disabled 参数与事件数据

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

枚举:false / true

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

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

created 参数与事件数据

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

枚举:false / true

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

必填:否;声明来源:依赖声明。

key

必填:否;声明来源:依赖声明。

ref

必填:否;声明来源:依赖声明。

ref 参数与事件数据

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

事件参数:(ref: Element | ComponentPublicInstance<{}, {}, {}, {}, {}, {}, {}, {}, false, ComponentOptionsBase<any, any, any, any, any, any, any, any, any, {}, {}, string, {}, {}, {}, string, ComponentProvideOptions>, {}, {}, "", {}, any> | null, refs: Record<string, any>): void

  • ref.value: any — 依赖声明
  • ref.__@RefSymbol@8854: true — 依赖声明

    仅用于区分类型:保留在公开声明中,通过私有 Symbol 避免出现在编辑器自动补全中。

    枚举:true

ref_for

必填:否;声明来源:依赖声明。

ref_for 参数与事件数据

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

枚举:false / true

ref_key

必填:否;声明来源:依赖声明。

onVnodeBeforeMount

必填:否;声明来源:依赖声明。

onVnodeBeforeMount 参数与事件数据

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

事件参数:(vnode: VNode<RendererNode, RendererElement, { [key: string]: any; }>): void

onVnodeMounted

必填:否;声明来源:依赖声明。

onVnodeMounted 参数与事件数据

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

事件参数:(vnode: VNode<RendererNode, RendererElement, { [key: string]: any; }>): void

onVnodeBeforeUpdate

必填:否;声明来源:依赖声明。

onVnodeBeforeUpdate 参数与事件数据

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

事件参数:(vnode: VNode<RendererNode, RendererElement, { [key: string]: any; }>, oldVNode: VNode<RendererNode, RendererElement, { [key: string]: any; }>): void

onVnodeUpdated

必填:否;声明来源:依赖声明。

onVnodeUpdated 参数与事件数据

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

事件参数:(vnode: VNode<RendererNode, RendererElement, { [key: string]: any; }>, oldVNode: VNode<RendererNode, RendererElement, { [key: string]: any; }>): void

onVnodeBeforeUnmount

必填:否;声明来源:依赖声明。

onVnodeBeforeUnmount 参数与事件数据

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

事件参数:(vnode: VNode<RendererNode, RendererElement, { [key: string]: any; }>): void

onVnodeUnmounted

必填:否;声明来源:依赖声明。

onVnodeUnmounted 参数与事件数据

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

事件参数:(vnode: VNode<RendererNode, RendererElement, { [key: string]: any; }>): void

class

必填:否;声明来源:依赖声明。

value

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

value 参数与事件数据

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

枚举:false / true

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

label

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

AsamOptionProps 公开类型视图
ts
import type { VNodeRef, ComponentPublicInstance, ComponentOptionsBase, ComponentProvideOptions, VNode, RendererNode, RendererElement } from 'vue';
import type { AsamOptionProps, AsamOptionRules } from '@asam-ui/ui';

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

// AsamOptionProps
type PublicContract = {
	"disabled"?: boolean | undefined;
	"created"?: boolean | undefined;
	"style"?: unknown;
	"key"?: PropertyKey | undefined;
	"ref"?: VNodeRef | undefined;
	"ref_for"?: boolean | undefined;
	"ref_key"?: string | undefined;
	"onVnodeBeforeMount"?: (AsamOptionProps)["onVnodeBeforeMount"];
	"onVnodeMounted"?: (AsamOptionProps)["onVnodeMounted"];
	"onVnodeBeforeUpdate"?: (AsamOptionProps)["onVnodeBeforeUpdate"];
	"onVnodeUpdated"?: (AsamOptionProps)["onVnodeUpdated"];
	"onVnodeBeforeUnmount"?: (AsamOptionProps)["onVnodeBeforeUnmount"];
	"onVnodeUnmounted"?: (AsamOptionProps)["onVnodeUnmounted"];
	"class"?: unknown;
	readonly "value": (AsamOptionProps)["value"];
	readonly "label"?: (AsamOptionProps)["label"];
};

参数与事件说明

default

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

default 参数与事件数据

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

事件参数:(): unknown

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

// AsamOptionSlots
type PublicContract = {
	"default"?: (() => unknown) | undefined;
};
AsamOptionExpose 公开类型视图
ts
import type { AsamOptionExpose } from '@asam-ui/ui';

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

搜索文档

Tab 选择结果 Enter 打开 Esc 关闭