基础输入与操作

按钮 AsamButton

触发操作,提供语义颜色、形态、图标和交互反馈。

使用场景 ​

用于提交、确认、返回等离散操作。通过 type 选择颜色,通过 plain、text、link 等属性选择形态。省略 type 时依次继承按钮组和已配置的 provider 类型;未配置时使用 secondary。

语义颜色与点击 ​

按钮点击更新本地计数。禁用和加载中的按钮不会发出业务点击事件。

语义颜色与点击

展开源码

形态与自定义颜色 ​

颜色与形态可组合;自定义 color 同样适用于 text 和 link,分别改变文字颜色。circle 通常搭配图标和可访问名称;tag 可以选择原生标签或组件。

形态与自定义颜色

展开源码

图标与自定义加载 ​

使用 icon 或插槽配置图标;loading 时显示加载图标。覆盖顺序与尺寸配置见下方说明。

图标与自定义加载

展开源码

原生提交与实例状态 ​

nativeType 区分 button、submit、reset;click 事件携带 MouseEvent。实例返回当前解析后的 size、type、disabled 等状态。

原生提交与实例状态

展开源码

四档密度与继承 ​

large / big / default / small 分别为四档密度。显式 size 覆盖继承;省略 size 时按组件、组、表单、ConfigProvider 到 default 解析。通过切换 provider 验证继承响应。

四档密度与继承

展开源码

ASAM 扩展与迁移 ​

ASAM 扩展包括 gradient、secondary、accent、ghost、text 颜色、block、图标位置及尺寸、pressAnimation。 完整说明。

全局类型与覆盖优先级 ​

类型按显式 type、按钮组 type、ConfigProvider.button.type、secondary 默认的顺序解析。 完整说明。

全局类型与覆盖优先级

展开源码

原生间距与按压反馈 ​

双汉字文本、嵌套内容的间距由原生判定。切换 disabled/loading 后,点击事件仍由原生过滤;四档按钮保持 ASAM 视觉按压反馈。

原生间距与点击、四档按压反馈

展开源码

API 阅读方式 ​

API 按公开类型与运行默认值生成;未知默认值不等于 false 或空值。 完整说明。

下方 API 来自当前公开类型与运行默认值。默认值标为“未知 / 未声明”时,不代表 false、空值或未支持。省略 size 保留祖先上下文继承。省略 disabled 保留表单禁用继承;加载与禁用状态阻止点击。

API

属性 AsamButtonProps

属性名说明类型默认值
type语义颜色;显式 type 优先于按钮组和配置提供器。独立使用时默认 secondary。enum"" | "default" | "text" | "primary" | "gradient" | "secondary" | "accent" | "success" | "danger" | "warning" | "info" | "ghost"完整类型:AsamButtonType | undefinedundefined
size显式控件密度;省略时保留继承。enum"large" | "big" | "default" | "small"完整类型:AsamControlSize | undefinedundefined
icon图标组件、已注册组件名或具名图标;icon 插槽优先。string | Component | undefined—
iconSize图标的像素宽高。number | undefined16
iconPosition自定义图标的位置。enum"right" | "left"完整类型:"right" | "left" | undefined'left'
loading显示加载内容并阻止触发操作。boolean | undefinedfalse
loadingIcon自定义加载图标;loading 插槽优先。(AsamButtonProps)["loadingIcon"]—
disabled禁用交互;省略时保留表单继承。boolean | undefinedundefined
block填满可用宽度。boolean | undefinedfalse
nativeType原生按钮行为。enum"button" | "submit" | "reset"完整类型:AsamButtonNativeType | undefined'button'
pressAnimation鼠标和键盘按下时的反馈。boolean | undefinedtrue
plain语义颜色的描边样式。boolean | undefinedundefined
text无常驻背景的文字样式,悬停时显示背景。boolean | undefinedundefined
link行内链接样式。boolean | undefinedfalse
bg始终显示文字按钮的背景。boolean | undefinedfalse
autofocus原生自动聚焦。boolean | undefinedfalse
round胶囊形圆角。boolean | undefinedundefined
circle宽高相同。boolean | undefinedfalse
dashed虚线边框。boolean | undefinedundefined
color自定义颜色,并生成对应交互颜色。string | undefined—
dark为深色背景生成自定义颜色。boolean | undefinedfalse
autoInsertSpace在恰好两个中文字符之间添加间距。boolean | undefinedundefined
tag渲染原生标签或组件。string | Component | undefined—

