通用
通用
组件通用
DisposableSupported
DisposableSupported
是一个标记可销毁功能支持的接口。
方法
dispose()
- 类型: 非响应式方法
- 描述: 销毁时调用的抽象方法。
dispose();
IWidget
组件接口,定义了组件的基本属性和方法。默认使用 IWidget
作为该功能的借口,继承自 DisposableSupported
接口。
方法
getOperator()
- 类型: 非响应式方法
- 描述: 获取当前组件响应式对象的抽象方法。
- 返回值:
this
: 当前组件实例。
getOperator();
initialize()
- 类型: 非响应式方法
- 描述: 组件初始化抽象方法。
- 入参:
props
(Props): 组件的属性。
initialize(props: Props);
createWidget()
- 类型: 非响应式方法
- 描述: 创建子组件。
- 入参:
constructor: WidgetConstructor<ChildProps, IWidget<ChildProps>>
- 子组件构造器。slotName?: string
- 插槽名称。props?: ChildProps
- 子组件的属性。specifiedIndex?: number
- 插入/替换指定索引的子组件。
createWidget<ChildProps extends WidgetProps = WidgetProps>(
constructor: WidgetConstructor<ChildProps, IWidget<ChildProps>>,
slotName?: string,
props?: ChildProps,
specifiedIndex?: number
);
Widget
组件抽象基类,用于响应式属性和方法、事件监听、组件间通信等的通用功能。默认使用 Widget
作为该功能的基类,该类继承了IWidget
接口。
属性
widgetCount
: 非响应式变量,创建的widget
数量。widgetMap
: 非响应式变量,保存所有的widget
实例。attributeMap
: 非响应式变量,保存所有widget
的属性。watchMap
: 非响应式变量,保存所有widget
的监听事件。nameContextMap
: 非响应式变量,保存所有widget
的上下文。subscriptionMap
: 非响应式变量,保存所有widget
的订阅。$$props
: 非响应式变量,存储组件的属性名。handle
: 非响应式变量,widget
的唯一标识。config
: 响应式变量,存储组件的配置。
方法
createHandle()
- 类型: 非响应式方法
- 描述: 创建一个
widget
的唯一handle
标识。 - 入参:
name
(string): 名称。
- 返回值:
handle
(HANDLE): 创建的handle
private static createHandle(name: string): HANDLE {}
Attribute()
- 类型: 非响应式方法
- 描述: 添加属性,用于将属性变为响应式。
- 入参:
params
({ displayName?: string; render?: boolean }): 属性参数,包括displayName
和render。
- 返回值:
fn
(<T extends Widget, K>(target: T, nativeName: string, description?: TypedPropertyDescriptor<K>) => {}
): 用于注解函数。
private static Attribute(params?: { displayName?: string; render?: boolean }) {
return <T extends Widget, K>(target: T, nativeName: string, description?: TypedPropertyDescriptor<K>) => {};
}
Watch()
- 类型: 非响应式方法
- 描述: 添加事件监听。
- 如何使用:
@Widget.Watch('formData.name', {deep: true, immediate: true}) private watchName(name: string) { ... todo }
- 入参:
path
(string): 监听的路径。options
({ deep?: boolean; immediate?: boolean }): 监听选项,包括deep
和immediate
。
- 返回值:
fn
: 用于注解函数。
protected static Watch(path: string, options?: { deep?: boolean; immediate?: boolean }) {
return <T extends Widget, K>(
target: T,
nativeName: string,
descriptor:
| TypedPropertyDescriptor<(newValue: K, oldValue?: K) => void>
| TypedPropertyDescriptor<(newValue: K, oldValue?: K) => Promise<void>>
| TypedPropertyDescriptor<(newValue?: K, oldValue?: K) => void>
| TypedPropertyDescriptor<(newValue?: K, oldValue?: K) => Promise<void>>
) => {};
}
Sub()
- 类型: 非响应式方法
- 描述: 注册订阅,用来处理不同 widget 之间的通讯。
- 入参:
name
(Symbol): 名称标识。SubjectType
({ new (T): Subject<T> | BehaviorSubject<T> }
): Subject 类型。value
(T): 默认值。
- 返回值:
fn
: 用于注解函数。
private static Sub<T>(name: Symbol, SubjectType: { new (T): Subject<T> | BehaviorSubject<T> }, value?: T) {
return <K extends Widget>(target: K, paramName: string) => {};
}
BehaviorSubContext()
类型: 非响应式方法
描述: 与
BehaviorSubContext
一样,区别在于第一次不会发射默认值。如何使用:
const identifier = Symbol('example-sub') * field.ts * // 文件 @Widget.BehaviorSubContext(identifier, {value: '这是默认值'}) private exampleSub!:WidgetBehaviorSubjection<{value: string}> onValueChange() { this.exampleSub.subject.next({value: '这是新的值'}) } * other-field.ts * // 文件 @Widget.BehaviorSubContext(identifier, {value: '这是默认值'}) private exampleSub!:WidgetBehaviorSubjection<{value: string}> mounted() { this.exampleSub.subscribe((value) => { ...todo }) }
入参:
name
(Symbol): 名称标识。value
(unknown): 默认值。
返回值:
fn
: 用于注解函数。
protected static BehaviorSubContext(name: Symbol, value?: unknown) {}
SubContext()
- 类型: 非响应式方法
- 描述: 与
BehaviorSubContext
一样,区别在于第一次不会发射默认值。 - 入参:
name
(Symbol): 名称标识。value
(unknown): 默认值。
- 返回值:
fn
: 用于注解函数。
protected static SubContext(name: Symbol, value?: unknown) {}
Reactive()
- 类型: 非响应式方法
- 描述: 将数据绑定为响应式,并且组件中可以获取该值。
- 入参:
params
({ displayName?: string; render?: boolean }): 数据绑定参数。
- 返回值:
fn
: 用于注解函数。
protected static Reactive(params?: { displayName?: string; render?: boolean }) {}
Method()
- 类型: 非响应式方法
- 描述: 将方法绑定为能够被组件获取的方法。
- 入参:
displayName
(string): 方法显示名称。
- 返回值:
fn
: 用于注解函数。
protected static Method(displayName?: string) {}
select()
- 类型: 非响应式方法
- 描述: 获取指定的
widget
。 - 入参:
handle
(string): 需要获取的组件handle
。
- 返回值:
res
(Widget | undefined): 返回获取的widget
实例。
public static select(handle: string): Widget | undefined {}
Inject()
类型: 非响应式方法
描述: 获取上级注入的依赖,与 Provide 一起使用。
如何使用:
* children.ts * // 文件 @Widget.Inject('InjectName') private rootData!: 如果要将该值变为响应式,如果加上Reactive @Widget.Reactive() @Widget.Inject('InjectName') private rootData!:;
入参:
injectName
(string | Symbol): 被注入的名称。
返回值:
fn
: 用于注解函数。
protected static Inject(injectName?: string | Symbol): any {}
Provide()
类型: 非响应式方法
描述: 获取下级注入的依赖,与 Inject 一起使用。
如何使用:
* parent.ts * // 文件 @Widget.Provide('ProvideName') private rootData!: 如果要将该值变为响应式,如果加上Reactive @Widget.Reactive() @Widget.Provide('ProvideName') private rootData!:;
入参:
provideName?
(string | Symbol): 被注入的名称。
返回值:
fn
: 用于注解函数。
protected static Provide(provideName?: string | Symbol) {}
dispose()
- 类型: 非响应式方法
- 描述: 销毁
widget
,内部会根据handle
匹配到对应的widget
,然后进行销毁,如果children
中出现了相同的handle
,那么会销毁第一个。
public dispose() {}
createWidget()
- 类型: 非响应式方法
- 描述: 创建一个
widget
。 - 入参:
constructor
(WidgetConstructor<T['config'], T>
): 对应的 widget 构造函数。name
(string): 插槽。config
(T['config']):widget
中initialize
方法接收的参数。specifiedIndex
(number): 指定的下标。
- 返回值:
T
: 返回创建的widget
实例。
public createWidget<T extends Widget>(constructor: WidgetConstructor<T['config'], T>, name?: string, config?: T['config'], specifiedIndex?: number): T {}
getHandle()
- 类型: 非响应式方法
- 描述: 获取当前
widget
的handle
。 - 返回值:
HANDLE
: 返回当前widget
的handle
。
public getHandle(): HANDLE {}
deleteWidget()
- 类型: 非响应式方法
- 描述: 在当前组件节点下删除子节点树。
- 入参:
name
(string): 子节点名称。
- 返回值:
boolean
: 返回是否删除成功。
public deleteWidget(name: string): boolean {}
moveChildWidget()
- 类型: 非响应式方法
- 描述: 移动
widget
,将widget
从 A 下标移动到 B 下标。 - 入参:
endIndex
(number): 要移动的widget
的当前下标。startIndex
(number): 移动到的目标下标。
public moveChildWidget(endIndex: number, startIndex: number) {}
insertWidget()
- 类型: 非响应式方法
- 描述: 给指定的下标插入
widget
,如果要在最后一位插入,可以用createWidget
。 - 入参:
widget
(Widget): 要插入的widget
实例。index
(number): 插入的下标。
public insertWidget(widget: Widget, index: number) {}
deleteWidgetByIndex()
- 类型: 非响应式方法
- 描述: 根据下标删除对应的
child widget
,如果当前children
中有重复的handler
,那么会删除匹配的第一个。 - 入参:
index
(number): 要删除的下标。handle
(string):child widget
的handle
。
- 返回值:
boolean
: 返回是否删除成功。
public deleteWidgetByIndex(index: number, handle?: string): boolean {}
getConfig()
- 类型: 非响应式方法
- 描述: 获取当前
widget
的配置信息。 - 入参:
key
(string): 配置信息的key
。
- 返回值:
unknown
: 返回获取的配置信息。
public getConfig(key: string): unknown {}
getAllConfig()
- 类型: 非响应式方法
- 描述: 获取所有配置信息。
- 返回值:
config
(IViewProps): 返回获取的所有配置信息。
public getAllConfig(): IViewProps {}
getParent()
- 类型: 非响应式方法
- 描述: 获取父组件。
- 返回值:
parent
(Widget | null): 返回父组件实例。
public getParent(): Widget | null {}
getName()
- 类型: 非响应式方法
- 描述: 获取当前
widget
的名称。 - 返回值:
name
(string): 返回widget
名称。
public getName(): string {}
getWidgetType()
- 类型: 非响应式方法
- 描述: 获取当前
widget
的类型名称。 - 返回值:
name
(string): 返回widget
类型名称。
public getWidgetType(): string {}
getAttributes()
- 类型: 非响应式方法
- 描述: 获取所有的属性。
- 返回值:
attrs
(Map<string, string>
): 返回属性集合。
public getAttributes(): Map<string, string> {}
getWatchers()
- 类型: 非响应式方法
- 描述: 获取所有的监听事件。
- 返回值:
watchers
(watcher<unknown>[]
): 返回监听事件集合。
public getWatchers(): watcher<unknown>[] {}
getChildren()
- 类型: 非响应式方法
- 描述: 获取所有的 children。
- 返回值:
children
(Widget[]): 返回children
集合。
public getChildren(): Widget[] {}
getChildrenInstance()
- 类型: 非响应式方法
- 描述: 获取
children
对应的实例,如果要动态的操作某个child
中的api
,可以用该方法。 - 返回值:
Widget[]
: 返回children
实例集合。
public getChildrenInstance(): Widget[] {}
addChildrenInstance()
- 类型: 非响应式方法
- 描述: 添加一个子组件实例。
- 入参:
widget
(Widget): 子组件实例。
protected addChildrenInstance(widget: Widget) {}
getShared()
- 类型: 非响应式方法
- 描述: 根据
injectName
获取父组件provide
共享的值。 - 入参:
injectName
(string | Symbol): 注入名称。
- 返回值:
{ host?: Widget; value?: unknown }
: 返回共享的值和host
组件实例。
protected getShared(injectName: string | Symbol): { host?: Widget; value?: unknown } {}
releaseInjection()
- 类型: 非响应式方法
- 描述: 释放组件上的注入。
private releaseInjection() {}
getComputeHandler()
- 类型: 非响应式方法
- 描述: 获取组件的计算属性。
- 入参:
name
(string): 计算属性名称。
- 返回值:
handle
: 返回计算属性。
public getComputeHandler(name: string) {}
getProps()
- 类型: 非响应式方法
- 描述: 获取组件的属性名。
- 返回值:
$$props
(string[]): 返回属性名数组。
protected getProps(): string[] {}
render()
- 类型: 抽象方法
- 描述: 渲染函数。
public abstract render(...args): R;
VueWidget
Vue
组件类,用于渲染 Class Component Vue
和 Vue
组件,包含生命周期和属性收集的通用功能。默认使用 VueWidget
作为该功能的基类,该类继承了 Widget
。
属性
behaviorGroup
: 非响应式变量,表示组件行为事件触发器。__render__
: 非响应式变量,表示组件的渲染函数。beforeHooks
: 静态非响应式变量,Map
对象,表示存储前置钩子。afterHooks
: 静态非响应式变量,Map
对象,表示存储后置钩子。hookHosts
: 静态非响应式变量,Map
对象,表示注册的钩子的宿主。opt
: 非响应式变量,表示通过该属性可以直接拿到Widget
下Component
内的属性。res
: 非响应式变量,表示vue
实例内属性 (props、computed、data) 的集合。node_code
: 非响应式变量,表示生成的唯一node_code
。component
: 非响应式变量,表示当前组件。widgetComponent
: 非响应式变量,表示Class Component Vue
组件。mixinComponent
: 非响应式变量,表示混入组件。
方法
revolveNodeCode()
:
- 类型: 非响应式方法
- 描述: 生成一个唯一的
node_code
- 返回值:
res
(string): 生成的node_code
public revolveNodeCode(): string {}
setup()
:
- 类型: 非响应式方法
- 描述: vue 组件
setup
- 入参:
setupHook
(SetupHook | undefined): 传递给setup
的钩子函数
- 返回值:
fn
((ctx: void, props?: unknown) => Record<string, unknown>
):setup
函数
public setup(setupHook?: SetupHook) {}
HookHost()
:
- 类型: 非响应式方法
- 描述: 标记一个方法为可被钩子注入,注解使用
- 返回值:
fn
((target: T, name: string) => void): 注解函数
protected static HookHost() {
return <T extends Widget>(target: T, name: string) => {};
}
getHookHosts()
:
- 类型: 非响应式方法
- 描述: 获得组件中注册的所有钩子,包括对象的继承链上的钩子。
- 入参:
widget
(Widget): 要获取钩子的组件
- 返回值:
results
(string[]): 钩子数组
private static getHookHosts(widget: Widget): string[] {}
getHooks()
:
- 类型: 非响应式方法
- 描述: 获得指定组件内方法的前/后置钩子
- 入参:
widgetName
(string): 组件名称hook
(string): 钩子名称beforeOrAfter
('before' | 'after'): 钩子类型
- 返回值:
hooks
((next: (...args: unknown[]) => void, ...args: unknown[]) => boolean | undefined | Promise<boolean> | Promise<void>[]
): 前/后置钩子
private static getHooks(widgetName: string, hook: string, beforeOrAfter: 'before' | 'after') {}
BeforeHook()
:
- 类型: 非响应式方法
- 描述: 标记一个方法为前置钩子
- 入参:
host
(: string): 钩子宿主名称
- 返回值:
fn
((target: T, _name: string, description: TypedPropertyDescriptor<() => boolean> | TypedPropertyDescriptor<() => void>) => void
): 注解函数
protected static BeforeHook(host: string) {
return <T extends Widget>(
target: T,
_name: string,
description: TypedPropertyDescriptor<() => boolean> | TypedPropertyDescriptor<() => void>)
=> {};
}
AfterHook()
:
- 类型: 非响应式方法
- 描述: 标记一个方法为后置钩子
- 入参:
host
(: string): 钩子宿主名称
- 返回值:
fn
((target: T, _name: string, description: | TypedPropertyDescriptor<(next: never, ...args: unknown[]) => boolean> | TypedPropertyDescriptor<(next: unknown, ...args: unknown[]) => void>) => void
): 注解函数
protected static AfterHook(host: string) {
return <T extends Widget>(
target: T,
_name: string,
description: TypedPropertyDescriptor<(next: unknown, ...args: unknown[]) => void>
) => {};
}
getNodeCode()
:
- 类型: 非响应式方法
- 描述: 获取当前组件的
node_code
- 返回值:
node_code
(string): 组件node_code
public getNodeCode(): string {}
getNodeCodeRef()
:
- 类型: 非响应式方法
- 描述: 获取当前组件的
node_code
的响应式引用 - 返回值:
node_code
(string): 组件的node_code
的响应式引用
public getNodeCodeRef(): Ref<number> {}
getOperator()
:
- 类型: 非响应式方法
- 描述: 获取当前组件的响应式对象
- 返回值:
opt
(T): 组件的响应式对象
public getOperator<T extends VueWidget>(): T {}
createWidget()
- 类型: 非响应式方法
- 描述: 在当前组件节点下创建子组件。
- 入参:
constructor
(WidgetConstructor<T['config'], T>
): widget 构造函数。slotName
(string | undefined): slot 名称。initConfig
(T['config'] | undefined): widget 的 initialize 函数接受的参数。specifiedIndex
(number | undefined): 指定 widget 在父节点中的位置,默认是最后一位。resolveNewCode
(boolean): 是否更新 node_code,默认为false
。
- 返回值:
instance
(T): 子组件实例
public createWidget<T extends Widget>(
constructor: WidgetConstructor<T['config'], T>,
slotName?: string,
initConfig?: T['config'],
specifiedIndex?: number,
resolveNewCode = false
): T {}
deleteWidget()
- 类型: 非响应式方法
- 描述: 在当前组件节点下删除子节点树,并更新
node_code
。 - 入参:
name
(string): 要删除的子节点名称。
- 返回值:
result
(any): 是否删除成功。
public deleteWidget(name: string): any {}
insertWidget()
- 类型: 非响应式方法
- 描述: 给指定的下标插入
widget
,,并更新node_code
。如果要在最后一位插入,可以用createWidget
。 - 入参:
widget
(Widget): 要插入的 widget。index
(number): 插入的下标。
public insertWidget(widget: Widget, index: number) {}
moveChildWidget()
- 类型: 非响应式方法
- 描述: 移动
widget
,将widget
从A
下标移动到B
下标,并更新node_code
。 - 入参:
index1
(number): 要移动的widget
的当前下标。index2
(number): 移动到的目标下标。
public moveChildWidget(index1: number, index2: number) {}
deleteWidgetByIndex()
- 类型: 非响应式方法
- 描述: 根据下标删除对应的 child widget,如果当前 children 中有重复的 handler,那么会删除匹配的第一个,并更新
node_code
。 - 入参:
index
(number): 要删除的 widget 的下标。handle
(string | undefined): widget 的 handler,可选。
public deleteWidgetByIndex(index: number, handle?: string): any {}
buildOperator()
- 类型: 非响应式方法
- 描述: 获取当前组件响应式对象。
- 返回值:
operator
(VueWidget): 当前组件响应式对象
private buildOperator(): VueWidget {}
getWidgetComponent()
- 类型: 非响应式方法
- 描述: 获取 Class Component Vue 组件。
- 入参:
isBuild
(boolean): 是否构建 Vue 组件,默认为false
。
- 返回值:
component
(Component | undefined): 构建的Class Component Vue
组件
public getWidgetComponent(isBuild = false): Component | undefined {}
setWidgetComponent()
- 类型: 非响应式方法
- 描述: 设置 Class Component Vue 组件。
- 入参:
component
(Component | undefined): 要设置的 Vue 组件。
public setWidgetComponent(component: Component | undefined) {}
getMixinComponent()
- 类型: 非响应式方法
- 描述: 获取混入组件。
- 返回值:
component
(Component | undefined): 混入组件
public getMixinComponent() {}
setMixinComponent()
- 类型: 非响应式方法
- 描述: 设置混入组件。
- 入参:
component
(Component | undefined): 要设置的混入组件。
public setMixinComponent(component: Component | undefined) {}
render()
- 类型: 非响应式方法
- 描述: 渲染当前组件。
- 入参:
context
(Record<string, unknown> | undefined
): 渲染上下文,可选。slots
(Slots | undefined): 插槽,可选。
- 返回值:
res
(VNode | VNode[]): 渲染结果
@VueWidget.HookHost()
public render(context?: Record<string, unknown>, slots?: Slots): VNode | VNode[] {}
getWidgetComponentName()
- 类型: 非响应式方法
- 描述: 获取
Class Component Vue
组件的名称。 - 返回值:
name
(string):Class Component Vue
组件的名称
protected getWidgetComponentName(): string {}
buildWidgetComponent()
- 类型: 非响应式方法
- 描述: 构造 Vue 组件。
- 返回值:
component
(Component | undefined): 构造的 Vue 组件。
protected buildWidgetComponent(): Component | undefined {}
renderMixinComponent()
- 类型: 非响应式方法
- 描述: 渲染混入组件。
- 入参:
vNode
(VNode): 当前 Vue 组件渲染节点。props
(Record<string, unknown>
): 当前 Vue 组件渲染属性。
- 返回值:
vNode
(VNode | VNode[]): 渲染后的 VNode 或 VNode 数组。
protected renderMixinComponent(vNode: VNode, props: Record<string, unknown>): VNode | VNode[] {}
renderWidgetComponent()
- 类型: 非响应式方法
- 描述: 渲染当前组件。
- 入参:
widgetComponent
(Component): 当前组件。context?
(Record<string, unknown>
): 组件上下文。slots?
(Slots): 组件插槽。
- 返回值:
vNode
(VNode | VNode[]): 渲染后的 VNode 或 VNode 数组。
protected renderWidgetComponent(widgetComponent: Component, context?: Record<string, unknown>, slots?: Slots): VNode {}
buildProps()
- 类型: 非响应式方法
- 描述: 构建当前组件渲染
Vue
组件传递时的props
。 - 入参:
result
(Record<string, unknown>
): 当前组件的响应式对象。
- 返回值:
props
(Record<string, unknown>
): 构建的props
。
protected buildProps(result: Record<string, unknown>): Record<string, unknown> {}
buildPropsStrs()
- 类型: 非响应式方法
- 描述: 构建当前组件的
props
字符串。 - 返回值:
props
(string[]): 构建的props
字符串数组。
protected buildPropsStrs(): string[] {}
resolveChildren()
- 类型: 非响应式方法
- 描述: 将当前组件的子组件树解析为
Vue Slots
树。 - 返回值:
result
(Record<string, Slot>
): 解析后的Vue Slots
树。
protected resolveChildren(): Record<string, Slot> {}
setupHook()
- 类型: 非响应式方法
- 描述: Vue 组件 setup 方法钩子。
- 入参:
_ctx
(void):setup
函数的上下文。_props
(unknown):setup
函数接收的 props。_result
(unknown):setup
函数的返回值。
- 返回值:
unknown
:setup
钩子函数的返回值。
protected setupHook(_ctx: void, _props: unknown, _result: unknown): unknown {}
setComponent()
- 类型: 非响应式方法
- 描述: 绑定一个标准的
Vue
组件或者一个html
标签用于当前组件的渲染。 - 入参:
component
(WidgetComponent): 要绑定的Vue
组件或者html
标签。
public setComponent(component: WidgetComponent): any {}
dispose()
- 类型: 非响应式方法
- 描述: 销毁当前组件。
public dispose() {}
getComponent()
- 类型: 非响应式方法
- 描述: 获取当前组件渲染时使用的
Vue
组件。 - 返回值:
component
(Component): 当前组件使用的Vue
组件。
public getComponent(): Component {}
getUsingComponents()
- 类型: 非响应式方法
- 描述: 获取当前组件引用的其他
Vue
组件。 - 返回值:
{}
(Record<string, Component>
): 当前组件引用的其他Vue
组件。
protected getUsingComponents(): Record<string, Component> {}
executeAfterHooks()
- 类型: 非响应式方法
- 描述: 执行后置钩子。
- 入参:
name
(string): 钩子名称。result
(unknown): 钩子执行前的结果。
- 返回值:
result
(unknown): 钩子执行后的结果。
private executeAfterHooks(name: string, result: unknown): unknown {}
executeBeforeHooks()
- 类型: 非响应式方法
- 描述: 执行前置钩子。
- 入参:
name
(string): 钩子名称。args
(unknown[]): 钩子执行时的参数。
- 返回值:
args
(unknown[]): 钩子执行后的参数。
private executeBeforeHooks(name: string, ...args: unknown[]): unknown[] {}
beforeCreated()
- 类型: 非响应式方法
- 描述: Vue 钩子。
protected beforeCreated() {}
created()
- 类型: 非响应式方法
- 描述: Vue 钩子。
protected created() {}
beforeMount()
- 类型: 非响应式方法
- 描述: Vue 钩子。
protected beforeMount() {}
mounted()
- 类型: 非响应式方法
- 描述: Vue 钩子。
protected mounted() {}
beforeUpdate()
- 类型: 非响应式方法
- 描述: Vue 钩子。
protected beforeUpdate() {}
updated()
- 类型: 非响应式方法
- 描述: Vue 钩子。
protected updated() {}
activated()
- 类型: 非响应式方法
- 描述: Vue 钩子。
protected activated() {}
deactivated()
- 类型: 非响应式方法
- 描述: Vue 钩子。
protected deactivated() {}
beforeUnmount()
- 类型: 非响应式方法
- 描述: Vue 钩子。
protected beforeUnmount() {}
unmounted()
- 类型: 非响应式方法
- 描述: Vue 钩子。
protected unmounted() {}
registryBehavior()
- 类型: 非响应式方法
- 描述: 注册组件行为。
- 入参:
name
(keyof typeof BehaviorName): 行为名称。cb
(() => void): 行为回调。
public registryBehavior(name: keyof typeof BehaviorName, cb: () => void): any {}
reset()
- 类型: 非响应式方法
- 描述: 重置组件,刷新
node_code
。
protected reset(): any {}
translate()
- 类型: 响应式方法
- 描述: 翻译。
- 入参:
key
: 翻译的 key。values
({ [key: string]: any }): 翻译中的变量。
- 返回值:
result
: 翻译后的字符串。
@Widget.Reactive()
protected translate(key, values: { [key: string]: any } = {}) {}
genStaticPath()
- 类型: 非响应式方法
- 描述: 生成静态资源路径。
- 入参:
resourceName
(string): 资源名称。
- 返回值:
string
: 静态资源路径。
@Widget.Method()
protected genStaticPath(resourceName: string) {}
forceUpdate()
- 类型: 非响应式方法
- 描述: 强制更新,刷新
node_code
。
public forceUpdate() {}
请注意,由于类中存在大量的方法和属性,上述列举的只是其中的一部分。如果您需要其他方法或属性的文档,请提供具体的方法或属性名称,我将为您提供文档。
DslRenderWidget
Dsl
渲染组件类,用于处理组件渲染的通用功能。默认使用 DslRenderWidget
作为该功能的基类,该类继承了VueWidget
。
属性
internal
: 响应式变量,表示是否为内部组件,默认值为false
。template
: 响应式变量,表示模板dsl
定义。slotName
: 响应式变量,表示在父组件中的插槽名。supportedSlotNames
: 响应式变量,表示在支持的插槽名称。dslSlots
: 响应式变量,表示dsl
插槽。slots
: 响应式变量,表示渲染插槽。
方法
getDsl()
- 类型: 非响应式方法
- 描述: 获取
Dsl
定义,优先级this.template
>UnknownDslDefinition
。 - 返回值:
dsl
(DslDefinition):Dsl
定义。
public getDsl(): DslDefinition {}
getSlotName()
- 类型: 非响应式方法
- 描述: 获取插槽名称。
- 返回值:
slotName
(: string | undefined): 插槽名称。
public getSlotName(): string | undefined {}
render()
- 类型: 非响应式方法
- 描述: 根据条件执行相应的渲染函数。
- 入参:
ctx
(Record<string, unknown>
): 上下文数据。slots
(Slots): 插槽数据。
- 返回值:
res
(VNode | VNode[]): 渲染结果。
public render(ctx?: Record<string, unknown>, slots?: Slots): VNode | VNode[] {}
rawRender()
- 类型: 非响应式方法
- 描述: 执行父类渲染函数。
- 入参:
ctx
(Record<string, unknown>
): 上下文数据。slots
(Slots): 插槽数据。
- 返回值:
res
(VNode | VNode[]): 渲染结果。
protected rawRender(ctx?: Record<string, unknown>, slots?: Slots): VNode | VNode[] {}
internalRender(slots?: Slots): Slots | undefined
- 类型: 非响应式方法
- 描述: 内部组件渲染插槽,优先返回传入
slots
,否则将dslSlots
渲染成插槽返回。 - 入参:
slots
(Slots): 插槽数据。
- 返回值:
res
(Slots | undefined): 插槽数据。
protected internalRender(slots?: Slots): Slots | undefined {}
commonRender(slots?: Slots): Slots | undefined
- 类型: 非响应式方法
- 描述: 通用组件渲染插槽,优先将
dslSlots
渲染成插槽返回,否则返回传入slots
。 - 入参:
slots
(Slots): 插槽数据。
- 返回值:
res
(Slots | undefined): 插槽数据。
protected commonRender(slots?: Slots): Slots | undefined {}
DslDefinitionWidget
Dsl
定义组件类,用于处理组件上下文和不可见状态的通用功能。默认使用 DslDefinitionWidget
作为该功能的基类,该类继承了DslRenderWidget
。
属性
automatic
: 响应式变量,表示是否为自动组件,默认值为false
。metadataHandle
: 响应式变量,表示元数据视图 handle。rootHandle
: 响应式变量,表示根组件 handle(一般为视图组件)。currentHandle
: 非响应式变量,表示当前组件 handle。inline
: 响应式变量,表示是否为内联组件。defaultAllInvisible
: 响应式变量,表示默认不启用allInvisible
,值为false
。allInvisible
: 响应式变量,表示是否启用allInvisible
,即所有children
都不可见时,该组件也不可见,优先级this.getDsl().allInvisible
>this.defaultAllInvisible
。invisibleState
: 响应式变量,表示不可见状态,默认为false
。parentInvisible
: 响应式变量,表示上级不可见状态。invisible
: 响应式变量,表示不可见状态,当DslDefinition
的invisible
为true
时,返回true
,否则当allInvisible
为true
时,返回this.invisibleState
。parentInvisibleProvider
: 响应式变量,表示提供给下级不可见状态。metadataRuntimeContext
: 非响应式变量,表示获取元数据视图运行时上下文。rootRuntimeContext
: 非响应式变量,表示获取根组件运行时上下文。rootViewRuntimeContext
: 非响应式变量,表示获取整个视图运行时上下文链的信息。
方法
getMetadataHandle()
- 类型: 非响应式方法
- 描述: 获取元数据视图 handle。
- 返回值:
res
(string | undefined): 元数据视图 handle。
public getMetadataHandle(): string | undefined {}
getRootHandle()
- 类型: 非响应式方法
- 描述: 获取根组件 handle。
- 返回值:
res
(string | undefined): 根组件 handle。
public getRootHandle(): string | undefined {}
getCurrentHandle()
- 类型: 非响应式方法
- 描述: 获取当前组件 handle。
- 返回值:
res
(string | undefined): 当前组件 handle。
public getCurrentHandle() {}
invisibleProcess()
- 类型: 非响应式方法
- 描述: 不可见状态处理,将入参转为布尔类型。
- 入参:
invisible
(boolean | string): 不可见状态的入参。
- 返回值:
res
(boolean): 转换后的布尔值。
protected invisibleProcess(invisible: boolean | string): boolean {}
childrenInvisibleProcess()
- 类型: 非响应式方法
- 描述: 子组件不可见状态处理,当所有子组件不可见时,返回
true
。 - 返回值:
res
(boolean): 子组件不可见状态。
protected childrenInvisibleProcess(): boolean {}
resetInvisible()
- 类型: 非响应式方法
- 描述: 当
allInvisible
为true
时,重置不可见状态。
protected resetInvisible(): void {}
resetParentInvisible()
- 类型: 非响应式方法
- 描述: 重置上级不可见状态。
- 返回值: 无。
protected resetParentInvisible(): void {}
allMounted()
- 类型: 响应式方法
- 描述: 当所有子组件都挂载完成时,重置不可见状态。
@Widget.Method()
protected allMounted() {}
PathWidget
路径组件类,用于处理路径相关的属性和方法的通用功能。默认使用 PathWidget
作为该功能的基类,该类继承了DslDefinitionWidget
。
export class PathWidget<
Props extends PathWidgetProps = PathWidgetProps
> extends DslDefinitionWidget<Props> {}
属性
parentPath
: 响应式变量,表示上级路径。subPath
: 响应式变量,表示当前子路径。subIndex
: 响应式变量,表示当前子路径索引。currentPath
: 响应式变量,表示当前指定路径。path
: 响应式变量,表示完整路径。
ActiveRecordsWidget
数据记录部件类,用于管理和操作数据记录的通用功能。默认使用 ActiveRecordsWidget
作为该功能的基类,该类继承了PathWidget
。
export class ActiveRecordsWidget<
Props extends ActiveRecordsWidgetProps = ActiveRecordsWidgetProps
> extends PathWidget<Props> {}
属性
submitCache
: 非响应式变量,表示提交缓存管理器。parentRootData
: 响应式变量,表示上级根数据。currentRootData
: 响应式变量,表示当前根数据。rootData
: 响应式变量,表示提供给下级的根数据。parentDataSource
: 响应式变量,表示上级数据源。currentDataSource
: 响应式变量,表示当前数据源。dataSource
: 响应式变量,表示提供给下级的数据源。parentActiveRecords
: 响应式变量,表示上级数据记录,不可直接修改,仅在挂载时加载到当前数据记录。currentActiveRecords
: 响应式变量,表示当前数据记录,不存在时将进行数据透传。activeRecords
: 响应式变量,表示提供给下级的数据记录。
方法
getCurrentRootData()
- 类型: 非响应式方法
- 描述: 获取当前根数据。
- 返回值:
res
(ActiveRecord[] | undefined): 当前根数据
public getCurrentRootData(): ActiveRecord[] | undefined {}
setCurrentRootData()
- 类型: 非响应式方法
- 描述: 设置当前根数据,修复数据记录,并强制改为列表(返回值可能为空)。
- 入参:
rootData
(ActiveRecords | undefined): 根数据
public setCurrentRootData(rootData: ActiveRecords | undefined) {}
parentReloadRootData()
- 类型: 响应式方法
- 描述: 上级重新加载根数据函数。
- 入参:
records
(ActiveRecords | undefined): 数据记录。
@Widget.Method()
@Widget.Inject('reloadRootData')
protected parentReloadRootData: ReloadActiveRecordsFunction | undefined;
reloadRootData()
- 类型: 响应式方法
- 描述: 提供给下级的重新加载根数据函数
- 入参:
records
(ActiveRecords | undefined): 数据记录。
@Widget.Reactive()
@Widget.Provide()
public reloadRootData(records: ActiveRecords | undefined) {}
getCurrentDataSource()
- 类型: 非响应式方法
- 描述: 获取当前数据源。
- 返回值:
res
(ActiveRecord[] | null | undefined): 当前数据源
public getCurrentDataSource(): ActiveRecord[] | null | undefined {}
setCurrentDataSource()
- 类型: 非响应式方法
- 描述: 设置当前数据源,修复数据记录,并强制改为列表(返回值可能为空)。
- 入参:
dataSource
(ActiveRecords | null | undefined): 根数据
public setCurrentDataSource(dataSource: ActiveRecords | null | undefined) {}
parentReloadDataSource()
- 类型: 响应式方法
- 描述: 上级重新加载根数据函数。
- 入参:
records
(ActiveRecords | undefined): 数据记录。
@Widget.Method()
@Widget.Inject('reloadDataSource')
protected parentReloadDataSource: ReloadActiveRecordsFunction | undefined;
reloadDataSource()
- 类型: 响应式方法
- 描述: 提供给下级的重新加载根数据函数
- 入参:
records
(ActiveRecords | undefined): 数据记录。
@Widget.Method()
@Widget.Provide()
public reloadDataSource(records: ActiveRecords | undefined) {}
parentPushDataSource()
- 类型: 响应式方法
- 描述: 上级添加数据源函数。
- 入参:
records
(ActiveRecords): 数据记录。predict?
(PushActiveRecordsPredict): 推送判定。
@Widget.Method()
@Widget.Inject('pushDataSource')
protected parentPushDataSource: PushActiveRecordsFunction | undefined
pushDataSource()
- 类型: 响应式方法
- 描述: 添加数据源到当前数据源中。
- 入参:
records
(ActiveRecords): 数据记录。predict?
(PushActiveRecordsPredict): 推送判定。
- 返回值: 无。
public pushDataSource(records: ActiveRecords, predict?: PushActiveRecordsPredict) {}
parentUpdateDataSource()
- 类型: 响应式方法
- 描述: 上级根据索引更新数据源函数。
- 入参:
records
(UpdateEntity[]): 数据记录。
@Widget.Method()
@Widget.Inject('updateDataSource')
protected parentUpdateDataSource: UpdateActiveRecordsFunction | undefined;
updateDataSource()
- 类型: 响应式方法
- 描述: 根据索引更新数据源。
- 入参:
records
(UpdateEntity[]): 数据记录。
@Widget.Method()
@Widget.Provide()
public updateDataSource(records: UpdateEntity[]) {}
parentUpdateDataSourceByEntity()
- 类型: 响应式方法
- 描述: 上级根据数据更新数据源函数。
- 入参:
records
(ActiveRecords): 数据记录。predict?
(UpdateActiveRecordsByEntityPredict): 更新判定。
@Widget.Method()
@Widget.Inject('updateDataSourceByEntity')
protected parentUpdateDataSourceByEntity: UpdateActiveRecordsByEntityFunction | undefined;
updateDataSourceByEntity()
- 类型: 响应式方法
- 描述: 根据数据更新数据源。
- 入参:
records
(ActiveRecords): 数据记录。predict?
(UpdateActiveRecordsByEntityPredict): 更新判定。
@Widget.Method()
@Widget.Provide()
public updateDataSourceByEntity(records: ActiveRecords, predict?: UpdateActiveRecordsByEntityPredict) {}
parentDeleteDataSource()
- 类型: 响应式方法
- 描述: 上级根据索引删除数据源函数。
- 入参:
recordIndexes
(number[]): 数据索引。
@Widget.Method()
@Widget.Inject('deleteDataSource')
protected parentDeleteDataSource: DeleteActiveRecordsFunction | undefined;
deleteDataSource()
- 类型: 响应式方法
- 描述: 根据索引删除数据源。
- 入参:
recordIndexes
(number[]): 数据索引。
@Widget.Method()
@Widget.Provide()
public deleteDataSource(recordIndexes: number[]): void {}
parentDeleteDataSourceByEntity()
- 类型: 响应式方法
- 描述: 上级根据数据删除数据源函数。
- 入参:
records
(ActiveRecords): 数据记录。predict?
(DeleteActiveRecordsByEntityPredict): 删除判定。
@Widget.Method()
@Widget.Inject('deleteDataSourceByEntity')
protected parentDeleteDataSourceByEntity: DeleteActiveRecordsByEntityFunction | undefined;
deleteDataSourceByEntity()
- 类型: 响应式方法
- 描述: 根据数据删除数据源。
- 入参:
records
(ActiveRecords): 数据记录。predict?
(DeleteActiveRecordsByEntityPredict): 删除判定。
@Widget.Method()
@Widget.Provide()
public deleteDataSourceByEntity(records: ActiveRecords, predict?: DeleteActiveRecordsByEntityPredict) {}
parentFlushDataSource()
- 类型: 响应式方法
- 描述: 上级刷新数据源函数(数据向上提交)。
@Widget.Method()
@Widget.Inject('flushDataSource')
protected parentFlushDataSource: FlushActiveRecordsFunction | undefined;
flushDataSource()
- 类型: 响应式方法
- 描述: 刷新数据源(数据向上提交)。
@Widget.Method()
@Widget.Provide()
public flushDataSource() {}
getCurrentActiveRecords()
- 类型: 非响应式方法
- 描述: 获取当前数据记录。
- 返回值:
res
(ActiveRecord[] | undefined): 当前根数据
public getCurrentActiveRecords(): ActiveRecord[] | undefined {}
setCurrentActiveRecords()
- 类型: 非响应式方法
- 描述: 设置当前数据记录,修复数据记录,并强制改为列表(返回值可能为空)。
- 入参:
activeRecords
(ActiveRecords | undefined): 根数据
public setCurrentActiveRecords(activeRecords: ActiveRecords | undefined) {}
parentReloadActiveRecords()
- 类型: 响应式方法
- 描述: 上级重新加载数据记录函数。
- 入参:
records
(ActiveRecords | undefined): 数据记录。
@Widget.Method()
@Widget.Inject('reloadActiveRecords')
protected parentReloadActiveRecords: ReloadActiveRecordsFunction | undefined;
reloadActiveRecords()
- 类型: 响应式方法
- 描述: 重新加载数据记录到当前数据记录中。
- 入参:
records
(ActiveRecords | undefined): 数据记录。
@Widget.Method()
@Widget.Provide()
public reloadActiveRecords(records: ActiveRecords | undefined) {}
parentPushActiveRecords()
- 类型: 响应式方法
- 描述: 上级添加数据记录函数。
- 入参:
records
(ActiveRecords): 数据predict?
(PushActiveRecordsPredict): 推送判定
@Widget.Method()
@Widget.Inject('pushActiveRecords')
protected parentPushActiveRecords: PushActiveRecordsFunction | undefined;
pushActiveRecords()
- 类型: 响应式方法
- 描述: 添加数据记录到当前数据记录中。
- 入参:
records
(ActiveRecords): 数据predict?
(PushActiveRecordsPredict): 推送判定
@Widget.Method()
@Widget.Provide()
public pushActiveRecords(records: ActiveRecords, predict?: PushActiveRecordsPredict) {}
parentUpdateActiveRecords()
- 类型: 响应式方法
- 描述: 上级根据索引更新数据记录函数。
- 入参:
records
(UpdateEntity[]): 数据
@Widget.Method()
@Widget.Inject('updateActiveRecords')
protected parentUpdateActiveRecords: UpdateActiveRecordsFunction | undefined;
updateActiveRecords()
- 类型: 响应式方法
- 描述: 根据索引更新数据记录。
- 入参:
records
(UpdateEntity[]): 数据
@Widget.Method()
@Widget.Provide()
public updateActiveRecords(records: UpdateEntity[]) {}
parentUpdateActiveRecordsByEntity()
- 类型: 响应式方法
- 描述: 上级根据数据更新数据记录函数。
- 入参:
records
(ActiveRecords): 数据记录。updatePredict?
(UpdateActiveRecordsByEntityPredict): 更新判定。
@Widget.Method()
@Widget.Inject('updateActiveRecordsByEntity')
protected parentUpdateActiveRecordsByEntity: UpdateActiveRecordsByEntityFunction | undefined;
updateActiveRecordsByEntity()
- 类型: 响应式方法
- 描述: 根据数据更新数据记录。
- 入参:
records
(ActiveRecords): 数据记录。updatePredict?
(UpdateActiveRecordsByEntityPredict): 更新判定。
@Widget.Method()
@Widget.Provide()
public updateActiveRecordsByEntity(records: ActiveRecords, updatePredict?: UpdateActiveRecordsByEntityPredict) {}
parentDeleteActiveRecords()
- 类型: 响应式方法
- 描述: 上级根据索引删除数据记录函数。
- 入参:
recordIndexes
(number[]): 数据
@Widget.Method()
@Widget.Inject('deleteActiveRecords')
protected parentDeleteActiveRecords: DeleteActiveRecordsFunction | undefined;
deleteActiveRecords()
- 类型: 响应式方法
- 描述: 根据索引删除数据记录。
- 入参:
recordIndexes
(number[]): 数据
@Widget.Method()
@Widget.Provide()
public deleteActiveRecords(recordIndexes: number[]) {}
parentDeleteActiveRecordsByEntity()
- 类型: 响应式方法
- 描述: 上级根据数据删除数据记录函数。
- 入参:
records
(ActiveRecords): 数据记录。predict?
(DeleteActiveRecordsByEntityPredict): 删除判定。
@Widget.Method()
@Widget.Inject('deleteActiveRecordsByEntity')
protected parentDeleteActiveRecordsByEntity: DeleteActiveRecordsByEntityFunction | undefined;
deleteActiveRecordsByEntity()
- 类型: 响应式方法
- 描述: 根据数据删除数据记录。
- 入参:
records
(ActiveRecords): 数据记录。predict?
(DeleteActiveRecordsByEntityPredict): 删除判定。
@Widget.Method()
@Widget.Provide()
public deleteActiveRecordsByEntity(records: ActiveRecords, predict?: DeleteActiveRecordsByEntityPredict) {}
parentFlushActiveRecords()
- 类型: 响应式方法
- 描述: 上级刷新数据记录函数(数据向上提交)。
@Widget.Method()
@Widget.Inject('flushActiveRecords')
protected parentFlushActiveRecords: FlushActiveRecordsFunction | undefined;
flushActiveRecords()
- 类型: 响应式方法
- 描述: 刷新数据记录(数据向上提交)。
@Widget.Method()
@Widget.Provide()
public flushActiveRecords() {}
BaseRuntimePropertiesWidget
基础运行时属性部件类,用于处理运行时的属性和方法的通用功能。默认使用 BaseRuntimePropertiesWidget.ts
作为该功能的基类,该类继承了ActiveRecordsWidget
。
export class BaseRuntimePropertiesWidget<
Props extends ActiveRecordsWidgetProps = ActiveRecordsWidgetProps
> extends ActiveRecordsWidget<Props> {}
属性
parentOpenerDataSource
: 响应式变量,表示父级数据源。openerDataSource
: 响应式变量,表示从父级数据源获取的当前数据源。parentOpenerActiveRecords
: 响应式变量,表示父级活动记录。openerActiveRecords
: 响应式变量,表示从父级活动记录获取的当前活动记录。supportClientTypes
: 响应式变量,表示支持的客户端类型。isSupportPCClient
: 响应式变量,表示是否支持 PC 客户端展示。isSupportMobileClient
: 响应式变量,表示是否支持移动客户端展示。isSupportCurrentClient
: 响应式变量,表示是否支持当前客户端展示。invisible
: 响应式变量,表示不可见状态。model
: 非响应式变量,表示运行时模型。viewAction
: 非响应式变量,表示运行时视图动作。view
: 非响应式变量,表示运行时视图。initialValue
: 非响应式变量,表示视图初始值。initialContext
: 非响应式变量,表示视图初始上下文。urlParameters
: 非响应式变量,表示 URL 参数。loading
: 响应式变量,表示加载状态。
方法
getUrlParameters()
- 类型: 非响应式方法
- 描述: 获取
url
参数,可用于内联组件 - 返回值:
page
(UrlQueryParameters):url
参数对象。
public getUrlParameters(): UrlQueryParameters {}
load<R>()
- 类型: 非响应式方法
- 描述: 加载状态调用函数,通过设置
loading
属性控制加载状态。 - 入参:
fn
((...args) => R): 要调用的函数。args
: 函数的参数。
- 返回值:
res
(Promise<R>
): 函数的返回值。
public async load<R>(fn: (...args) => R, ...args): Promise<R> {}
字段通用
BaseDataWidget
基础数据部件类,用于处理数据标识和路径的通用功能。默认使用 BaseDataWidget.ts
作为该功能的基类,该类继承了BaseRuntimePropertiesWidget
。
export class BaseDataWidget<
Props extends ActiveRecordsWidgetProps = ActiveRecordsWidgetProps
> extends BaseRuntimePropertiesWidget<Props> {}
属性
itemData
: 响应式变量,表示数据交互标识。itemName
: 响应式变量,表示数据提交标识。parentDataPath
: 响应式变量,表示上级数据路径。subDataPath
: 响应式变量,表示当前数据子路径。subDataIndex
: 响应式变量,表示当前数据子路径索引。currentDataPath
: 响应式变量,表示当前数据路径。dataPath
: 响应式变量,表示完整路径。
表单字段通用
BaseFormItemWidget
基础表单项类,用于处理表单项的通用功能。它包含了视图模式、提交类型、关联更新类型等功能,并提供了表单项值的获取、设置、验证等方法。默认使用 BaseFormItemWidget.ts
作为该功能的基类,该类继承了BaseDataWidget
。
export class BaseFormItemWidget<
Value = unknown,
Props extends BaseFormItemWidgetProps = BaseFormItemWidgetProps
> extends BaseDataWidget<Props> {}
参数
viewType
: 响应式Inject
变量,表示视图类型。parentViewMode
: 响应式Inject
变量,表示父组件的视图模式,视图模式是视图类型更具备操作性的定义,相同的视图类型会有不同模式进行描述。viewMode
: 响应式Provide
变量,表示当前组件的视图模式,表格视图始终为编辑模式,默认为父视图模式。parentSubmitType
: 响应式Inject
变量,表示父组件的数据提交类型。currentSubmitType
: 响应式变量,表示当前组件的数据提交类型。submitType
: 响应式Provide
变量,表示当前组件的数据提交类型,优先级 currentSubmitType > this.getDsl().submitType > parentSubmitType > SubmitType.default。parentRelationUpdateType
: 响应式Inject
变量,表示父组件的关联关系数据更新类型。currentRelationUpdateType
: 响应式变量,表示当前组件的关联关系数据更新类型。relationUpdateType
: 响应式Provide
变量,表示当前组件的关联关系数据更新类型,优先级 currentRelationUpdateType > this.getDsl().relationUpdateType > parentRelationUpdateType > RelationUpdateType.default。reloadFormData$
: 非响应式变量,表示用于处理刷新表单数据的可观察对象,与BehaviorSubContext
一样,区别在于第一次不会发射默认值。formData
: 响应式变量,表示当前表单数据。submitCallChaining
: 响应式变量,表示提交链式调用(钩子)。validatorCallChaining
: 响应式变量,表示验证链式调用(钩子)。value
: 响应式变量,表示真实输入值(没有前后缀值)。layout
: 响应式变量,表示定义了表单项标签和输入控件排列方式: 水平 | 横向。label
: 响应式变量,表示表单项的标题名称。labelInvisible
: 响应式变量,表示是否隐藏表单项的标题名称。优先级 BooleanHelper.isFalse(this.label) > !!BooleanHelper.toBoolean(this.getDsl().labelInvisible)help
: 响应式变量,表示表单项帮助信息,tooltip 形式hint
: 响应式变量,表示表单项提示信息,输入框下方形式required
: 响应式变量,表示表单项是否必填。readonly
: 响应式变量,表示表单项是否只读。disabled
: 响应式变量,表示表单项是否禁用。requiredTips
: 响应式变量,表示必填项的提示文本,表单项校验后触发显示。defaultValidateTrigger
: 非响应式变量,表示触发表单项验证的默认事件数组,默认只有 blur 事件。validateTrigger
: 响应式变量,表示触发表单项验证的事件数组,优先级 this.getDsl().validateTrigger > this.defaultValidateTrigger。validation
: 响应式变量,表示表单项的验证信息。validatorInfo
: 响应式变量,表示表单项的验证信息。blurValue
: 响应式变量,表示上一次失焦时的表单项值。clearFields
: 响应式变量,表示dsl
中定义的需清空的字段。constructDataTrigger
: 响应式变量,表示构造数据触发器,优先级this.getDsl().constructDataTrigger
>this.defaultConstructDataTrigger()
。clearFieldsTrigger
: 响应式变量,表示构造数据触发器,优先级this.getDsl().clearFieldsTrigger
>this.defaultClearFieldsTrigger()
。
方法
getValue()
- 类型: 非响应式方法
- 描述: 获取表单项真实输入值。
- 返回值:
value
(Value | null | undefined): 真实输入值。
@Widget.Method()
public getValue(): Value | null | undefined {}
setValue()
- 类型: 非响应式方法
- 描述: 更改表单项的值。
- 入参:
value
(Value | null | undefined): 要设置的新值。
@Widget.Method()
public setValue(value: Value | null | undefined) {}
compute()
- 类型: 非响应式方法
- 描述: 计算表单项的值,这里为真实输入值。
- 返回值:
value
(Value | null | undefined): 表单项真实输入值。
@Widget.Method()
public compute(): Value | null | undefined {}
setBlurValue()
- 类型: 非响应式方法
- 描述: 更改表单项的失焦值。
- 入参:
val
(any): 要设置的失焦新值。
@Widget.Method()
public setBlurValue(val) {}
change()
- 类型: 响应式方法
- 描述: 更改表单项的值,并执行相应的后续操作。
- 入参:
value
(Value | null | undefined): 要设置的新值。
@Widget.Method()
public change(value: Value | null | undefined) {}
focus()
- 类型: 响应式方法
- 描述: 聚焦事件,设置上一次失焦值。
@Widget.Method()
public focus() {}
blur()
- 类型: 响应式方法
- 描述: 失焦事件,如果
validateTrigger
包含ValidateTrigger.BLUR
事件,执行相应的校验逻辑,最后触发this.afterBlur
回调。
@Widget.Method()
public blur() {}
afterBlur()
- 类型: 非响应式方法
- 描述: 设置上一次失焦值,执行失焦后触发器,
public afterBlur() {}
defaultConstructDataTrigger()
- 类型: 非响应式方法
- 描述: 获取默认数据构建触发器,为
[WidgetTrigger.BLUR]
。 - 返回值:
value
(WidgetTrigger[]): 触发器数组。
public defaultConstructDataTrigger() {}
defaultClearFieldsTrigger()
- 类型: 非响应式方法
- 描述: 获取默认清空字段触发器,为
[WidgetTrigger.BLUR]
, - 返回值:
value
(WidgetTrigger[]): 触发器数组。
public defaultClearFieldsTrigger() {}
afterTriggerExecute()
- 类型: 非响应式方法
- 描述: 触发器执行后的回调,用于处理触发器执行后的逻辑,如重新构建表单数据,清空表单数据等
- 返回值:
trigger
(WidgetTrigger): 触发器。
public afterTriggerExecute(trigger: WidgetTrigger) {}
blurValueChange()
- 类型: 非响应式方法
- 描述: 失焦值是否发生了改变
- 返回值:
- (boolean): 是否改变。
public blurValueChange(): boolean {}
constructDataBack()
- 类型: 非响应式方法
- 描述: 构造数据回填,判断后端数据是否和目标激活数据发生变化
- 返回值:
- (
Promise<boolean>
): 数据是否发生变化。
- (
public constructDataBack(): Promise<boolean> {}
generatorConstructMirrorSubmitData()
- 类型: 非响应式方法
- 描述: 生成构造镜像提交数据,默认返回当前字段的激活数据
- 返回值:
- (ActiveRecord): 当前字段的活动记录数据。
public generatorConstructMirrorSubmitData(): ActiveRecord {}
clearFieldsCallback()
- 类型: 非响应式方法
- 描述: 清空字段回调
- 返回值:
- (boolean): 是否清空了字段。
public clearFieldsCallback(): boolean {}
executeExpression()
- 类型: 非响应式方法
- 描述: 执行表达式,首先判断表达式是否为空,如果为空则返回错误值,否则如果表达式全是英文则直接返回表达式,否则执行表达式
- 入参:
- expression (string): 表达式。
- errorValue (T): 错误值。
- 返回值:
- (T | string | undefined): 表达式执行结果。
public executeExpression<T>(expression: string, errorValue?: T): T | string | undefined {}
submit()
- 类型: 非响应式方法
- 描述: 提交表单项的值的基础函数,默认返回
undefined
。 - 入参:
submitValue
(SubmitValue): 表单项的值。
- 返回值:
result
(ReturnPromise<Record<string, unknown> | SubmitRelationValue | undefined>
): 提交的结果。
public submit(submitValue: SubmitValue): ReturnPromise<Record<string, unknown> | SubmitRelationValue | undefined> {}
isSkipValidator()
- 类型: 非响应式方法
- 描述: 是否跳过验证,当不可见时跳过验证,默认返回 false。
- 返回值:
- (boolean): 是否跳过验证。
public isSkipValidator(): boolean {}
validator()
- 类型: 非响应式方法
- 描述: 执行表单项的验证逻辑,返回验证信息。
- 返回值:
valid
(Promise<ValidatorInfo>
): 包含验证信息的 Promise 对象。
public validator(): Promise<ValidatorInfo> {}
validatorByExpression()
- 类型: 非响应式方法
- 描述: 表达式校验,校验失败返回消息提示
- 入参:
expression
(string): 表达式。msg
(string): 校验失败的消息提示。
- 返回值:
res
(ValidatorInfo | undefined): 校验结果。
public validatorByExpression(expression: string, msg: string): ValidatorInfo | undefined {}
validatorSuccess()
- 类型: 非响应式方法
- 描述: 根据消息提示字符串生成验证成功信息。
- 入参:
message
(string): 消息提示。
- 返回值:
res
(ValidatorInfo): 验证成功信息。
public validatorSuccess(message?: string): ValidatorInfo {}
validatorSkip()
- 类型: 非响应式方法
- 描述: 根据消息提示字符串生成验证跳过信息。
- 入参:
message
(string): 消息提示。
- 返回值:
res
(ValidatorInfo): 验证跳过信息。
public validatorSkip(message?: string): ValidatorInfo {}
validatorError()
- 类型: 非响应式方法
- 描述: 根据消息提示字符串生成验证错误信息。
- 入参:
message
(string): 消息提示。
- 返回值:
res
(ValidatorInfo): 验证错误信息。
public validatorError(message?: string): ValidatorInfo {}
validatorWarning()
- 类型: 非响应式方法
- 描述: 根据消息提示字符串生成验证警告信息。
- 入参:
message
(string): 消息提示。
- 返回值:
res
(ValidatorInfo): 验证警告信息。
public validatorWarning(message?: string): ValidatorInfo {}
validatorValidating()
- 类型: 非响应式方法
- 描述: 根据消息提示字符串生成验证中信息。
- 入参:
message
(string): 消息提示。
- 返回值:
res
(ValidatorInfo): 验证中信息。
public validatorValidating(message?: string): ValidatorInfo {}
executeValidator()
- 类型: 非响应式方法
- 描述: 执行表单项的验证逻辑,返回验证信息。
- 返回值:
Promise<ValidatorInfo>
: 包含验证信息的 Promise 对象。
protected async executeValidator(): Promise<ValidatorInfo> {}
invisibleProcess()
- 类型: 非响应式方法
- 描述: 根据传入参数返回不可见状态,支持表达式。
- 入参:
invisible
(boolean | string): 待设置的不可见状态。
- 返回值:
invisible
(boolean | string): 表达式执行结果。
protected invisibleProcess(invisible: boolean | string): boolean | undefined {}
childrenInvisibleProcess()
- 类型: 非响应式方法
- 描述: 判断是否所有
children
都不可见,默认返回false
。 - 返回值:
res
(boolean): 是否所有children
都不可见。
protected childrenInvisibleProcess(): boolean {}
BaseFieldWidget
基础字段类,用于处理字段通用功能。默认使用 BaseFieldWidget.ts
作为该功能的基类,该类继承了BaseFormItemWidget
。
参数
field
: 响应式变量,表示当前字段的定义。label
: 响应式变量,表示字段的标签,优先级顺序:DSL 中的标签 > 字段的标签 > 字段的显示名称。required
: 响应式变量,表示是否为必填字段,详情、查看、搜索视图始终为false
,默认为false
。readonly
: 响应式变量,表示是否为只读字段,搜索视图始终为false
,详情、查看视图时始终为true
,默认为false
。ownEventListeners
: 非响应式变量,表示字段内部生命周期事件监听器。
SPI 配置
Token
- 类型: 非响应式静态属性
- 描述: 用于字段向 SPI 中注册 Token 匹配规则。
public static Token: SPITokenFactory<BaseFieldOptions>;
Selector
- 类型: 非响应式静态属性
- 描述: 用于分析字段 DSL、组件属性、上下文信息,返回相应字段的构造函数。
public static Selector: SPISingleSelector<BaseFieldOptions, Constructor<BaseFieldWidget>>;
方法
isSkipValidator()
- 类型: 非响应式方法
- 描述: 是否跳过校验,当 DSL 中指定视图为搜索视图、组件不可见时为
true
,默认为false
。 - 返回值:
boolean
: 是否跳过校验。
protected get isSkipValidator(): boolean {}
validatorSpecific()
- 类型: 非响应式方法
- 描述: 具体的校验逻辑,从 DSL 中获取匹配模式和正则表达式,执行匹配,匹配模式优先级高于正则表达式。
- 入参:
needCheckedValue
(any): 待校验值。
- 返回值:
result
(Promise<ValidatorInfo>
): 校验信息。
protected async validatorSpecific(needCheckedValue: any): Promise<ValidatorInfo> {}
change()
- 类型: 响应式方法
- 描述: 字段值改变时的处理,触发字段改变生命周期
LifeCycleTypes.ON_FIELD_CHANGE
。 - 入参:
val
(Value | null | undefined): 新值。
@Widget.Method()
public change(val: Value | null | undefined) {}
focus()
- 类型: 响应式方法
- 描述: 字段获得焦点时的处理,触发字段焦点生命周期
LifeCycleTypes.ON_FIELD_FOCUS
。
@Widget.Method()
public focus() {}
blur()
- 类型: 响应式方法
- 描述: 字段失去焦点时的处理,触发字段失去焦点生命周期
LifeCycleTypes.ON_FIELD_BLUR
。
@Widget.Method()
public blur() {}
executeValidator()
- 类型: 非响应式方法
- 描述: 执行父类校验逻辑,校验开始时触发生命周期
LifeCycleTypes.ON_FIELD_VALIDATE_START
,如果校验成功触发生命周期LifeCycleTypes.ON_FIELD_VALIDATE_SUCCESS
,校验失败触发生命周期LifeCycleTypes.ON_FIELD_VALIDATE_FAILED
,校验结束时触发生命周期LifeCycleTypes.ON_FIELD_VALIDATE_END
。 - 返回值:
result
(Promise<ValidatorInfo>
): 校验信息。
public async executeValidator(): Promise<ValidatorInfo> {}
submit()
- 类型: 非响应式方法
- 描述: 根据字段
itemName
[占位符,链接到 BaseDataWidget itemName]、字段计算的输入值、关联字段,生成提交数据。 - 入参:
submitValue
(SubmitValue): 待提交时的表单数据和关联字段数据。
- 返回值:
result
(ReturnPromise<Record<string, unknown> | SubmitRelationValue | undefined>
): 生成字段名和输入值的键值对或关联字段提交值或undefined
。
public submit(submitValue: SubmitValue): ReturnPromise<Record<string, unknown> | SubmitRelationValue | undefined> {}
validator()
- 类型: 非响应式方法
- 描述: 执行字段校验逻辑。
- 返回值:
result
(Promise<ValidatorInfo>
): 校验信息。
public validator(): Promise<ValidatorInfo> {}
notify()
- 类型: 非响应式方法
- 描述: 发送生命周期通知。
- 入参:
type
(LifeCycleTypes): 生命周期类型。
protected notify(type: LifeCycleTypes) {}
$$beforeCreated()
- 类型: 非响应式方法
- 描述: 组件创建前的生命周期钩子。
protected $$beforeCreated() {}
$$created()
- 类型: 非响应式方法
- 描述: 组件创建后的生命周期钩子。
protected $$created() {}
$$beforeMount()
- 类型: 非响应式方法
- 描述: 组件挂载前的生命周期钩子。
protected $$beforeMount() {}
$$mounted()
- 类型: 非响应式方法
- 描述: 组件挂载后的生命周期钩子,触发字段挂载生命周期。
protected $$mounted() {}
$$beforeUpdate()
- 类型: 非响应式方法
- 描述: 组件更新前的生命周期钩子。
protected $$beforeUpdate() {}
$$updated()
- 类型: 非响应式方法
- 描述: 组件更新后的生命周期钩子。
protected $$updated() {}
$$beforeUnmount()
- 类型: 非响应式方法
- 描述: 组件卸载前的生命周期钩子。
protected $$beforeUnmount() {}
$$unmounted()
- 类型: 非响应式方法
- 描述: 组件卸载后的生命周期钩子,触发字段卸载生命周期。
protected $$unmounted() {}
fieldWidgetMounted()
- 类型: 响应式方法
- 描述: 字段挂载生命周期注入方法。
@Widget.Method()
@Widget.Inject()
protected fieldWidgetMounted: ((widget: PathWidget) => void) | undefined;
fieldWidgetUnmounted()
- 类型: 响应式方法
- 描述: 字段卸载生命周期注入方法。
@Widget.Method()
@Widget.Inject()
protected fieldWidgetUnmounted: ((widget: PathWidget) => void) | undefined;
on()
- 类型: 非响应式方法
- 描述: 监听字段的事件,重载支持两种注册方式:
- 单个事件监听 fieldWidget.on('change', (fieldInstance) => {})。
- 多个事件监听 fieldWidget.on({ change: (fieldInstance) => {},blur: (fieldInstance) => {} })。
public on(event: FieldEventName | { [key in FieldEventName]?: HandlerEvent }, handler?: HandlerEvent) {}
FormFieldWidget
表单字段类,用于处理表单字段通用功能。默认使用 FormFieldWidget.ts
作为该功能的基类,该类继承了BaseFieldWidget
。
export class FormFieldWidget<
Value = unknown,
Field extends RuntimeModelField = RuntimeModelField,
Props extends BaseFieldProps<Field> = BaseFieldProps<Field>
> extends BaseFieldWidget<Value, Field, Props> {}
参数
allowClear
: 响应式变量,表示是否允许清除字段的值,默认值为true
。placeholder
: 响应式变量,表示字段的占位符,支持执行表达式和多语言翻译。emptyStyle
: 响应式变量,表示空值的填充内容。
方法
compute()
- 类型: 非响应式方法
- 描述: 计算字段的值,执行字段的计算逻辑,包括处理关联字段和执行表达式。
- 返回值:
Value | null | undefined
: 计算后的值。
protected compute(): Value | null | undefined {}
getCompute()
- 类型: 非响应式方法
- 描述: 获取字段的计算表达式,处理关联字段的情况。
- 入参:
contextData
(ActiveRecord): 上下文数据。
- 返回值:
_compute
(string | undefined): 计算表达式。
protected getCompute(contextData: ActiveRecord) {}
updateValue()
- 类型: 非响应式方法
- 描述: 更新字段的值,处理关联字段的情况。
- 入参:
val
(Value | null | undefined): 要更新的值。
protected updateValue(val: Value | null | undefined) {}
updateRelatedValue()
- 类型: 非响应式方法
- 描述: 根据关联字段的路径,逐级访问嵌套对象,更新关联字段的值。
- 入参:
relatedFields
(string[]): 关联字段的路径数组。val
(Value | null | undefined): 待更新的值。
- 返回值:
result
(boolean): 更新是否成功。
protected updateRelatedValue(relatedFields: string[], val: Value | null | undefined): boolean {}
FormInputAbstractFieldWidget
输入型组件抽象类,用于处理带有前缀和后缀的输入框的通用功能。默认使用 FormInputAbstractFieldWidget.ts
作为该功能的基类,继承了 FormFieldWidget
。
export class FormInputAbstractFieldWidget<
Value = string,
Field extends RuntimeModelField = RuntimeModelField
> extends FormFieldWidget<Value, Field> {}
参数
showPrefix
: 响应式变量,表示是否展示前缀,默认值为false
。showSuffix
: 响应式变量,表示是否展示后缀,默认值为false
。prefix
: 响应式变量,表示前缀具体内容。suffix
: 响应式变量,表示后缀具体内容。independentlyEditable
: 响应式变量,表示是否启用单字段编辑,默认值为false
。prefixType
: 响应式变量,表示前缀类型。suffixType
: 响应式变量,表示后缀类型。prefixStore
: 响应式变量,表示前缀是否存储,默认值为false
。suffixStore
: 响应式变量,表示后缀是否存储,默认值为false
。prefixes
: 响应式变量,表示前缀数组,用于前缀下拉多选。mode
: 响应式变量,表示输入媒体模式,默认为InputMediaMode.DYNAMIC
。type
: 响应式变量,表示输入框类型。inputRealValue
: 响应式变量,表示真实输入值,即不包含前后缀。prefixesValue
: 响应式变量,表示激活使用的前缀值。
方法
addPrefixSuffix()
- 类型: 非响应式方法
- 描述: 为输入值添加前缀和后缀。
- 入参:
e
(string): 待处理的输入值。
- 返回值:
handledValue
(string): 处理后的输入值。
@Widget.Reactive()
protected addPrefixSuffix(e: string) {}
removePrefixSuffix()
- 类型: 非响应式方法
- 描述: 从输入值中移除前缀和后缀。
- 入参:
e
(string): 待处理的输入值。
- 返回值:
handledValue
(string): 处理后的输入值。
@Widget.Reactive()
protected removePrefixSuffix(e: string) {}
changeInputRealValue()
- 类型: 非响应式方法
- 描述: 更改输入实际值,并添加前缀和后缀,并调用
change
方法。 - 入参:
val
(any): 新值。
@Widget.Reactive()
public changeInputRealValue(val) {}
changePrefixesValue()
- 类型: 非响应式方法
- 描述: 更改前缀值,并更新输入值。
- 入参:
val
(any): 新的前缀值。
@Widget.Reactive()
public changePrefixesValue(val) {}
FormNumberAbstractFieldWidget
表单整数抽象类,用于抽象表单数字输入功能。默认使用 FormNumberAbstractFieldWidget.ts
作为该功能的基类,表单整数字段继承了 FormInputAbstractFieldWidget
。
export class FormNumberAbstractFieldWidget<
Value extends NumberValue | NumberValue[] = NumberValue | NumberValue[]
> extends FormInputAbstractFieldWidget<Value, RuntimeNumberField> {}
参数
unit
: 响应式变量,表示数字的单位。showThousandth
: 响应式变量,表示是否显示千分位分隔符。size
: 响应式变量,表示数字输入的位数,包含小数位。precision
: 响应式变量,表示数字的小数位数。
FormEnumFieldAbstractWidget
表单枚举抽象类,用于抽象表单枚举输入功能。默认使用 FormEnumFieldAbstractWidget.ts
作为该功能的基类,表单整数字段继承了 FormFieldWidget
。
export abstract class FormEnumFieldAbstractWidget<
Value extends EnumerationValue | EnumerationValue[] =
| EnumerationValue
| EnumerationValue[]
> extends FormFieldWidget<Value, RuntimeEnumerationField> {}
属性
options
: 响应式变量,表示获取枚举字段的可用选项。autocorrection
: 响应式变量,表示用于控制是否自动纠正值,移除不可见选项。orientation
: 响应式变量,表示单选框的排列方式。radioMode
: 响应式变量,表示单选框的模式,可选值为 button,默认为 radio。optionColor
: 响应式变量,表示获取是否开启选项颜色,如果开启则会根据选项的值自动设置颜色,是否显示颜色,默认为true
。optionColorStyle
: 响应式变量,表示表示选项颜色样式,默认为OptionColorStyle.COLORFUL
。maxNumber
: 响应式变量,表示多选最多选择的个数。minNumber
: 响应式变量,表示多选最小选择数量。renderOnParent
: 响应式变量,表示是否在父元素上渲染,默认为false
。
方法
defaultConstructDataTrigger()
- 类型: 非响应式方法
- 描述: 获取构造数据触发器数组,当触发的事件在数组中时,会触发数据的重新计算。默认返回[WidgetTrigger.CHANGE]。
- 返回值:
Array<WidgetTrigger>
:数据触发器数组。
protected defaultConstructDataTrigger() {}
defaultClearFieldsTrigger()
- 类型: 非响应式方法
- 描述: 清空数据触发器数组,当触发的事件在数组中时,会触发
clearFields
的清空。默认返回[WidgetTrigger.CHANGE]。 - 返回值:
Array<WidgetTrigger>
:清空数据触发器数组。
protected defaultClearFieldsTrigger() {}
compute()
- 类型: 非响应式方法
- 描述: 计算字段的值。
- 返回值:
any
:计算后的字段值。
protected compute() {}
getPopupContainer()
- 类型: 非响应式方法
- 描述: 获取弹出层的容器,默认为 body,如果 renderOnParent 为 true,则为父元素。
- 返回值:
res
((triggerNode) => HTMLElement | null):弹出层的容器。
protected get getPopupContainer() {}
fetchLabelByValue()
- 类型: 响应式方法
- 描述: 根据
value
和选项配置获取label
。 - 入参:
value
(any): 要获取label
的值。
- 返回值:
res
( string | undefined):获取到的label
。
protected fetchLabelByValue(value) {}
validator()
- 类型: 非响应式方法
- 描述: validator 异步校验,执行父类的验证逻辑,然后验证数据存在性,多选的最大最小选择个数。
- 返回值:
res
(Promise<ValidatorInfo>
):校验信息的 Promise 对象。
public async validator(): Promise<ValidatorInfo> {}
getAvailableOptions()
- 类型: 非响应式方法
- 描述: 获取枚举字段的可用选项,从 xml 配置中获取,如果没有则从元数据中获取,并处理处理可见性、翻译显示名称、翻译标签。
- 返回值:
xmlOptions
(Array<RuntimeEnumerationOption>
):枚举字段的可用选项数组。
protected getAvailableOptions(): RuntimeEnumerationOption[] {}
handleOptions()
- 类型: 非响应式方法
- 描述: 处理和过滤枚举字段的选项,防止 xml 配置比元数据多的情况。
- 入参:
ops
(RuntimeEnumerationOption[]): 要处理和过滤的选项数组。
- 返回值:
realOptions
(RuntimeEnumerationOption[]):处理后的选项数组。
protected handleOptions(ops: RuntimeEnumerationOption[]): RuntimeEnumerationOption[] {}
getMetaOptionNames()
- 类型: 非响应式方法
- 描述: 获取元数据中的选项配置的
name
数组。 - 返回值:
res
(string[]):选项配置的name
数组。
protected getMetaOptionNames() {}
FormRangeFieldsWidget
表单范围抽象类,用于抽象表单范围输入功能。默认使用 FormRangeFieldsWidget.ts
作为该功能的基类,表单整数字段继承了 BaseFormItemWidget
。
export class FormRangeFieldsWidget<
Value = unknown,
Field extends RuntimeModelField = RuntimeModelField,
Props extends FormRangeWidgetProps = FormRangeWidgetProps
> extends BaseFormItemWidget<[Value, Value], Props> {}
属性
startField
: 非响应式变量,表示范围字段的开始字段。endField
: 非响应式变量,表示范围字段的结束字段。itemData
: 响应式变量,表示数据交互标识。itemName
: 响应式变量,表示数据提交标识。startDefaultValue
: 响应式变量,表示开始字段默认值。endDefaultValue
: 响应式变量,表示结束字段默认值。
方法
getValue()
- 类型: 非响应式方法
- 描述: 获取表单项真实输入值。
- 返回值:
res
([Value, Value] | null | undefined):表单项真实输入值。
public getValue(): [Value, Value] | null | undefined {}
setValue()
- 类型: 非响应式方法
- 描述: 更改表单项的值。
- 入参:
value
([Value, Value] | null | undefined): 要设置的新值。
public setValue(value: [Value, Value] | null | undefined) {}
submit()
- 类型: 非响应式方法
- 描述: 获取待提交表单项的数据。
- 返回值:
res
(Record<string, unknown>
):待提交表单项的数据。
public submit(): Record<string, unknown> {}
validator()
- 类型: 非响应式方法
- 描述: 执行表单项的验证逻辑,如果不跳过校验,进行
required
必填校验,和父类验证逻辑,返回验证信息。 - 返回值:
res
(Promise<ValidatorInfo>
):包含验证信息的 Promise 对象。
public async validator(): Promise<ValidatorInfo> {}
表格字段通用
BaseTableColumnWidget
基础表格列类,用于处理表格列通用功能。默认使用 BaseTableQuickOperationColumnWidget.ts
作为该功能的基类,该类继承了BaseDataWidget
。
export abstract class BaseTableColumnWidget<
Value = unknown,
Props extends ActiveRecordsWidgetProps = ActiveRecordsWidgetProps
> extends BaseDataWidget<Props> {}
参数
tableInstance
: 非响应式变量,表示表格实例。submitCallChaining
: 响应式变量,表示提交链式调用(钩子)。validatorCallChaining
: 响应式变量,表示验证链式调用(钩子)。columnType
: 响应式变量,表示表格列类型。width
: 响应式变量,表示列宽度。minWidth
: 响应式变量,表示列最小宽度。label
: 响应式变量,表示字段的标题名称。align
: 响应式变量,表示列对齐方式。required
: 响应式变量,表示是否必填。headerAlign
: 响应式变量,表示表头对齐方式。footerAlign
: 响应式变量,表示表尾列的对齐方式。fixed
: 响应式变量,表示将列固定在左侧或者右侧。resizable
: 响应式变量,表示是否允许拖动列宽调整大小。tableSortable
: 响应式变量,表示注入父组件sortable
可排序状态。sortable
: 响应式变量,表示可排序状态,优先级this.getDsl().sortable
>this.tableSortable
>false
。invisible
: 响应式变量,表示不可见状态,优先级this.clientInvisible
>this.getDsl().invisible
>false
。clientInvisible
: 响应式变量,表示客户端不可见状态。existExpandRow
: 响应式变量,表示是否存在展开行。tableEditable
: 响应式变量,表示注入父组件是否启用字段编辑状态。editable
: 响应式变量,表示可编辑状态。editorTrigger
: 响应式变量,表示表格编辑模式触发方式,[占位符TableEditorTrigger
类型]。editorMode
: 响应式变量,表示表格编辑模式,[占位符TableEditorMode
类型]。editorCloseTrigger
: 响应式变量,表示表格编辑模式关闭触发,[占位符TableEditorCloseTrigger
类型]。currentEditorContext
: 响应式变量,表示当前行内编辑上下文。
方法
getTableInstance()
- 类型: 非响应式方法
- 描述: 获取
table
实例。 - 返回值:
tableInstance
(OioTableInstance | undefined): 表格实例
public getTableInstance(): OioTableInstance | undefined {}
setTableInstance()
- 类型: 响应式方法
- 描述: 设置
table
实例。 - 入参:
tableInstance
(OioTableInstance | undefined): 要设置的表格实例
@Widget.Method()
private setTableInstance(tableInstance: OioTableInstance | undefined) {}
getValue()
- 类型: 非响应式方法
- 描述: 根据行上下文数据,获取当前列的值。
- 入参:
context
(RowContext): 行上下文
- 返回值:
value
(Value | null | undefined): 当前列的值
public getValue(context: RowContext): Value | null | undefined {}
setValue()
- 类型: 非响应式方法
- 描述: 修改行上下文数据当前列的值。
- 入参:
context
(RowContext): 行上下文val
(Value | null | undefined): 要设置的新值
public setValue(context: RowContext, val: Value | null | undefined) {}
compute()
- 类型: 非响应式方法
- 描述: 计算当前列的值。
- 入参:
context
(RowContext): 行上下文
- 返回值:
value
(Value | null | undefined): 当前列的值
public compute(context: RowContext): Value | null | undefined {}
className()
- 类型: 响应式方法
- 描述: 给单元格附加
className
。context
(RenderCellContext): 渲染单元格的上下文
- 返回值:
className
(string | string[] | undefined): 附加的className
@Widget.Method()
public className(context: RenderCellContext): string | string[] | undefined {}
headerClassName()
- 类型: 响应式方法
- 描述: 给表头单元格附加
className
。context
(RenderCellContext): 渲染单元格的上下文
- 返回值:
className
(string | string[] | undefined): 附加的className
@Widget.Method()
public headerClassName(context: RenderCellContext): string | string[] | undefined {}
footerClassName()
- 类型: 响应式方法
- 描述: 给表尾单元格附加
className
。context
(RenderCellContext): 渲染单元格的上下文
- 返回值:
className
(string | string[] | undefined): 附加的className
@Widget.Method()
public footerClassName(context: RenderCellContext): string | string[] | undefined {}
invisibleContent()
- 类型: 响应式方法
- 描述: 不可见内容,默认为
false
。 - 入参:
context
(RowContext): 渲染行的上下文对象。
- 返回值:
invisible
(boolean): 字段内容是否不可见。
@Widget.Method()
protected invisibleContent(context: RowContext) {}
cellEditable()
- 类型: 响应式方法
- 描述: 判断表格单元格是否可编辑的基础方法,返回
true
。 - 入参:
context
(RowContext): 渲染行的上下文对象。
- 返回值:
editable
(boolean): 表格单元格是否可编辑。
@Widget.Method()
public cellEditable(context: RowContext) {}
tableRowEditorClosedBefore()
- 类型: 响应式方法
- 描述: 上级行内编辑关闭前钩子。
- 入参:
context
(RowContext | undefined): 行上下文
- 返回值:
result
(Promise<boolean>
): 钩子执行布尔结果
@Widget.Method()
protected tableRowEditorClosedBefore: ((context: RowContext | undefined) => Promise<boolean>) | undefined;
tableRowEditorClosed()
- 类型: 响应式方法
- 描述: 上级行内编辑关闭后钩子
- 入参:
context
(RowContext | undefined): 行上下文
- 返回值:
result
(Promise<boolean>
): 钩子执行布尔结果
@Widget.Method()
protected tableRowEditorClosed: ((context: RowContext | undefined) => Promise<boolean>) | undefined;
rowEditorClosedByEnter()
- 类型: 响应式方法
- 描述: 确认方式关闭编辑,先执行验证,再执行
tableRowEditorClosed
行内编辑关闭后钩子。 - 入参:
context
(RowContext | undefined): 行上下文
- 返回值:
result
(Promise<boolean>
): 关闭编辑的结果
@Widget.Method()
protected async rowEditorClosedByEnter(context: RowContext | undefined): Promise<boolean> {}
rowEditorClosedByCancel()
- 类型: 响应式方法
- 描述: 取消方式关闭编辑,执行
tableRowEditorClosed
行内编辑关闭后钩子。 - 入参:
context
(RowContext | undefined): 行上下文
- 返回值:
result
(Promise<boolean>
): 关闭编辑的结果
@Widget.Method()
protected async rowEditorClosedByCancel(context: RowContext | undefined): Promise<boolean> {}
editorEnableConfirm()
- 类型: 响应式方法
- 描述: 是否确认编辑状态,优先级
this.getDsl().editorEnableConfirm > true
。 - 入参:
context
(RowContext): 行上下文
- 返回值:
result
(boolean): 是否确认编辑状态
@Widget.Method()
protected editorEnableConfirm(context: RowContext): boolean {}
editorConfirmType()
- 类型: 响应式方法
- 描述: 编辑确认类型,优先级
this.getDsl().editorConfirmType
>ConfirmType.POPPER
- 入参:
context
(RowContext): 行上下文
- 返回值:
result
(ConfirmType | undefined): 编辑确认类型
@Widget.Method()
protected editorConfirmType(context: RowContext): ConfirmType | undefined {}
editorConfirm()
- 类型: 响应式方法
- 描述: 编辑确认,如果开启编辑确认并且确认类型为
ConfirmType.POPPER
时,返回确认文本,否则返回undefined
。 - 入参:
context
(RowContext): 行上下文
- 返回值:
result
(string | undefined): 编辑确认文本
@Widget.Method()
protected editorConfirm(context: RowContext): string | undefined {}
editorCondition(context: RowContext)
- 类型: 响应式方法
- 描述: 编辑条件,当编辑确认不为空时,且
tableRowEditorClosedBefore
钩子返回true
时,返回true
,否则返回undefined
,如果编辑确认为空,返回false
。 - 入参:
context
(RowContext): 行上下文
- 返回值:
result
(Promise<boolean | undefined>
): 编辑条件的结果
@Widget.Method()
protected async editorCondition(context: RowContext): Promise<boolean | undefined> {}
editorConfirmText()
- 类型: 响应式方法
- 描述: 编辑确认文本,优先级
this.getDsl().editorConfirmText
>this.getDsl().editorConfirm
>undefined
。 - 入参:
context
(RowContext): 行上下文
- 返回值:
result
(string | undefined): 编辑确认文本
@Widget.Method()
protected editorConfirmText(context: RowContext): string | undefined {}
editorConfirmPosition()
- 类型: 响应式方法
- 描述: 编辑确认位置,优先级
this.getDsl().editorConfirmPosition
>PopconfirmPlacement.BM
。 - 入参:
context
(RowContext): 行上下文
- 返回值:
result
(PopconfirmPlacement): 编辑确认位置
@Widget.Method()
protected editorConfirmPosition(context: RowContext): PopconfirmPlacement {}
editorEnterText()
- 类型: 响应式方法
- 描述: 编辑确认按钮文本,优先级
this.getDsl().editorEnterText
>undefined
。 - 入参:
context
(RowContext): 行上下文
- 返回值:
result
(string | undefined): 编辑确认按钮文本
@Widget.Method()
protected editorEnterText(context: RowContext): string | undefined {}
editorCancelText()
- 类型: 响应式方法
- 描述: 编辑取消按钮文本,优先级
this.getDsl().editorCancelText
>undefined
。 - 入参:
context
(RowContext): 行上下文
- 返回值:
result
(string | undefined): 编辑取消按钮文本
@Widget.Method()
protected editorCancelText(context: RowContext): string | undefined {}
editorValidateConfirm()
- 类型: 响应式方法
- 描述: 当开启编辑确认并且确认类型为
ConfirmType.MODAL
时,获取确认文本,触发tableRowEditorClosedBefore
钩子,二次确认弹窗。 - 入参:
context
(RowContext): 行上下文
- 返回值:
result
(Promise<boolean>
): 编辑确认的验证结果
@Widget.Method()
public async editorValidateConfirm(context: RowContext): Promise<boolean> {}
renderDefaultSlot()
- 类型: 非响应式方法
- 描述: 渲染默认插槽抽象方法。
- 入参:
context
(RowContext): 行上下文
- 返回值:
result
(VNode[] | string): 渲染的内容
public renderDefaultSlot(context: RowContext): VNode[] | string | undefined {}
renderEditSlot()
- 类型: 非响应式方法
- 描述: 渲染编辑插槽抽象方法。
- 入参:
context
(RowContext): 行上下文
- 返回值:
result
(VNode[] | string): 渲染的内容
public renderEditSlot(context: RowContext): VNode[] | string | undefined {}
renderContentSlot()
- 类型: 非响应式方法
- 描述: 渲染内容插槽抽象方法。
- 入参:
context
(RowContext): 行上下文
- 返回值:
result
(VNode[] | string): 渲染的内容
public renderContentSlot(context: RowContext): VNode[] | string | undefined {}
renderHeaderSlot()
- 类型: 非响应式方法
- 描述: 渲染表头插槽抽象方法。
- 入参:
context
(RowContext): 行上下文
- 返回值:
result
(VNode[] | string): 渲染的内容
public renderHeaderSlot(context: RowContext): VNode[] | string | undefined {}
BaseTableQuickOperationColumnWidget
基础表格快速操作列类,用于渲染表头的标题和快捷操作区域通用功能。默认使用 BaseTableQuickOperationColumnWidget.ts
作为该功能的基类,该类继承了BaseTableColumnWidget
。
export abstract class BaseTableQuickOperationColumnWidget<
Value = unknown,
Props extends ActiveRecordsWidgetProps = ActiveRecordsWidgetProps
> extends BaseTableColumnWidget<Value, Props> {}
方法
renderHeaderSlot()
- 类型: 响应式方法
- 描述: 用于渲染表头的标题和快捷操作区域,最后一个列会渲染用户偏好设置。
- 入参:
context
(RowContext): 行上下文。
- 返回值:
VNode[] | string
: 包含标题和快捷操作区域的 VNode 数组或字符串。
@Widget.Method()
public renderHeaderSlot(context: RowContext): VNode[] | string {}
renderQuickOperation()
- 类型: 非响应式方法
- 描述: 用于渲染表格的快捷操作区域,添加
DefaultQuickOperationColumn
组件。 - 入参:
context
(RowContext): 行上下文。
- 返回值:
VNode | undefined
: 包含快捷操作的 VNode 或undefined
。
protected renderQuickOperation(context: RowContext): VNode | undefined {}
handleOrderByASC()
- 类型: 非响应式方法
- 描述: 处理表格的升序排序,触发
sort-change
事件。 - 入参:
table
(VxeTableConstructor & VxeTablePrivateMethods): 表格实例。column
(VxeTableDefines.ColumnInfo): 列信息。
protected handleOrderByASC(table: VxeTableConstructor & VxeTablePrivateMethods, column: VxeTableDefines.ColumnInfo) {}
handleOrderByDESC()
- 类型: 非响应式方法
- 描述: 处理表格的降序排序,触发
sort-change
事件。 - 入参:
table
(VxeTableConstructor & VxeTablePrivateMethods): 表格实例。column
(VxeTableDefines.ColumnInfo): 列信息。
protected handleOrderByDESC(table: VxeTableConstructor & VxeTablePrivateMethods, column: VxeTableDefines.ColumnInfo) {}
handleClearOrder()
- 类型: 非响应式方法
- 描述: 清空排序条件,数据会恢复成未排序的状态,触发
sort-change
事件。 - 入参:
table
(VxeTableConstructor & VxeTablePrivateMethods): 表格实例。column
(VxeTableDefines.ColumnInfo): 列信息。
protected handleClearOrder(table: VxeTableConstructor & VxeTablePrivateMethods, column: VxeTableDefines.ColumnInfo) {}
handleFreezeLeft()
- 类型: 异步非响应式方法
- 描述: 冻结列到左侧,触发
user-prefer
的保存和重载。 - 入参:
table
(VxeTableConstructor & VxeTablePrivateMethods): 表格实例。column
(VxeTableDefines.ColumnInfo): 列信息。
protected async handleFreezeLeft(
table: VxeTableConstructor & VxeTablePrivateMethods,
column: VxeTableDefines.ColumnInfo
) {}
handleFreezeRight()
- 类型: 异步非响应式方法
- 描述: 冻结列到右侧,触发
user-prefer
的保存和重载。 - 入参:
table
(VxeTableConstructor & VxeTablePrivateMethods): 表格实例。column
(VxeTableDefines.ColumnInfo): 列信息。
protected async handleFreezeRight(
table: VxeTableConstructor & VxeTablePrivateMethods,
column: VxeTableDefines.ColumnInfo
) {}
handleClearFreeze()
- 类型: 异步非响应式方法
- 描述: 清空列的冻结,触发
user-prefer
的保存和重载。 - 入参:
table
(VxeTableConstructor & VxeTablePrivateMethods): 表格实例。column
(VxeTableDefines.ColumnInfo): 列信息。
protected async handleClearFreeze(
table: VxeTableConstructor & VxeTablePrivateMethods,
column: VxeTableDefines.ColumnInfo
) {}
handleClearAllFreeze()
- 类型: 异步非响应式方法
- 描述: 清空所有列的冻结,触发
user-prefer
的保存和重载。 - 入参:
fixed
(TableFixed): 冻结的位置,可选值为TableFixed.left
、TableFixed.right
、TableFixed.all
。
protected async handleClearAllFreeze(fixed: TableFixed = TableFixed.all) {}
handleHide()
- 类型: 异步非响应式方法
- 描述: 隐藏列,触发
user-prefer
的保存和重载。 - 入参:
table
(VxeTableConstructor & VxeTablePrivateMethods): 表格实例。column
(VxeTableDefines.ColumnInfo): 列信息。
protected async handleHide(table: VxeTableConstructor & VxeTablePrivateMethods, column: VxeTableDefines.ColumnInfo) {}
consumerUserPreferManager<R>()
- 类型: 非响应式方法
- 描述: 辅助方法,用于执行传入的回调函数,该回调函数接受用户偏好管理器和用户表格偏好作为参数。
- 入参:
fn
(Function): 要执行的回调函数。
- 返回值:
R | undefined
: 执行回调函数的结果或undefined
。
protected consumerUserPreferManager<R>(
fn: (userPreferManager: UserPreferEventManager, userPrefer: UserTablePrefer) => R
): R | undefined {}
BaseTableFieldWidget
基础表格字段类,用于处理字段通用功能。默认使用 BaseTableFieldWidget.ts
作为该功能的基类,该类继承了BaseTableQuickOperationColumnWidget
。
export class BaseTableFieldWidget<
Value = unknown,
Field extends RuntimeModelField = RuntimeModelField,
Props extends BaseTableFieldWidgetProps<Field> = BaseTableFieldWidgetProps<Field>
> extends BaseTableQuickOperationColumnWidget<Value, Props> {}
属性
viewType
: 响应式变量,表示视图类型。currentEditorContext
: 响应式变量,表示当前编辑器上下文。viewMode
: 响应式变量,表示当前组件的视图模式,默认为ViewMode.Editor
。runtimeField
: 响应式变量,表示运行时字段,从props
中获取。field
: 响应式变量,表示字段。columnType
: 响应式变量,表示表格列类型,例如。minWidth
: 响应式变量,表示列最小宽度,把剩余宽度按比例分配。width
: 响应式变量,表示列宽度。fixed
: 响应式变量,表示将列固定在左侧或者右侧。expandOperationField
: 响应式变量,表示展开的操作字段。isExpandOperationField
: 响应式变量,表示是否是展开操作字段。sortable
: 响应式变量,表示判断当前字段是否可排序。relationSortFields
: 响应式变量,表示关联排序字段,默认为undefined
。invisible
: 响应式变量,表示不可见状态,优先级this.clientInvisible
>this.dslInvisible
>this.userPreferInvisible
。dslInvisible
: 响应式变量,表示 dsl 配置的不可见状态,支持表达式,默认为false
。required
: 响应式变量,表示当前字段是否为必填项,默认为false
。userPrefer
: 响应式变量,表示用户表格偏好设置。userPreferInvisible
: 响应式变量,表示用户表格偏好设置不可见状态。editable
: 响应式变量,表示可编辑状态。ownEventListeners
: 非响应式变量,表示字段内部生命周期事件监听器。
方法
computeDefaultMinWidth()
- 类型: 非响应式方法
- 描述: 计算默认最小列宽度,优先级
getTableThemeConfig()?.column?.minWidth
>defaultTableColumnMinWidthComputeContext.min
。 - 返回值:
res
(string | number | undefined): 默认最小列宽度。
@Widget.Method()
public computeDefaultMinWidth(): string | number | undefined {}
className()
- 类型: 非响应式方法
- 描述: 计算表格单元格的类名。
- 入参:
context
(RenderCellContext): 渲染单元格的上下文对象。
- 返回值:
className
(string | string[] | undefined): 单元格的类名。
@Widget.Method()
public className(context: RenderCellContext): string | string[] | undefined {}
invisibleContent()
- 类型: 响应式方法
- 描述: 不可见内容,默认为
false
。 - 入参:
context
(RowContext): 渲染行的上下文对象。
- 返回值:
invisible
(boolean): 字段内容是否不可见。
@Widget.Method()
protected invisibleContent(context: RowContext) {}
cellEditable()
- 类型: 响应式方法
- 描述: 判断表格单元格是否可编辑。
- 入参:
context
(RowContext): 渲染行的上下文对象。
- 返回值:
editable
(boolean): 表格单元格是否可编辑。
@Widget.Method()
public cellEditable(context: RowContext) {}
compute()
- 描述: 计算字段的值,根据计算表达式,获取相应字段值。
- 入参:
context
(RowContext): 渲染表格的上下文信息。
- 返回值:
res
(Value | null | undefined): 相应字段值。
public compute(context: RowContext): Value | null | undefined {}
getCompute()
- 类型: 非响应式方法
- 描述: 获取字段的计算表达式,处理关联字段的情况。
- 入参:
context
(RowContext): 渲染表格的上下文信息
- 返回值:
_compute
(string | undefined): 计算表达式。
protected getCompute(contextData: ActiveRecord) {}
editorConfirmText()
- 类型: 响应式方法
- 描述: 获取字段编辑确认文本,默认为
undefined
。 - 入参:
context
(RowContext): 渲染表格的上下文信息
- 返回值:
res
(string | undefined): 编辑确认文本。
protected editorConfirmText(context: RowContext): string | undefined {}
renderDefaultSlot()
- 类型: 响应式方法
- 描述: 渲染表格字段的默认插槽,返回字段值字符串。
- 入参:
context
(RowContext): 渲染行的上下文对象。
- 返回值:
slot
(VNode[] | string): 表格字段的默认插槽。
@Widget.Method()
public renderDefaultSlot(context: RowContext) {}
renderEditSlot(context: RowContext)
- 类型: 响应式方法
- 描述: 渲染表格字段的编辑插槽,包裹一层
EditorField
。 - 入参:
context
(RowContext): 渲染行的上下文对象。
- 返回值:
slot
(VNode[] | string): 表格字段的编辑插槽。
@Widget.Method()
public renderEditSlot(context: RowContext) {}
executeExpression()
- 类型: 非响应式方法
- 描述: 执行表达式。
- 入参:
activeRecord
(ActiveRecord | undefined): 活动记录数据。expression
(string): 表达式字符串。errorValue
(T | undefined): 错误值。
- 返回值:
result
(T | string | undefined): 表达式执行结果。
public executeExpression<T>(activeRecord: ActiveRecord | undefined, expression: string, errorValue?: T) {}
fieldWidgetMounted()
- 类型: 响应式方法
- 描述: 字段挂载后事件,在
mounted
生命周期执行。
public fieldWidgetMounted: ((widget: BaseTableFieldWidget) => void) | undefined {}
fieldWidgetUnmounted()
- 类型: 响应式方法
- 描述: 字段取消挂载后事件,在
unmounted
生命周期执行。
public fieldWidgetUnmounted: ((widget: BaseTableFieldWidget) => void) | undefined {}
on()
- 类型: 非响应式方法
- 描述: 监听字段事件监听字段的事件,重载支持两种注册方式:
- 单个事件监听 fieldWidget.on('change', (fieldInstance) => {})。
- 多个事件监听 fieldWidget.on({ change: (fieldInstance) => {},blur: (fieldInstance) => {} })。
public on(event: FieldEventName | { [key in FieldEventName]?: HandlerEvent }, handler?: HandlerEvent) {}
notify()
- 类型: 非响应式方法
- 描述: 发送生命周期通知。
- 入参:
type
(LifeCycleTypes): 生命周期类型。
protected notify(type: LifeCycleTypes) {}