Options
All
  • Public
  • Public/Protected
  • All
Menu

Class View

子页面类,前端路由控制

Hierarchy

Index

Constructors

constructor

  • new View(source?: Partial<View>): View
  • Parameters

    • Optional source: Partial<View>

      需要合并的部分参数

    Returns View

Properties

Readonly $def

$def: { lifecycles: Lifecycle[]; logics: Logic[]; params: ViewParam[]; variables: Variable[] } = ...

逻辑相关定义

Type declaration

Readonly $html

$html: Element

模板 AST

Protected Readonly JSON_EXCLUDED_KEYS

JSON_EXCLUDED_KEYS: Set<string>

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

Readonly _cacheTimestamp

_cacheTimestamp: string = ...

前端记录缓存的时间戳

Protected _mutable

_mutable: boolean = true

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

Readonly _uuid

_uuid: string = ...

唯一 uuid 目前主要用于前端 Debug 区分两个实例

Readonly children

children: View[] = ...

子页面

Readonly code

code: string = ...

唯一标识码

contentPromise

contentPromise: Promise<any> = ...

正在请求的 Promise 前端 UI 状态

Readonly createdBy

createdBy: string = ...

创建人

Readonly createdTime

createdTime: string = ...

创建时间

Readonly crumb

crumb: string = ...

面包屑

Readonly definition

definition: string

定义源码

editable

editable: boolean = true

是否可编辑

editing

editing: boolean = false

是否正在编辑 前端 UI 状态

expanded

expanded: boolean = false

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

Readonly first

first: string = ...

是否为默认跳转页

Readonly id

id: string = ...

子页面 Id

Readonly ideVersion

ideVersion: string = ...

IDE 版本

isLeaf

isLeaf: boolean = false

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

Readonly level

level: LEVEL_ENUM = ...

概念类型

loading

loading: boolean = false

是否正在请求 前端 UI 状态

Readonly moreChildrenFields

moreChildrenFields: string[] = ...

树组件的子节点字段

Readonly name

name: string = ...

子页面名称

Readonly page

page: Page = ...

所属页面

Readonly parent

parent: View = ...

父级子页面

Readonly parentId

parentId: string = ...

子页面 Id

Readonly path

path: string = ...

前端路径,不带 page 名

Readonly script

script: string = ...

附加的 script

Readonly style

style: string

样式补充 最好直接在标签上添加逻辑,这里只是偶尔做额外补充

Readonly tempPath

tempPath: string = ...

前后端路径 由于 name 会改的关系,尽量不要用

deprecated

template

template: string

模板源码

Readonly title

title: string = ...

标题

Readonly updatedBy

updatedBy: string = ...

修改人

Readonly updatedTime

updatedTime: string = ...

修改时间

Methods

Private _onChange

  • _onChange(): Promise<void>
  • Returns Promise<void>

Private _syncDef

addView

  • 添加子页面

    Parameters

    Returns Promise<View>

assign

  • assign(source: any): void
  • Parameters

    • source: any

    Returns void

attachNodePath

  • attachNodePath(): void
  • 后续改为根据 id 查找 Element

    deprecated

    Returns void

create

  • create(): Promise<View>
  • 添加子页面

    Returns Promise<View>

deepPick

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

    example

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

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

    Parameters

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

    Returns void

delete

  • delete(): Promise<void>
  • 删除子页面

    Returns Promise<void>

emit

  • emit(eventName: string, ...args: any[]): void
  • 触发事件

    Parameters

    • eventName: string

      事件名

    • Rest ...args: any[]

      事件参数

    Returns void

emitVertexIdToNameChange

  • emitVertexIdToNameChange(): void

findElementByAttr

  • findElementByAttr(name: string, value: string): Element
  • 根据属性查找元素

    Parameters

    • name: string
    • value: string

    Returns Element

findElementByNodePath

  • 根据路径查找子节点

    examples
    • findElementByNodePath('', root) 指根节点本身
    • findElementByNodePath('/', root) 指根节点本身
    • findElementByNodePath('/0', root) 指第0个子节点
    • findElementByNodePath('/2/1', root) 指第2个子节点的第1个子节点

    Parameters

    • nodePath: string

      节点路径,/1/2 表示根节点的第1个子节点的第2个子节点

    • node: Element = ...

      查找的起始节点

    Returns Element