事件 AsamButtonEmits

属性名说明类型默认值
click—[event: MouseEvent]—

插槽 AsamButtonSlots

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

实例方法与状态 AsamButtonExpose

属性名说明类型默认值
ref—HTMLButtonElement | undefined—
size—enum"large" | "big" | "default" | "small"完整类型:AsamControlSize—
type—enum"" | "default" | "text" | "primary" | "gradient" | "secondary" | "accent" | "success" | "danger" | "warning" | "info" | "ghost"完整类型:AsamButtonType—
disabled—boolean—
shouldAddSpace公开的实时原生文字间距状态;默认插槽保持原样透传。boolean—

属性与插槽补充说明 ​

图标与加载规则 ​

图标从 ASAM 图标包导入,可直接传组件,也可先注册到当前 Vue app 再将组件名字符串传给 icon。icon 插槽覆盖 icon 属性,loading 插槽覆盖 loadingIcon 属性。图标尺寸和位置由 iconSize、iconPosition 控制;已注册的字符串组件名会实际渲染对应图标。

加载时以加载图标或 loading 插槽替换普通 icon(包括右侧 icon 和 icon 插槽),加载结束后恢复普通图标。

用法与契约补充说明 ​

ASAM 扩展与迁移 ​

ASAM 扩展包括 gradient、secondary、accent、ghost、text 颜色、block、图标位置及尺寸、pressAnimation。旧 variant 属性与 AsamButtonVariant 类型已经删除:改用 type / AsamButtonType,形态用 plain、text、link。四档尺寸用 size,不要将形态名当作尺寸。

全局类型与覆盖优先级 ​

类型按显式 type、按钮组 type、ConfigProvider.button.type、secondary 默认的顺序解析。全局 type 响应动态更新;未配置全局类型时独立按钮仍使用 ASAM secondary。按钮组与显式 gradient/accent 等 ASAM 扩展样式保持自己的优先级,不需要每个按钮重复设置 type。

API 阅读方式 ​

secondary 是 ASAM 默认颜色,底层按钮映射为 type="default";公开实例的 type 仍返回 ASAM 解析后的颜色。autoInsertSpace、双汉字判断、点击禁用及表单 reset 保留原生按钮行为;default slot 直接传递给原生按钮。shouldAddSpace 读取原生实例的实时状态。图标位置、尺寸及按压反馈属于 ASAM 视觉扩展;加载时由原生 loading 插槽替换普通图标。

参数与事件补充说明

参数与事件说明

type

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

type 参数与事件数据

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

枚举:"" / "default" / "text" / "primary" / "gradient" / "secondary" / "accent" / "success" / "danger" / "warning" / "info" / "ghost"

默认值与来源
undefined(源码表达式;ASAM 声明)
size

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

size 参数与事件数据

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

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

默认值与来源
undefined(源码表达式;ASAM 声明)
icon

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

icon 参数与事件数据

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

事件参数:(props: any, ctx: Parameters<Extract<NonNullable<string | Component | undefined>, (...args: never[]) => unknown>>[1]): any

  • icon.__isFragment: undefined — 依赖声明
  • icon.__isTeleport: undefined — 依赖声明
  • icon.__isSuspense: undefined — 依赖声明
iconSize

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

默认值与来源
16(源码表达式;ASAM 声明)
iconPosition

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

iconPosition 参数与事件数据

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

枚举:"right" / "left"

默认值与来源
'left'(源码表达式;ASAM 声明)
loading

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

loading 参数与事件数据

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

枚举:false / true

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

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

loadingIcon 参数与事件数据

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

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

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

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

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

disabled

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

disabled 参数与事件数据

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

枚举:false / true

默认值与来源
undefined(源码表达式;ASAM 声明)
block

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

block 参数与事件数据

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

枚举:false / true

默认值与来源
false(源码表达式;ASAM 声明)
nativeType

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

nativeType 参数与事件数据

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

枚举:"button" / "submit" / "reset"

默认值与来源
'button'(源码表达式;ASAM 声明)
pressAnimation

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

pressAnimation 参数与事件数据

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

枚举:false / true

默认值与来源
true(源码表达式;ASAM 声明)
plain

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

plain 参数与事件数据

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

