跳至主要內容

通用

Mr.Hope大约 58 分钟

通用

组件通用

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 }): 属性参数,包括 displayNamerender。
  • 返回值:
    • 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 }): 监听选项,包括 deepimmediate
  • 返回值:
    • 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']): widgetinitialize 方法接收的参数。
    • specifiedIndex (number): 指定的下标。
  • 返回值:
    • T: 返回创建的 widget 实例。
public createWidget<T extends Widget>(constructor: WidgetConstructor<T['config'], T>, name?: string, config?: T['config'], specifiedIndex?: number): T {}
getHandle()
  • 类型: 非响应式方法
  • 描述: 获取当前 widgethandle
  • 返回值:
    • HANDLE: 返回当前 widgethandle
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 widgethandle
  • 返回值:
    • 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 VueVue 组件,包含生命周期和属性收集的通用功能。默认使用 VueWidget 作为该功能的基类,该类继承了 Widget

属性

  • behaviorGroup: 非响应式变量,表示组件行为事件触发器。
  • __render__: 非响应式变量,表示组件的渲染函数。
  • beforeHooks: 静态非响应式变量,Map 对象,表示存储前置钩子。
  • afterHooks: 静态非响应式变量,Map 对象,表示存储后置钩子。
  • hookHosts: 静态非响应式变量,Map 对象,表示注册的钩子的宿主。
  • opt: 非响应式变量,表示通过该属性可以直接拿到 WidgetComponent 内的属性。
  • 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,将 widgetA 下标移动到 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: 响应式变量,表示不可见状态,当 DslDefinitioninvisibletrue 时,返回 true,否则当 allInvisibletrue 时,返回 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()
  • 类型: 非响应式方法
  • 描述: 当 allInvisibletrue 时,重置不可见状态。
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.leftTableFixed.rightTableFixed.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) {}