findElementByTag

  • findElementByTag(tag: string): Element
  • 根据标签查找元素

    Parameters

    • tag: string

    Returns Element

findUsage

  • findUsage(): Promise<any>
  • 查找引用

    Returns Promise<any>

isContentLoaded

  • isContentLoaded(): boolean
  • Returns boolean

load

  • load(): Promise<any>
  • 在 mergeBlock 的情况下使用 在 loadDetail 的情况下使用

    Returns Promise<any>

loadAll

  • loadAll(): Promise<any>
  • Returns Promise<any>

mergeBlock

  • mergeBlock(code: string, nodePath: string, position: string, parentNodePath: string): Promise<void>
  • 合并代码

    Parameters

    • code: string
    • nodePath: string
    • position: string
    • parentNodePath: string

    Returns Promise<void>

off

  • 取消监听事件

    Parameters

    Returns void

on

  • 监听事件

    Parameters

    Returns void

once

  • 只监听一次事件

    Parameters

    Returns void

parseAll

  • parseAll(): void
  • Returns void

parseDefinition

  • parseDefinition(definition?: string): void
  • Parameters

    • definition: string = ...

    Returns void

parseTemplate

  • parseTemplate(template?: string): void
  • 从模板解析出 AST

    Parameters

    • Optional template: string

      模板代码

    Returns void

pick

  • pick(source: any, keys?: string[]): void
  • Parameters

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

    Returns void

plainAssign

  • plainAssign(source: any): void
  • Parameters

    • source: any

    Returns void

setAsFirst

  • setAsFirst(): Promise<void>
  • 设置该子页面为默认跳转页

    Returns Promise<void>

setCrumb

  • setCrumb(crumb: string): Promise<void>
  • 设置子页面面包屑

    Parameters

    • crumb: string

      面包屑

    Returns Promise<void>

setName

  • setName(name: string): Promise<void>
  • 设置子页面名称 如果为顶级子页面,会同时设置 Page 的属性

    Parameters

    • name: string

      名称

    Returns Promise<void>

setTitle

  • setTitle(title: string): Promise<void>
  • 设置子页面标题 如果为顶级子页面,会同时设置 Page 的属性

    Parameters

    • title: string

      标题

    Returns Promise<void>

toDesignerVue

  • 转换成设计器中使用的 Vue 文件

    Parameters

    Returns string

toJSON

  • toJSON(parentKey?: string, excludedKeys?: string[]): any
  • 去除循环依赖,转为纯 JSON

    Parameters

    • Optional parentKey: string

      外面的 key

    • excludedKeys: string[] = ...

      需要额外排除的 keys

    Returns any

toPlainJSON

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

    Parameters

    • Optional parentKey: string

      外面的 key

    • excludedKeys: string[] = ...

      需要额外排除的 keys

    Returns any

toScript

  • 转换成 Vue 中需要的 JS 代码

    todo

    这一版先做成 componentOptions 式的,后面再美化

    Parameters

    Returns string

toVue

  • 转换成 Vue 文件

    Parameters

    Returns string

toVueOptions

  • 转换成 VueOptions

    todo

    后面 template 可以优化成 render 函数

    Parameters

    Returns { script: string; template: string }

    • script: string
    • template: string

update

  • update(): Promise<View>
  • 修改子页面

    Returns Promise<View>

Static from

  • 从后端 JSON 生成规范的 View 对象

    Parameters

    • source: any
    • parent: View
    • page: Page
    • Optional currentView: View

      方便构建子对象时关联,主要在 load 中使用

    Returns View

Static fromTemplate

  • fromTemplate(templateName: string, source: any, parent: View, page: Page): Promise<View>
  • 按照模板创建

    Parameters

    • templateName: string
    • source: any
    • parent: View
    • page: Page

    Returns Promise<View>

Static getVertexByRef

  • getVertexByRef(ref: string): Vertex
  • 通过 Ref 去查找点

    Parameters

    • ref: string

    Returns Vertex

Generated using TypeDoc