Options
All
  • Public
  • Public/Protected
  • All
Menu

Class ViewElement

页面元素

Hierarchy

Index

Constructors

Properties

JSON_EXCLUDED_KEYS: Set<string>

toJSON 时需要去除的键,为了避免出现 CircularJSON

_mutable: boolean = true

可修改标志,内部属性 标记在构造函数结束后是否可修改

bindAttrs: BindAttribute[] = []

元素绑定属性列表

bindDirectives: BindDirective[] = []

元素指令列表

bindEvents: BindEvent[] = []

元素绑定事件列表

bindRoles: string[] = []

绑定的角色

branchName: string = undefined

分支名称

changedTime: number = undefined

变动时间

children: ViewElement[] = []

子元素列表

concept: "ViewElement" = 'ViewElement'

产品概念

dataTreeNodeHidden: boolean = false

数据树节点是否显示 前端 UI 状态

editable: boolean = undefined

是否正在编辑 前端 UI 状态

editing: boolean = false

是否正在编辑 前端 UI 状态

expanded: boolean = false

节点是否为展开状态 前端 UI 状态

hidden: boolean = false

节点是否显示 前端 UI 状态

id: string = ...

唯一 Id

isLeaf: boolean = false

是否为叶子节点 前端 UI 状态

loading: boolean = false

是否正在请求 前端 UI 状态

logicTreeNodeExpanded: boolean = false

数据树节点是否展开 前端 UI 状态

logicTreeNodeHidden: boolean = false

逻辑树节点是否显示 前端 UI 状态

name: string = undefined

页面元素名称

pageTreeNodeHidden: boolean = false

页面树节点是否显示 前端 UI 状态

parentNode: BaseNode = null

父节点

removable: boolean = undefined

是否可以删除 前端 UI 状态

roles: {}[] = []

角色

slotScope: string = undefined

插槽 scope 表达式

slotTarget: string = undefined

插槽目标

sourceMap: SourceMap = undefined

用于挂 embeddedTS 的 sourceMap

staticClass: string = undefined

静态 class 名

staticStyle: string = undefined

静态 style

tag: string = undefined

元素标签

tsErrorDetail: Diagnostic = undefined

当前节点上报错详细信息

type: 0 = undefined

类型

Accessors

  • 祖先 App

    Returns App

  • 根节点

    Returns BaseNode

  • 上层节点

    Returns BaseNode

  • 祖先 View

    Returns View