枚举:false / true

默认值与来源
undefined(源码表达式;ASAM 声明)
text

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

text 参数与事件数据

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

枚举:false / true

默认值与来源
undefined(源码表达式;ASAM 声明)
link

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

link 参数与事件数据

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

枚举:false / true

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

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

bg 参数与事件数据

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

枚举:false / true

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

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

autofocus 参数与事件数据

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

枚举:false / true

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

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

round 参数与事件数据

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

枚举:false / true

默认值与来源
undefined(源码表达式;ASAM 声明)
circle

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

circle 参数与事件数据

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

枚举:false / true

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

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

dashed 参数与事件数据

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

枚举:false / true

默认值与来源
undefined(源码表达式;ASAM 声明)
color

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

dark

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

dark 参数与事件数据

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

枚举:false / true

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

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

autoInsertSpace 参数与事件数据

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

枚举:false / true

默认值与来源
undefined(源码表达式;ASAM 声明)
tag

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

tag 参数与事件数据

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

事件参数:(props: any, ctx: Parameters<Extract<NonNullable<string | Component | undefined>, (...args: never[]) => unknown>>[1]): any

  • tag.__isFragment: undefined — 依赖声明
  • tag.__isTeleport: undefined — 依赖声明
  • tag.__isSuspense: undefined — 依赖声明
AsamButtonProps 公开类型视图
ts
import type { Component, Attrs } from 'vue';
import type { AsamButtonProps, AsamButtonType, AsamControlSize, AsamButtonNativeType } from '@asam-ui/ui';

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

// AsamButtonProps
type PublicContract = {
	readonly "type"?: AsamButtonType | undefined;
	readonly "size"?: AsamControlSize | undefined;
	readonly "icon"?: string | Component | undefined;
	readonly "iconSize"?: number | undefined;
	readonly "iconPosition"?: "right" | "left" | undefined;
	readonly "loading"?: boolean | undefined;
	readonly "loadingIcon"?: (AsamButtonProps)["loadingIcon"];
	readonly "disabled"?: boolean | undefined;
	readonly "block"?: boolean | undefined;
	readonly "nativeType"?: AsamButtonNativeType | undefined;
	readonly "pressAnimation"?: boolean | undefined;
	readonly "plain"?: boolean | undefined;
	readonly "text"?: boolean | undefined;
	readonly "link"?: boolean | undefined;
	readonly "bg"?: boolean | undefined;
	readonly "autofocus"?: boolean | undefined;
	readonly "round"?: boolean | undefined;
	readonly "circle"?: boolean | undefined;
	readonly "dashed"?: boolean | undefined;
	readonly "color"?: string | undefined;
	readonly "dark"?: boolean | undefined;
	readonly "autoInsertSpace"?: boolean | undefined;
	readonly "tag"?: string | Component | undefined;
};

参数与事件说明

click

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

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

// AsamButtonEmits
type PublicContract = {
	"click": [event: MouseEvent];
};

参数与事件说明

default

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

default 参数与事件数据

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

事件参数:(): unknown

icon

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

icon 参数与事件数据

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

事件参数:(): unknown

loading

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

loading 参数与事件数据

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

事件参数:(): unknown

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

// AsamButtonSlots
type PublicContract = {
	"default"?: (() => unknown) | undefined;
	"icon"?: (() => unknown) | undefined;
	"loading"?: (() => unknown) | undefined;
};

实时解析的状态,包含继承自表单的禁用状态。

参数与事件说明

ref

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

ref 参数与事件数据

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

嵌套展开边界:大型实例类型;完整类型见公开类型视图。

size

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

size 参数与事件数据

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

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

type

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

type 参数与事件数据

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

枚举:"" / "default" / "text" / "primary" / "gradient" / "secondary" / "accent" / "success" / "danger" / "warning" / "info" / "ghost"

disabled

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

disabled 参数与事件数据

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

枚举:false / true

shouldAddSpace

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

shouldAddSpace 参数与事件数据

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

枚举:false / true

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

// AsamButtonExpose
type PublicContract = {
	readonly "ref": HTMLButtonElement | undefined;
	readonly "size": AsamControlSize;
	readonly "type": AsamButtonType;
	readonly "disabled": boolean;
	readonly "shouldAddSpace": boolean;
};

搜索文档

Tab 选择结果 Enter 打开 Esc 关闭