Basic
在 Oinone Kunlun 中,我们基于 VueWidget 衍生出一系列 Widget 组件,在本章内容中,我们对于一些 “抽象” 组件进行详细介绍。
一、核心组件图谱

二、SPI Token 组件图谱

三、元数据组件图谱

- MetadataViewWidget:元数据视图组件,包含视图上下文数据。用于通过视图、字段或动作创建
RuntimeContext。 - DefaultMetadataMainViewWidget:元数据主视图组件。通过监听路由变化创建整个页面首个
MetadataRuntimeContext,并渲染母版(Mask)。 - DefaultMainViewWidget:主内容分发区渲染组件,用于创建
RootRuntimeContext,并渲染布局(Layout)和DSL。 - MultiTabsContainerWidget 和 MultiTabContainerWidget:多标签页容器组件和标签页组件。
四、Reference List
(一)核心组件
1、VueWidget
继承:Widget
属性:
- opt:组件代理实例,用于访问 Vue 实例属性。(
VueWidget | undefined)
方法:
createWidget
- 功能描述:在当前组件节点下创建子组件。
- 类型:
<T extends Widget>(constructor: WidgetConstructor<T['config'], T>, slotName?: string, initConfig?: T['config'], specifiedIndex?: number, resolveNewCode?: boolean) => T - 参数:
constructor:子组件构造函数。slotName:插槽名称。initConfig:子组件初始化配置。specifiedIndex:子组件在父节点中的指定位置。resolveNewCode:是否更新节点标识。
- 返回值:子组件实例。
dispose
- 功能描述:销毁组件实例,清理资源。
- 类型:
(force?: boolean) => void - 参数:
force:是否强制销毁(可选,默认false)。
forceUpdate
- 功能描述:强制更新组件。
- 类型:
() => void
getChildrenInstance
- 功能描述:获取子组件实例数组(继承自
Widget)。 - 类型:
() => Widget[] - 返回值:子组件实例数组。
getOperator
- 功能描述:获取组件响应式操作对象。
- 类型:
<T extends VueWidget>() => T - 返回值:组件响应式实例。
setComponent
- 功能描述:设置当前组件渲染的 Vue 组件或 HTML 标签。
- 类型:
(component: WidgetComponent) => void - 参数:
component:目标组件。
setMixinComponent
- 功能描述:设置混入的 Vue 组件。
- 类型:
(component: Component | undefined) => void - 参数:
component:混入组件实例。
translate
- 功能描述:国际化翻译(响应式方法)。
- 类型:
(key: string, values?: { [key: string]: any }) => string - 参数:
key:翻译键。values:替换参数(可选)。
- 返回值:翻译后的字符串。
translateByI18n
- 功能描述:通过 i18n 进行国际化翻译(响应式方法)。
- 类型:
(key: string) => string - 参数:
key:翻译键。
- 返回值:翻译后的字符串。
2、DslRenderWidget
继承:VueWidget
属性:
- internal:标识组件是否为内部组件,影响插槽渲染逻辑。(
boolean) - slotName:组件在父组件中使用的插槽名称。(
string | undefined) - template:当前渲染的 DSL 模板定义。(
DslDefinition | undefined)
方法:
getDsl
- 功能描述:获取当前组件的 DSL 定义,若未设置则返回默认值。
- 类型:
() => DslDefinition - 返回值:DSL 定义对象。
getSlotName
- 功能描述:获取组件在父组件中的插槽名称。
- 类型:
() => string | undefined - 返回值:插槽名称。
initialize
- 功能描述:初始化组件属性,配置 DSL 相关参数。
- 类型:
(props: Props) => this - 参数:
props:组件属性,需符合 DslRenderWidgetProps 接口。
- 返回值:组件实例本身(支持链式调用)。
render
- 功能描述:渲染组件,根据
internal属性选择不同的渲染策略。 - 类型:
(ctx?: Record<string, any>, slots?: Slots) => VNode | VNode[] - 参数:
ctx:渲染上下文对象。slots:Vue 插槽对象。
- 返回值:渲染的虚拟节点。
3、DslDefinitionWidget
继承:DslRenderWidget
属****性:
- allInvisible:判断组件及其子组件是否全部不可见。(
boolean | undefined) - automatic:是否为自动组件。(
boolean) - currentHandle:当前组件的句柄,初始化时自动设置。(
string) - inline:是否为内联组件。(
boolean | undefined) - invisible:判断组件是否不可见(考虑自身和父级状态)。(
boolean) - invisibleState:内部维护的不可见状态。(
boolean) - lastedInvisibleState:上一次的不可见状态,用于检测变化。(
boolean | undefined) - metadataHandle:元数据视图的句柄。(
string | undefined) - parentInvisible:父组件的不可见状态。(
boolean | undefined) - parentInvisibleProvider:向子组件提供的不可见状态(当前组件或父级状态)。(
boolean) - rootHandle:根组件的句柄(一般为视图组件)。(
string | undefined)
方法:
allMounted
- 功能描述:所有子组件挂载完成后调用,重置不可见状态。
- 类型:
() => void
childrenInvisibleProcess
- 功能描述:处理子组件的不可见状态,判断是否全部不可见。
- 类型:
() => boolean - 返回值:子组件是否全部不可见。
getCurrentHandle
- 功能描述:获取当前组件的句柄。
- 类型:
() => string - 返回值:组件句柄。
getMetadataHandle
- 功能描述:获取元数据视图的句柄。
- 类型:
() => string | undefined - 返回值:元数据句柄。
getMetadataRuntimeContext &¬Use
- 功能描述:获取元数据的运行时上下文。
- 类型:
() => RuntimeContext - 返回值:运行时上下文对象。
- 异常:元数据上下文无效时抛出错误。
getRootComputeContext &¬Use
- 功能描述:获取根组件的计算上下文。
- 类型:
() => ComputeContext | undefined - 返回值:计算上下文对象或
undefined。
getRootHandle
- 功能描述:获取根组件的句柄。
- 类型:
() => string | undefined - 返回值:根组件句柄。
getRootRuntimeContext &¬Use
- 功能描述:获取根组件的运行时上下文。
- 类型:
() => RuntimeContext - 返回值:运行时上下文对象。
- 异常:根上下文无效时抛出错误。
getRootViewRuntimeContext &¬Use
- 功能描述:获取根视图的运行时上下文及其字段。
- 类型:
() => { runtimeContext: RuntimeContext; fields: RuntimeModelField[] } - 返回值:包含运行时上下文和字段数组的对象。
invisibleProcess
- 功能描述:处理不可见属性值,转换为布尔类型。
- 类型:
(invisible: boolean | string) => boolean - 参数:
invisible:不可见属性值(布尔或字符串)。
- 返回值:转换后的布尔值。
resetInvisible
- 功能描述:重置不可见状态,当
allInvisible为true时生效。 - 类型:
() => void
resetParentInvisible
- 功能描述:递归重置父组件的不可见状态。
- 类型:
() => void
4、PathWidget
继承:DslDefinitionWidget
属性:
- currentPath:当前指定路径。(
string | undefined) - parentPath:上级路径,通过注入获取。(
string | undefined) - path:完整路径,根据父路径、子路径和子索引动态生成。(
string) - subIndex:当前子路径索引。(
string | number | undefined) - subPath:当前子路径。(
string | undefined)
5、ActiveRecordsWidget
继承:PathWidget<Props>
属性:
- currentActiveRecords:当前数据记录,不存在时透传上级数据。(
ActiveRecord[] | undefined) - currentDataSource:当前数据源,支持数据操作与缓存。(
ActiveRecord[] | null | undefined) - currentRootData:当前根数据,优先使用自身配置,否则透传上级数据。(
ActiveRecord[] | undefined) - parentActiveRecords:上级数据记录。(
ActiveRecord[] | undefined) - parentDataSource:上级数据源。(
ActiveRecord[] | undefined) - parentReloadActiveRecords:上级重新加载数据记录的方法。(
ReloadActiveRecordsFunction | undefined) - parentReloadDataSource:上级重新加载数据源的方法。(
ReloadActiveRecordsFunction | undefined) - parentPushActiveRecords:上级添加数据记录的方法。(
PushActiveRecordsFunction | undefined) - parentPushDataSource:上级添加数据源的方法。(
PushActiveRecordsFunction | undefined) - parentUpdateActiveRecords:上级更新数据记录的方法。(
UpdateActiveRecordsFunction | undefined) - parentUpdateDataSource:上级更新数据源的方法。(
UpdateActiveRecordsFunction | undefined) - parentDeleteActiveRecords:上级删除数据记录的方法。(
DeleteActiveRecordsFunction | undefined) - parentDeleteDataSource:上级删除数据源的方法。(
DeleteActiveRecordsFunction | undefined) - parentFlushActiveRecords:上级刷新数据记录的方法。(
FlushActiveRecordsFunction | undefined) - parentFlushDataSource:上级刷新数据源的方法。(
FlushActiveRecordsFunction | undefined) - parentRootData:上级根数据。(
ActiveRecord[] | undefined) - rootData:提供给下级的根数据(当前或上级数据)。(
ActiveRecord[] | undefined) - submitCache:提交缓存管理器(通过元数据上下文获取)。(
SubmitCacheManager | undefined) - dataSource:提供给下级的数据源(当前或上级数据)。(
ActiveRecord[] | undefined) - activeRecords:提供给下级的数据记录(当前或上级数据)。(
ActiveRecord[] | undefined)
方法:
createDataSourceByEntity
- 功能描述:通过实体创建数据源并合并到当前数据源。
- 类型:
(records: ActiveRecords, predict?: PushActiveRecordsPredict) => void - 参数:
records:要创建的数据。predict:推送判定函数(可选)。
deleteActiveRecords
- 功能描述:根据索引删除数据记录。
- 类型:
(recordIndexes: number[]) => void - 参数:
recordIndexes:数据索引数组。
deleteActiveRecordsByEntity
- 功能描述:根据实体条件删除数据记录。
- 类型:
(records: ActiveRecords, predict?: DeleteActiveRecordsByEntityPredict) => void - 参数:
records:删除条件数据。predict:删除判定函数(可选)。
deleteDataSource
- 功能描述:根据索引删除数据源。
- 类型:
(recordIndexes: number[]) => void - 参数:
recordIndexes:数据索引数组。
deleteDataSourceByEntity
- 功能描述:根据实体条件删除数据源。
- 类型:
(records: ActiveRecords, predict?: DeleteActiveRecordsByEntityPredict) => void - 参数:
records:删除条件数据。predict:删除判定函数(可选)。
flushActiveRecords
- 功能描述:刷新数据记录(清空当前数据或向上提交)。
- 类型:
() => void
flushDataSource
- 功能描述:刷新数据源(向上提交)。
- 类型:
() => void
getCurrentActiveRecords
- 功能描述:获取当前数据记录。
- 类型:
() => ActiveRecord[] | undefined - 返回值:当前数据记录数组或
undefined。
getCurrentDataSource
- 功能描述:获取当前数据源。
- 类型:
() => ActiveRecord[] | null | undefined - 返回值:当前数据源数组、
null或undefined。
getCurrentRootData
- 功能描述:获取当前根数据。
- 类型:
() => ActiveRecord[] | undefined - 返回值:当前根数据数组或
undefined。
reloadActiveRecords
- 功能描述:重新加载数据记录到当前实例。
- 类型:
(records?: ActiveRecords) => void - 参数:
records:要加载的数据(可选)。
reloadDataSource
- 功能描述:重新加载数据源到当前实例。
- 类型:
(records?: ActiveRecords) => void - 参数:
records:要加载的数据(可选)。
pushActiveRecords
- 功能描述:向当前数据记录中添加数据。
- 类型:
(records: ActiveRecords, predict?: PushActiveRecordsPredict) => void - 参数:
records:要添加的数据。predict:推送判定函数(可选)。
pushDataSource
- 功能描述:向当前数据源中添加数据。
- 类型:
(records: ActiveRecords, predict?: PushActiveRecordsPredict) => void - 参数:
records:要添加的数据。predict:推送判定函数(可选)。
updateActiveRecords
- 功能描述:根据索引更新数据记录。
- 类型:
(records: UpdateEntity[]) => void - 参数:
records:更新实体数组。
updateActiveRecordsByEntity
- 功能描述:根据实体条件更新数据记录。
- 类型:
(records: ActiveRecords, predict?: UpdateActiveRecordsByEntityPredict) => void - 参数:
records:更新数据。predict:更新判定函数(可选)。
updateDataSource
- 功能描述:根据索引更新数据源。
- 类型:
(records: UpdateEntity[]) => void - 参数:
records:更新实体数组。
updateDataSourceByEntity
- 功能描述:根据实体条件更新数据源。
- 类型:
(records: ActiveRecords, predict?: UpdateActiveRecordsByEntityPredict) => void - 参数:
records:更新数据。predict:更新判定函数(可选)。
6、BaseRuntimePropertiesWidget
继承:ActiveRecordsWidget
属性:
- invisible:判断组件是否不可见,若不支持当前客户端类型则强制隐藏。(
boolean) - isSupportCurrentClient:判断是否支持当前客户端类型。(
boolean) - isSupportMobileClient:判断是否支持移动端客户端。(
boolean) - isSupportPCClient:判断是否支持 PC 端客户端。(
boolean) - loading:加载状态标识,由 load 方法控制。(
boolean) - model:运行时模型,从根运行时上下文获取。(
RuntimeModel) - openerActiveRecords:打开当前视图的组件的活动记录。(
ActiveRecord[] | undefined) - openerDataSource:打开当前视图的组件的数据源。(
ActiveRecord[] | undefined) - scene:当前场景,从 URL 参数或视图动作获取。(
string) - supportClientTypes:支持的客户端类型列表。(
ViewClientType[]) - urlParameters:URL 查询参数,内联组件返回空对象。(
UrlQueryParameters) - view:运行时视图。(
RuntimeView | undefined) - viewAction:运行时视图动作。(
RuntimeViewAction | undefined) - initialValue:视图初始值。(
ActiveRecord[] | undefined) - initialContext:视图初始上下文,优先从 URL 参数获取。(
Record<string, unknown> | undefined) - usingLoading:是否使用加载状态,默认启用。(
boolean)
方法:
getUrlParameters
- 功能描述:获取 URL 查询参数。
- 类型:
() => UrlQueryParameters - 返回值:URL 参数对象。
load
- 功能描述:执行异步操作并管理加载状态。
- 类型:
<R>(fn: (...args) => R, ...args) => Promise<R> - 参数:
fn:要执行的函数。args:函数参数。
- 返回值:Promise 函数执行结果。
7、BaseDataWidget
继承:BaseRuntimePropertiesWidget
属性:
- currentDataPath:当前指定的数据路径。(
string | undefined) - dataPath:完整数据路径,由父路径、子路径和索引组合而成。(
string) - itemData:数据交互标识,优先使用 DSL 中的 data 字段,否则使用 name。(
string) - itemName:数据提交标识,优先使用 DSL 中的 name 字段,否则使用 data。(
string) - parentDataPath:上级数据路径。(
string | undefined) - subDataIndex:当前数据子路径索引。(
string | number | undefined) - subDataPath:当前数据子路径,默认使用 itemData。(
string | undefined)
(二)SPI Token 组件
1、BaseMaskWidget
继承:DslRenderWidget
属性:
- automatic:是否为自动组件。(
boolean) - classNames:组件的类名数组,从 DSL 中获取。(
string[] | undefined) - currentHandle:当前组件的句柄,初始化时自动设置。(
string) - loading:加载状态标识。(
boolean) - style:组件的 CSS 样式,从 DSL 中转换。(
CSSStyle | undefined)
方法:
getCurrentHandle
- 功能描述:获取当前组件的句柄。
- 类型:
() => string - 返回值:组件句柄。
getUrlParameters
- 功能描述:获取 URL 查询参数。
- 类型:
() => Record<string, unknown> - 返回值:URL 参数对象。
load
- 功能描述:执行异步操作并管理加载状态。
- 类型:
<R>(fn: (...args) => R, ...args) => Promise<R> - 参数:
fn:要执行的函数。args:函数参数。
- 返回值:Promise,函数执行结果。
render
- 功能描述:渲染组件,处理插槽数据。
- 类型:
(ctx?: Record<string, unknown>, slots?: Slots) => VNode | VNode[] - 参数:
ctx:渲染上下文。slots:插槽内容。
- 返回值:渲染的虚拟节点。
2、BaseView
继承:BaseRuntimePropertiesWidget
属性:
- parentViewType:上级视图类型。(
ViewType | undefined) - viewMode:当前视图模式(提供给下级)。(
ViewMode) - viewType:视图类型。(
ViewType | undefined) - validatorCallChaining:校验时的链式调用对象(提供给下级)。(
CallChaining<boolean> | undefined)
方法
addVisibleArea
- 功能描述:添加可见区域。
- 类型:
() => void
clearVisibleArea
- 功能描述:清除可见区域。
- 类型:
() => void
cloneParentDataSource
- 功能描述:克隆父数据源。
- 类型:
() => void
getViewMode
- 功能描述:获取当前视图模式。
- 类型:
() => ViewMode
setViewMode
- 功能描述:设置当前视图模式。
- 类型:
(mode: ViewMode | undefined) => void - 参数:
mode:视图模式。
3、BaseElementWidget
继承:BaseRuntimePropertiesWidget
属性:
- parentViewType:上级视图类型。(
ViewType | undefined) - viewType:视图类型。(
ViewType | undefined)
4、BasePackWidget
继承:BaseRuntimePropertiesWidget
属性:
- cols:列数,优先使用自身配置,否则继承上级或默认值 1。(
number) - defaultAllInvisible:默认所有子组件是否不可见(初始值为 true)。(
boolean) - formData:表单数据,取当前活动记录的第一条。(
Record<string, unknown>) - help:帮助信息,从 DSL 中获取。(
string | undefined) - isDialog:是否为对话框场景(基于 popupScene 判断)。(
boolean) - isDrawer:是否为抽屉场景(基于 popupScene 判断)。(
boolean) - parentCols:上级列数。(
number | undefined) - parentViewType:上级视图类型。(
ViewType | undefined) - popupScene:弹出层场景。(
string | undefined) - viewType:当前视图类型,优先使用视图配置,否则继承上级。(
ViewType | undefined)
方法:
executeExpression
- 功能描述:执行表达式,支持表单数据、根数据等上下文。
- 类型:
<T>(expression: string, errorValue?: T) => T | string | undefined - 参数:
expression:表达式字符串。errorValue:表达式执行失败时的默认值(可选)。
- 返回值:表达式结果或默认值。
executeLabelExpression
- 功能描述:处理标签表达式,自动识别表达式字符串或关键词。
- 类型:
(label: string) => string | undefined - 参数:
label:标签内容。
- 返回值:处理后的标签字符串或
undefined。
invisibleProcess
- 功能描述:处理不可见属性,支持表达式计算。
- 类型:
(invisible: boolean | string) => boolean | undefined - 参数:
invisible:不可见属性值(布尔或字符串)。
- 返回值:处理后的布尔值或
undefined。
5、BaseActionWidget
继承:BaseRuntimePropertiesWidget
属性:
- action:当前运行时动作,不可为 undefined,否则抛出错误。(
Action) - isAsync:是否为异步动作(固定返回 true)。(
boolean) - isDialog:是否为对话框场景(基于 popupScene 判断)。(
boolean) - isDrawer:是否为抽屉场景(基于 popupScene 判断)。(
boolean) - isInnerPopup:是否为内部弹出层场景(基于 popupScene 判断)。(
boolean) - parentViewMode:上级视图模式。(
ViewMode | undefined) - popupScene:弹出层场景。(
PopupScene | string | undefined) - refreshCallChaining:刷新时的链式调用对象。(
CallChaining<boolean> | undefined) - submitCallChaining:提交时的链式调用对象。(
CallChaining<SubmitValue> | undefined) - submitType:提交类型。(
SubmitType | undefined) - relationUpdateType:关系更新类型。(
RelationUpdateType | undefined) - runtimeAction:内部维护的运行时动作实例。(
Action | undefined) - viewMode:当前视图模式(提供给下级,默认继承上级)。(
ViewMode | undefined) - viewType:当前视图类型。(
ViewType | undefined) - validatorCallChaining:校验时的链式调用对象。(
CallChaining<boolean> | undefined) - $matched:路由匹配信息(组件挂载时获取)。(
Matched | undefined) - $router:路由实例(组件挂载时获取)。(
Router | undefined)
方法:
load
- 功能描述:执行异步操作并管理加载状态,若为异步动作则调用父类
load,否则直接执行函数。 - 类型:
<R>(fn: (...args) => R, ...args) => Promise<R> - 参数:
fn:要执行的函数。args:函数参数。
- 返回值:函数执行结果。
6、BaseFieldWidget
继承:BaseFormItemWidget
属性:
- computeTrigger:计算触发方式。(
ComputeTrigger[]) - field:运行时字段。(
Field) - label:字段标签。(
string | undefined) - readonly:是否只读。(
boolean) - required:是否必填。(
boolean)
方法:
blur
- 功能描述:触发字段失去焦点事件,并通知相关生命周期。
- 类型:
() => void
change
- 功能描述:更新字段值,并通知字段变化生命周期。
- 类型:
(val: Value | null | undefined) => void - 参数:
val:新的字段值。(Value | null | undefined)
executeCompute
- 功能描述:执行计算逻辑(当前仅为占位,未实现完整逻辑)。
- 类型:
(trigger: ComputeTrigger) => void - 参数:
trigger:计算触发类型。(ComputeTrigger)
executeValidator
- 功能描述:执行校验逻辑,并通知校验相关生命周期。
- 类型:
() => Promise<ValidatorInfo> - 返回值:校验结果信息。
focus
- 功能描述:触发字段获得焦点事件,并通知相关生命周期。
- 类型:
() => void
on
- 功能描述:监听字段事件,支持单个或多个事件监听。
- 类型:
(event: FieldEventName | { [key in FieldEventName]?: HandlerEvent }, handler?: HandlerEvent) => void - 参数:
event:事件名或事件对象。(FieldEventName | { [key in FieldEventName]?: HandlerEvent })handler:事件处理函数(可选)。(HandlerEvent)
submit
- 功能描述:提交字段值,返回提交结果。
- 类型:
(submitValue: SubmitValue) => ReturnPromise<Record<string, unknown> | SubmitRelationValue | undefined> - 参数:
submitValue:提交的值。(SubmitValue)
- 返回值:提交结果。
validator
- 功能描述:执行具体的校验逻辑,返回校验结果。
- 类型:
() => Promise<ValidatorInfo> - 返回值:校验结果信息。
validatorSpecific
- 功能描述:执行特定的校验逻辑,返回校验结果。
- 类型:
(needCheckedValue: any) => Promise<ValidatorInfo> - 参数:
needCheckedValue:需要校验的值。(any)
- 返回值:Promise,校验结果信息。
7、EditorFieldWidget
无
8、BaseRouterWidget
无
(三)元数据组件
1、MetadataViewWidget
继承:DslDefinitionWidget
属性:
- inline:是否为内联组件。(
boolean) - isVirtual:是否为虚拟组件(控制插槽行为)。(
boolean) - modelModel:模型名称(运行时上下文获取)。(
string | undefined) - modelName:模型显示名(运行时上下文获取)。(
string | undefined) - moduleModule:模块名称(运行时上下文获取)。(
string | undefined) - moduleName:模块显示名(运行时上下文获取)。(
string | undefined) - runtimeContext:运行时上下文实例。(
RuntimeContext | undefined) - viewDsl:视图 DSL 定义(运行时上下文获取)。(
DslDefinition | undefined) - viewLayout:视图布局 DSL 定义(运行时上下文获取)。(
DslDefinition | undefined) - viewTemplate:视图模板 DSL 定义(运行时上下文获取)。(
DslDefinition | undefined) - viewType:视图类型(运行时上下文获取)。(
ViewType | undefined) - viewAction:视图动作实例(初始化时注入)。(
RuntimeViewAction | undefined)
方法:
createWidget
- 功能描述:创建子组件,自动注入元数据句柄和根句柄(非自动组件)。
- 类型:
<TProps extends WidgetProps, T extends Widget<TProps>>(constructor: WidgetConstructor<TProps, T>, slotName?: string, initConfig?: T['config'], specifiedIndex?: number, resolveNewCode?: boolean) => T - 参数:
constructor:组件构造函数。slotName:插槽名称(可选)。initConfig:初始化配置(可选)。specifiedIndex:指定索引(可选)。resolveNewCode:是否解析新代码(可选)。
initContext
- 功能描述:使用指定运行时上下文初始化组件。
- 类型:
(runtimeContext: RuntimeContext) => RuntimeContext - 参数:
runtimeContext:运行时上下文实例。
- 返回值:初始化后的运行时上下文。
initContextByViewAction
- 功能描述:通过视图动作创建并初始化运行时上下文。
- 类型:
(viewAction?: RuntimeViewAction) => RuntimeContext - 参数:
viewAction:视图动作实例(可选,默认使用当前实例的viewAction)。
- 返回值:运行时上下文实例。
- 异常:视图动作或运行时上下文无效时抛出错误。
initContextByView
- 功能描述:通过视图创建并初始化运行时上下文。
- 类型:
(view: RuntimeView) => void - 参数:
view:视图实例。
- 返回值:运行时上下文实例。
- 异常:视图无效时抛出错误。
initContextByViewForField
- 功能描述:通过视图和字段创建并初始化运行时上下文(用于子视图)。
- 类型:
(view: RuntimeView, field: RuntimeModelField) => void - 参数:
view:视图实例。field:模型字段实例。
- 返回值:运行时上下文实例。
- 异常:视图或字段无效时抛出错误。
2、DefaultMetadataMainViewWidget
继承:MetadataViewWidget
属性:
- currentRuntimeViewAction:当前运行时视图动作实例。(
RuntimeViewAction | undefined) - loading:全局加载状态标识。(
boolean) - mainViewLoading:主视图加载状态(提供给下级组件)。(
boolean) - maskTemplate:掩码模板 DSL 定义。(
DslDefinition | undefined) - multiTabsContainerWidget:多标签容器组件实例。(
MultiTabsContainerWidget | undefined) - multiTabsTeleportWidget:多标签 Teleport 组件实例。(
TeleportWidget | undefined) - pairwiseRoutePage:路由变化前后的页面参数对比。(
{ oldPage: ViewActionQueryParameter | undefined; newPage: ViewActionQueryParameter | undefined }) - reloadMainViewCallChaining:主视图重载链式调用对象(提供给下级)。(
CallChaining<void>) - reloadMaskCallChaining:掩码重载链式调用对象(提供给下级)。(
CallChaining<void>) - translateToolBox:国际化工具条虚拟节点。(
VNode | undefined)
方法:
createMultiTabsContainerWidget
- 功能描述:创建多标签容器及 Teleport 组件。
- 类型:
() => void
fetchRuntimeViewAction
- 功能描述:获取运行时视图动作(支持权限校验)。
- 类型:
(model: string, action: string | undefined, path?: string) => Promise<RuntimeViewAction> - 参数:
model:模型名称。action:动作名称。path:路由路径(可选)。
- 返回值:Promise,运行时视图动作实例。
initRuntimeContext
- 功能描述:初始化运行时上下文(判断是初始化还是刷新)。
- 类型:
(viewAction: RuntimeViewAction) => { isInit: boolean; isRefresh: boolean } - 参数:
viewAction:视图动作实例。
- 返回值:初始化状态对象。
reloadPage
- 功能描述:重载页面(处理路由变化、国际化、权限等逻辑)。
- 类型:
(oldPage?: ViewActionQueryParameter, newPage: ViewActionQueryParameter) => Promise<void> - 参数:
oldPage:旧页面参数(可选)。newPage:新页面参数。
renderMask
- 功能描述:渲染掩码模板并触发链式调用。
- 类型:
(viewAction: RuntimeViewAction, oldPage?: ViewActionQueryParameter, newPage: ViewActionQueryParameter) => Promise<void> - 参数:
viewAction:视图动作实例。oldPage:旧页面参数(可选)。newPage:新页面参数。
renderMainView
- 功能描述:渲染主视图并触发链式调用。
- 类型:
(oldPage?: ViewActionQueryParameter, newPage: ViewActionQueryParameter) => Promise<void> - 参数:
oldPage:旧页面参数(可选)。newPage:新页面参数。
watchRoute
- 功能描述:监听路由变化并触发页面重载流程。
- 类型:
() => void
3、DefaultMainViewWidget
继承:MetadataViewWidget
属性:
- loading:主视图加载状态。(
boolean | undefined) - multiTabsContainerWidget:多标签容器组件实例。(
MultiTabsContainerWidget | undefined) - multiTabsTeleportWidget:多标签 Teleport 组件实例。(
TeleportWidget | undefined) - reloadMainViewCallChaining:主视图重载链式调用对象。(
CallChaining | undefined) - teleportTarget:Teleport 目标元素选择器。(
string | undefined)
方法:
dispose
- 功能描述:销毁组件。
- 类型:
() => void
getMultiTabsTeleportWidget
- 功能描述:获取多标签 Teleport 组件,设置渲染目标。
- 类型:
() => TeleportWidget | undefined
getUrlParameters
- 功能描述:获取 URL 查询参数(覆盖父类方法)。
- 类型:
() => UrlQueryParameters - 返回值:URL 参数对象(从路由匹配参数中获取)。
reloadRuntimeContext
- 功能描述:根据句柄重新加载运行时上下文。
- 类型:
(handle: string) => void - 参数:
handle:组件句柄。
4、MultiTabsContainerWidget
继承:DslDefinitionWidget
属性:
- disabledCache:是否禁用缓存。(
boolean) - isEnabledHomepage:是否启用应用首页标签页(模块首页优先)。(
boolean) - isEnabledModuleHomepage:是否启用模块首页标签页。(
boolean) - loading:加载状态标识。(
boolean) - maxCacheCount:最大缓存标签页数,优先使用组件配置,否则取全局值。(
number) - maxCount:最大标签页数,优先使用组件配置,否则取全局值。(
number | undefined) - menuNodes:菜单树节点列表。(
TreeNode<RuntimeMenu>[]) - module:当前模块信息。(
IModule | undefined) - multiTabConfig:多标签配置(从系统主配置中获取并动态更新)。(
SystemStyleMultiTabConfig | undefined) - reloadMainViewCallChaining:主视图重载链式调用对象。(
CallChaining | undefined) - tabs:选项卡列表。(
MultiTabItem[])
方法:
appendEnterTab
- 功能描述:添加入口选项卡到列表。
- 类型:
(enterTab: MultiTabItem, parameter?: ViewActionQueryParameter) => void - 参数:
enterTab:要添加的选项卡项。parameter:URL 参数(可选)。
createTabContainerWidget
- 功能描述:创建选项卡容器组件。
- 类型:
(instanceOrKey: string | MultiTabInstance, runtimeContext: RuntimeContext) => MultiTabContainerWidget - 参数:
instanceOrKey:实例或实例键。runtimeContext:运行时上下文。
- 返回值:选项卡容器组件实例。
executeMaxCacheCount
- 功能描述:执行最大缓存数限制逻辑。
- 类型:
(maxCacheCount: number) => void - 参数:
maxCacheCount:最大缓存数量。
executeMaxCount
- 功能描述:执行最大选项卡数限制逻辑。
- 类型:
(maxCount: number) => void - 参数:
maxCount:最大选项卡数量。
findEnterTab
- 功能描述:查找指定动作的选项卡。
- 类型:
(action: RuntimeViewAction, parameter?: ViewActionQueryParameter) => MultiTabItem | undefined - 参数:
action:视图动作。parameter:URL 参数(可选)。
- 返回值:匹配的选项卡项或
undefined。
fetchMenuNodes
- 功能描述:获取模块菜单树节点。
- 类型:
(moduleName: string) => Promise<TreeNode<RuntimeMenu>[]> - 参数:
moduleName:模块名称。
- 返回值:菜单树节点列表。
generatorTabItem
- 功能描述:生成选项卡项。
- 类型:
(type: MultiTabType, action: RuntimeViewAction, parameters?: ViewActionQueryParameter) => MultiTabItem - 参数:
type:选项卡类型。action:视图动作。parameters:URL 参数(可选)。
- 返回值:选项卡项。
getMultiTabType
- 功能描述:获取选项卡类型(首页 / 模块首页 / 普通)。
- 类型:
(moduleModule: string, model: string, name: string) => Promise<MultiTabType> - 参数:
moduleModule:模块名。model:模型名。name:动作名。
- 返回值:选项卡类型。
initHomepageTab
- 功能描述:初始化首页选项卡。
- 类型:
(module?: string) => Promise<MultiTabItem> - 参数:
module:模块名(可选,默认应用首页)。
- 返回值:首页选项卡项。
initMultiTabs
- 功能描述:初始化多标签页(处理首页逻辑)。
- 类型:
() => Promise<void>
isEnabled
- 功能描述:判断多标签功能是否启用(支持模块级过滤)。
- 类型:
(module?: string) => boolean - 参数:
module:模块名称(可选,用于模块级过滤)。
- 返回值:是否启用多标签。
joinActiveTab
- 功能描述:加入当前激活的选项卡并更新参数。
- 类型:
(viewAction: RuntimeViewAction, currentPage: ViewActionQueryParameter) => { tabItem: MultiTabItem; isUsingCache: boolean } - 参数:
viewAction:视图动作。currentPage:当前 URL 参数。
- 返回值:激活的选项卡项及是否使用缓存标识。
onModuleChange
- 功能描述:模块变更时的回调(重置多标签状态)。
- 类型:
(moduleName: string) => Promise<void> - 参数:
moduleName:新模块名称。
refreshRuntimeContext
- 功能描述:刷新运行时上下文并更新选项卡。
- 类型:
(handle: string, currentPage: ViewActionQueryParameter, menuUrlParameters?: MenuUrlParameters) => void - 参数:
handle:组件句柄。currentPage:当前 URL 参数。menuUrlParameters:菜单参数(可选)。
setActiveTabItem
- 功能描述:设置激活的选项卡组件。
- 类型:
(tab: MultiTabItem) => void - 参数:
tab:选项卡项。
setLoading
- 功能描述:设置加载状态。
- 类型:
(loading: boolean) => void - 参数:
loading:加载状态值。
getSortedTabs
- 功能描述:获取按创建时间排序的普通选项卡列表。
- 类型:
() => MultiTabItem[] - 返回值:排序后的选项卡数组。
5、MultiTabContainerWidget
继承:MetadataViewWidget
属性:
- instance:多标签实例,包含标签页状态、栈信息等。(
MultiTabInstance)
方法:
onRefresh
- 功能描述:刷新标签页运行时上下文。
- 类型:
(handle?: string) => void - 参数:
handle:运行时上下文句柄(可选,默认使用当前组件句柄)。