选择与表单

基础表单 AsamBaseForm

为输入控件提供模型、规则、校验状态和表单尺寸上下文。

使用场景 ​

为输入控件提供模型、规则、校验状态和表单尺寸上下文。model 必须是调用方维护的响应式对象,FormItem.prop 绑定对应字段。

校验、原生提交与重置 ​

以真实 form 提交触发校验;FormActions 使用 submitNativeType=submit 时无需同时监听 save 再次提交。resetFields 将有 prop 的字段恢复初始值。

校验、原生提交与重置

展开源码

字段校验与动态禁用 ​

validateField 校验指定字段,clearValidate 清除提示,scrollToField 定位字段。表单 disabled 传递到控件;显式设置 disabled=false 的子控件保持启用。不能用关闭校验代替禁用。

字段校验与动态禁用

展开源码

四档尺寸与上下文继承 ​

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

四档尺寸与上下文继承

展开源码

异步规则、行内布局与字段实例 ​

inline 控制行内排列;labelPosition 可为 left/right/top,FormItem 的位置覆盖表单继承值。 完整说明。

下面的异步 validator 返回 Promise,确认账号规则读取同一响应式 model。 完整说明。

异步校验、布局与全部实例方法

展开源码

validate、validateField 支持 callback 和 Promise;验证失败应处理 rejection。 完整说明。

标签提示、规则变化与 callback ​

下面可以切换 auto/0/固定 labelWidth、必填星号隐藏与左右位置、showMessage 与 inlineMessage,并观察 validateOnRuleChange 对规则替换的处理。 完整说明。

标签提示、规则变化与 callback

展开源码

嵌套与动态字段、数字和辅助标签 ​

prop 支持 contact.email 字符串路径或 ['rows', '0', 'value'] 数组路径。 完整说明。

动态字段、嵌套路径与数字校验

展开源码

嵌套 FormItem 的标签宽度默认归零,可单独指定 labelWidth。 完整说明。

ASAM 扩展与迁移 ​

ASAM 四档 size 由表单上下文传递到 FormItem 和子控件,单项显式 size 优先。默认插槽放表单项;公开表单方法直接转发到实际实例。setInitialValues 与 getField/fields 使用当前公开类型中的参数和返回值。业务提交、请求与成功跳转由调用方处理。

API 阅读方式 ​

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

API

属性 AsamBaseFormProps

属性名说明类型默认值
disabled是否禁用表单中的全部控件;设为 true 时覆盖内部组件的 disabled。boolean | undefinedfalse
labelWidth标签宽度,例如 '50px'。可以使用 auto。string | number | undefined""
model表单数据对象Record<string, any> | undefined—
scrollIntoViewOptions校验失败时,根据 scrollIntoView 配置滚动到首个错误字段。boolean | ScrollIntoViewOptions | undefinedtrue
rules表单验证规则, 具体配置见下表, 更多内容可以参考async-validator(AsamBaseFormProps)["rules"]—
labelPosition表单域标签的位置,当设置为 left 或 right 时,则也需要设置 label-width 属性enum"top" | "right" | "left"完整类型:"top" | "right" | "left" | undefined"right"
requireAsteriskPosition星号的位置。enum"right" | "left"完整类型:"right" | "left" | undefined"left"
labelSuffix表单域标签的后缀string | undefined""
inline行内表单模式boolean | undefinedfalse
inlineMessage是否在行内显示校验信息boolean | undefinedfalse
statusIcon是否在输入框中显示校验结果反馈图标boolean | undefinedfalse
showMessage是否显示校验错误信息boolean | undefinedtrue
validateOnRuleChange是否在 rules 属性改变后立即触发一次验证boolean | undefinedtrue
hideRequiredAsterisk是否隐藏必填字段标签旁边的红色星号。boolean | undefinedfalse
scrollToError当校验失败时,滚动到第一个错误表单项boolean | undefinedfalse
size—enum"large" | "big" | "default" | "small"完整类型:AsamControlSize | undefinedundefined

事件 AsamBaseFormEmits

属性名说明类型默认值
validate—(AsamBaseFormEmits)["validate"]—

插槽 AsamBaseFormSlots

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

实例方法与状态 AsamBaseFormExpose

属性名说明类型默认值
validate验证表单项(AsamBaseFormExpose)["validate"]—
validateField验证具体的某个字段。(AsamBaseFormExpose)["validateField"]—
resetFields重置该表单项,将其值重置为初始值,并移除校验结果(AsamBaseFormExpose)["resetFields"]—
clearValidate清除指定字段的校验消息。(AsamBaseFormExpose)["clearValidate"]—
scrollToField滚动到指定的字段(AsamBaseFormExpose)["scrollToField"]—
getField获取字段的 context(AsamBaseFormExpose)["getField"]—
fields全部字段的上下文。(AsamBaseFormExpose)["fields"]—
setInitialValues设置表单字段的初始值。当调用 resetFields 时,字段将重置为这些值。(initModel: Record<string, any>) => void—