Methods

  • activeInside(source: any, Ctor: any, parentNode: any, parentKey: string): any
  • 激活 JSON 内部实例

    Parameters

    • source: any
    • Ctor: any
    • parentNode: any
    • parentKey: string

    Returns any

  • 添加元素绑定事件

    Parameters

    • bindEventOptions: Partial<BindEvent>

      元素绑定事件参数

    Returns BindEvent

  • 添加元素绑定事件

    Parameters

    • bindEvent: BindEvent

      已有的元素绑定事件实例

    Returns BindEvent

  • addParamsPrepare(): Promise<any>
  • changeName(newValue: string): Promise<any>
  • 重命名

    Parameters

    • newValue: string

    Returns Promise<any>

  • create(parentParams: Params): void
  • 创建节点

    Parameters

    • parentParams: Params

    Returns void

  • deepPick(source: any, keys?: string[]): void
  • 从对象中深度获取

    example

    比如一般后端返回只是添加了个 id

    this.deepPick(result, ['id'])
    

    Parameters

    • source: any
    • keys: string[] = []

    Returns void

  • delete(): void
  • destroy(): void
  • 销毁 从 Map 中删除点和子节点

    Returns void

  • emit(eventName: string, event?: EventPayload, target?: any): void
  • 触发事件

    Parameters

    • eventName: string

      事件名

    • Optional event: EventPayload
    • Optional target: any

    Returns void

  • findUsage(): Promise<any>
  • genActionListener(action: string): (($event: EventPayload) => void)
  • 为存储点生成行为监听器

    Parameters

    • action: string

    Returns (($event: EventPayload) => void)

      • ($event: EventPayload): void
      • Parameters

        • $event: EventPayload

        Returns void

  • genSources(instance: BaseNode, filerFn?: ((source: Partial<BaseNode>) => {})): {}
  • 插入元素绑定属性

    Parameters

    • name: string

      元素绑定属性名称,如果不填会自动生成一个唯一名称

    • index: number

    Returns BindAttribute

  • 插入元素绑定属性

    Parameters

    • bindAttributeOptions: Partial<BindAttribute>

      元素绑定属性参数

    • index: number

    Returns BindAttribute

  • 插入元素绑定属性

    Parameters

    • bindAttribute: BindAttribute

      已有的元素绑定属性实例

    • index: number

    Returns BindAttribute

  • 插入元素指令

    Parameters

    • name: string

      元素指令名称,如果不填会自动生成一个唯一名称

    • index: number

    Returns BindDirective

  • 插入元素指令

    Parameters

    • bindDirectiveOptions: Partial<BindDirective>

      元素指令参数

    • index: number

    Returns BindDirective

  • 插入元素指令

    Parameters

    • bindDirective: BindDirective

      已有的元素指令实例

    • index: number

    Returns BindDirective

  • 插入元素绑定事件

    Parameters

    • name: string

      元素绑定事件名称,如果不填会自动生成一个唯一名称

    • index: number

    Returns BindEvent

  • 插入元素绑定事件

    Parameters

    • bindEventOptions: Partial<BindEvent>

      元素绑定事件参数

    • index: number

    Returns BindEvent

  • 插入元素绑定事件

    Parameters

    • bindEvent: BindEvent

      已有的元素绑定事件实例

    • index: number

    Returns BindEvent

  • 插入页面元素

    Parameters

    • name: string

      页面元素名称,如果不填会自动生成一个唯一名称

    • index: number

    Returns ViewElement

  • 插入页面元素

    Parameters

    • viewElementOptions: Partial<ViewElement>

      页面元素参数

    • index: number

    Returns ViewElement

  • 插入页面元素

    Parameters

    • viewElement: ViewElement

      已有的页面元素实例

    • index: number

    Returns ViewElement

  • instantiate(source: any, parentNode: BaseNode, parentKey: string): any
  • 实例化一个 JSON 由于有 from,只能先实例化父级,再实例化子级

    Parameters

    • source: any
    • parentNode: BaseNode
    • parentKey: string

    Returns any

  • off(eventName: string, listener: EventListener): void
  • 取消监听事件

    Parameters

    • eventName: string

      事件名

    • listener: EventListener

      监听器

    Returns void

  • on(eventName: string, listener: EventListener): void
  • 监听事件

    Parameters

    • eventName: string

      事件名

    • listener: EventListener

      监听器

    Returns void

  • once(eventName: string, listener: EventListener): void
  • 只监听一次事件

    Parameters

    • eventName: string

      事件名

    • listener: EventListener

      监听器

    Returns void

  • prepareDelete(): Promise<any>
  • removeBindAttribute(name: string): void
  • removeBindAttribute(bindAttribute: BindAttribute): void
  • 删除元素绑定属性

    Parameters

    • name: string

      元素绑定属性名称

    Returns void

  • 删除元素绑定属性

    Parameters

    Returns void

  • removeBindDirective(name: string): void
  • removeBindDirective(bindDirective: BindDirective): void
  • 删除元素指令

    Parameters

    • name: string

      元素指令名称

    Returns void

  • 删除元素指令

    Parameters

    Returns void

  • removeBindEvent(name: string): void
  • removeBindEvent(bindEvent: BindEvent): void
  • 删除元素绑定事件

    Parameters

    • name: string

      元素绑定事件名称

    Returns void

  • 删除元素绑定事件

    Parameters

    • bindEvent: BindEvent

      已有的元素绑定事件实例

    Returns void

  • removeViewElement(name: string): void
  • removeViewElement(viewElement: ViewElement): void
  • 删除页面元素

    Parameters

    • name: string

      页面元素名称

    Returns void

  • 删除页面元素

    Parameters

    Returns void

  • setBindRoles(bindRoles: string[]): void
  • 设置组件权限

    Parameters

    • bindRoles: string[]

    Returns void

  • setName(name: string): void
  • 设置页面元素名称

    Parameters

    • name: string

    Returns void

  • setStaticStyle(staticStyle: string): void
  • 设置静态 style

    Parameters

    • staticStyle: string

    Returns void

  • toDesignerVue(options?: ElementToVueOptions): string
  • 转换成设计器中使用的 Vue 文件

    Parameters

    • Optional options: ElementToVueOptions

    Returns string

  • toJSON(): {}
  • 去除循环依赖,转为纯 JSON

    Returns {}

    • toPlainJSON(parentKey?: string, excludedKeys?: string[]): any
    • 转为单层的 JSON

      Parameters

      • Optional parentKey: string

        外面的 key,提供给 JSON.stringify 使用

      • excludedKeys: string[] = []

        需要额外排除的 keys

      Returns any

    • toVue(options?: ElementToVueOptions): string
    • 转换成 Vue 的模板格式

      Parameters

      • Optional options: ElementToVueOptions

      Returns string

    • update(__namedParameters: any): void
    • 更新节点

      Parameters

      • __namedParameters: any

      Returns void

    • _fromASTNode(astNode: ASTElement, context?: ParseContext): ViewElement
    • 从 Vue 的 ASTNode 转换成 ASL 元素

      Parameters

      • astNode: ASTElement

        Vue 的 ASTNode

      • Optional context: ParseContext

      Returns ViewElement

    • 解析属性中的表达式

      Parameters

      • value: string

      Returns LogicItem

    • fromHTML(html: string, context?: ParseContext): ViewElement
    • 从模板生成规范的 ViewElement 对象

      Parameters

      • html: string
      • Optional context: ParseContext

      Returns ViewElement

    • getDefaultOptions(): any
    • parse(html: string, context?: ParseContext): ViewElement
    • 解析 Vue 模板 该方法不会绑定 view 和 parent,如果是添加元素优先使用 fromHTML

      todo

      处理多个元素的问题

      Parameters

      • html: string

        Vue 的模板

      • Optional context: ParseContext

      Returns ViewElement