用法与契约补充说明 ​

异步规则、行内布局与字段实例 ​

inline 控制行内排列;labelPosition 可为 left/right/top,FormItem 的位置覆盖表单继承值。left/right 通常配合 labelWidth;数值 0 保持零宽度,不转换为 auto。labelSuffix、required 星号位置、hideRequiredAsterisk、statusIcon、showMessage、inlineMessage 分别控制标签与提示。disabled 是控件的继承默认值,子控件显式的 disabled 配置优先。

异步规则、行内布局与字段实例 ​

下面的异步 validator 返回 Promise,确认账号规则读取同一响应式 model。提交时 await validate,结束后在 finally 恢复 saving;callback 风格的 validator 必须调用 callback。规则依赖的其他字段改变后,使用 validateField 重新检查相关字段;validateOnRuleChange 只处理规则本身的变化。scrollToError 和 scrollIntoViewOptions 用于失败定位。

异步规则、行内布局与字段实例 ​

validate、validateField 支持 callback 和 Promise;验证失败应处理 rejection。validate 事件传出字段路径、布尔结果和消息。fields 是已注册字段的实时列表,getField 返回上下文或 undefined;不要把布局分区误当注册字段。clearValidate 清提示而不改模型,resetFields 可指定路径;setInitialValues 设置后续 resetFields 的基线,并不等于立即改写当前 model。scrollToField 可显式定位。

标签提示、规则变化与 callback ​

下面可以切换 auto/0/固定 labelWidth、必填星号隐藏与左右位置、showMessage 与 inlineMessage,并观察 validateOnRuleChange 对规则替换的处理。validate/validateField 的 callback 接收 valid 和错误字段;提供 callback 后仍可 await 返回的 Promise,但无需将 callback 的 false 结果当未处理异常。FormItem 的外部 error、validateStatus 展示服务端消息和显式校验状态。

嵌套与动态字段、数字和辅助标签 ​

prop 支持 contact.email 字符串路径或 ['rows', '0', 'value'] 数组路径。动态列表使用稳定 key;新增、删除或 prop 路径改变时,表单项注册与初始值跟随真实字段。resetFields 重置字段值,不恢复使用方已删除的列表条目。数字规则要求数字模型,原生 input 使用 .number;空值、范围和 required 仍由规则决定。

嵌套与动态字段、数字和辅助标签 ​

嵌套 FormItem 的标签宽度默认归零,可单独指定 labelWidth。一个控件的 label 自动关联;多个控件组成 group 时,应逐个提供辅助名称,见 AsamFormItem。BaseForm 负责模型、规则和表单实例;动态字段 schema、异步选项和数据 provider 的组合由 AsamForm 承接。使用方维护的 v-for 字段列表与 schema 驱动表单各有用途。

参数与事件补充说明

完整透传 2.14.7 表单参数,并支持 ASAM 四档控件尺寸。

参数与事件说明

disabled

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

disabled 参数与事件数据

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

枚举:false / true

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

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

labelWidth

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

默认值与来源
""(已安装运行时;已安装组件)

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

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

model

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

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

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

scrollIntoViewOptions

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

scrollIntoViewOptions 参数与事件数据

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

枚举:false / true

  • scrollIntoViewOptions.block: ScrollLogicalPosition | undefined — 依赖声明

    枚举:"start" / "center" / "end" / "nearest"

  • scrollIntoViewOptions.inline: ScrollLogicalPosition | undefined — 依赖声明

    枚举:"start" / "center" / "end" / "nearest"

  • scrollIntoViewOptions.behavior: ScrollBehavior | undefined — 依赖声明

    枚举:"auto" / "smooth" / "instant"

默认值与来源
true(已安装运行时;已安装组件)

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

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

rules

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

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

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

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

labelPosition

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

labelPosition 参数与事件数据

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

枚举:"top" / "right" / "left"

默认值与来源
"right"(已安装运行时;已安装组件)

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

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

requireAsteriskPosition

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

requireAsteriskPosition 参数与事件数据

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

枚举:"right" / "left"

默认值与来源
"left"(已安装运行时;已安装组件)

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

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

labelSuffix

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

默认值与来源
""(已安装运行时;已安装组件)

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

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

inline

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

inline 参数与事件数据

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

枚举:false / true

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

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

inlineMessage

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

inlineMessage 参数与事件数据

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

枚举:false / true

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

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

statusIcon

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

statusIcon 参数与事件数据

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

枚举:false / true

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

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

showMessage

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

showMessage 参数与事件数据

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

枚举:false / true

默认值与来源
true(已安装运行时;已安装组件)

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

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

validateOnRuleChange

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

validateOnRuleChange 参数与事件数据

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

枚举:false / true

默认值与来源
true(已安装运行时;已安装组件)

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

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

hideRequiredAsterisk

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

hideRequiredAsterisk 参数与事件数据

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

枚举:false / true

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

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

scrollToError

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

scrollToError 参数与事件数据

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

枚举:false / true

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

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

size

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

size 参数与事件数据

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

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

默认值与来源
undefined(源码表达式;ASAM 声明)
AsamBaseFormProps 公开类型视图
ts
import type { AsamBaseFormProps, AsamControlSize } from '@asam-ui/ui';

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

// AsamBaseFormProps
type PublicContract = {
	"disabled"?: boolean | undefined;
	"labelWidth"?: string | number | undefined;
	"model"?: Record<string, any> | undefined;
	"scrollIntoViewOptions"?: boolean | ScrollIntoViewOptions | undefined;
	"rules"?: (AsamBaseFormProps)["rules"];
	"labelPosition"?: "top" | "right" | "left" | undefined;
	"requireAsteriskPosition"?: "right" | "left" | undefined;
	"labelSuffix"?: string | undefined;
	"inline"?: boolean | undefined;
	"inlineMessage"?: boolean | undefined;
	"statusIcon"?: boolean | undefined;
	"showMessage"?: boolean | undefined;
	"validateOnRuleChange"?: boolean | undefined;
	"hideRequiredAsterisk"?: boolean | undefined;
	"scrollToError"?: boolean | undefined;
	"size"?: AsamControlSize | undefined;
};

参数与事件说明

validate

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

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

// AsamBaseFormEmits
type PublicContract = {
	"validate": (AsamBaseFormEmits)["validate"];
};

参数与事件说明

default

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

default 参数与事件数据

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

事件参数:(): unknown

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

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

参数与事件说明

validate

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

validate 参数与事件数据

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

事件参数:(callback?: Parameters<Extract<NonNullable<(AsamBaseFormExpose)["validate"]>, (...args: never[]) => unknown>>[0]): ReturnType<Extract<NonNullable<(AsamBaseFormExpose)["validate"]>, (...args: never[]) => unknown>>

validateField

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

validateField 参数与事件数据

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

事件参数:(props?: Parameters<Extract<NonNullable<(AsamBaseFormExpose)["validateField"]>, (...args: never[]) => unknown>>[0], callback?: Parameters<Extract<NonNullable<(AsamBaseFormExpose)["validateField"]>, (...args: never[]) => unknown>>[1]): ReturnType<Extract<NonNullable<(AsamBaseFormExpose)["validateField"]>, (...args: never[]) => unknown>>

resetFields

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

resetFields 参数与事件数据

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

事件参数:(props?: Parameters<Extract<NonNullable<(AsamBaseFormExpose)["resetFields"]>, (...args: never[]) => unknown>>[0]): void

clearValidate

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

clearValidate 参数与事件数据

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

事件参数:(props?: Parameters<Extract<NonNullable<(AsamBaseFormExpose)["clearValidate"]>, (...args: never[]) => unknown>>[0]): void

scrollToField

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

scrollToField 参数与事件数据

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

事件参数:(prop: Parameters<Extract<NonNullable<(AsamBaseFormExpose)["scrollToField"]>, (...args: never[]) => unknown>>[0]): void

getField

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

getField 参数与事件数据

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

事件参数:(prop: Parameters<Extract<NonNullable<(AsamBaseFormExpose)["getField"]>, (...args: never[]) => unknown>>[0]): ReturnType<Extract<NonNullable<(AsamBaseFormExpose)["getField"]>, (...args: never[]) => unknown>>

fields

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

fields 参数与事件数据

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

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

setInitialValues

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

setInitialValues 参数与事件数据

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

事件参数:(initModel: Record<string, any>): void

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

// AsamBaseFormExpose
type PublicContract = {
	"validate": (AsamBaseFormExpose)["validate"];
	"validateField": (AsamBaseFormExpose)["validateField"];
	"resetFields": (AsamBaseFormExpose)["resetFields"];
	"clearValidate": (AsamBaseFormExpose)["clearValidate"];
	"scrollToField": (AsamBaseFormExpose)["scrollToField"];
	"getField": (AsamBaseFormExpose)["getField"];
	"fields": (AsamBaseFormExpose)["fields"];
	"setInitialValues": (initModel: Record<string, any>) => void;
};

搜索文档

Tab 选择结果 Enter 打开 Esc 关闭