利用可视化设计器构建你的应用系统-做一个懂你的人
基本定义
前端系统主要由在线编写代码与可视化操作两种方式来构建。页面结构主要通过在线可视化拖拽组合生成,一些页面元素model的绑定及交互事件通过在元素属性面板编辑来操作。
我们提供了多个数据源来获取需要的数据,由于数据类型的不同,我们使用对象来对他们进行分类管理。
从功能性上主要分为下面几类:
属性值、预置函数、寄连、视图、元素、工具类。
由于细分下来属性特别多。因此我们通过不同的对象来对这些值进行访问。
| 名称 | 定义 | 说明 |
|---|---|---|
| B | 基础对象 | 包含initData,collectionData等 |
| G | 全局对象 | 包含page,menu,user等 |
| R | 请求链接对象 | 包含一些链接调用的方法和属性 |
| P | 执行寄连对象 | 包含一些寄连调取的方法和属性 |
几乎所有的变量都能够通过这四个对象访问到,每个页面都有自己的 B、G、R、P 对象,除了 G 之外,不同页面之间的 B、R、P 对象都是相互独立的
这四个对象既可以独立访问,也可以在某个对象中访问另一个对象
页面中所有的地方都能够访问这些对象,所有可以写脚本的地方都能通过 this 来获取这些变量
除了当前页面下的公共对象之外,还有两个对象是只在当前组件的事件中能访问到的属性
| 名称 | 定义 | 说明 |
|---|---|---|
| describe | 当前组件视图配置 | 包含了渲染该组建所需的所有配置 |
| scopeData | 渲染数据 | 当前作用域插槽的数据 |
数据对象
initData
该对象主要存储一些初始化数据,一般情况下它的属性值不会发生变化,可以通过寄连、请求的方式进行设定,我们也可以手动指定初始化的数据,供之后访问、比较等操作。
该对象并没有严格的限制说能够存储哪些数据,只是约定好只存储页面初始化数据,或者一些其他的信息等
initData 在页面加载的时候,会默认填充两个属性:formCode 和 serviceTable,分别表示当前页面的编码和当前页面存储的数据表

然后我们可以在任意其他位置对它进行设定
比如我们创建一个请求链接,然后在回调函数里面把接口的返回值放到 initData 里面
请求链接的回调函数里面写上 this.B.setInitData(data)
先看下接口的返回值:

给页面添加该接口之后,接口调用完毕会执行回调函数,将数据填充到 initData 中

collectionData
所有在视图中带有model字段的属性都会被收集到这个对象中,我们也可以给该对象赋值一些临时的其他属性,这样方便在别的地方都可以访问到。
requestData
如果请求链接配置了绑定数据字段,那么通过请求返回的数据就会被存储到该对象中,它还包含了两个特殊的属性:
handle:所有请求中如果设定了code,那么就会被保存在该对象中,以备之后手动触发请求。
code:带有权限控制的code可以通过这个对象访问到,我们也可以手动指定code属性。
关于如何将请求链接返回的数据绑定到 collectionData 对象中,以及它们的绑定机制和手动触发请求,可参考 请求链接配置
关于 requestData.code 对象的作用和运行机制,可参考 权限控制
controlData
页面中的所有数据视图都会以code为标识存储在该对象中,我们手动设定的dom和view也会通过它进行访问。
关于组件的 dom 和 view 设置规则和它们的使用方式,可参考 元素和视图的引用
setInitData(data)
这是 B 对象暴露出来的用于设置 initData 对象的方法,直接传入需要设置的数据对象即可
setCollectionData(data)
这是 B 对象暴露出来的用于设置 collectionData 对象的方法,直接传入需要设置的数据对象即可
请求链接对象
管理页面中所有的请求链接。

每个 请求链接 的回调函数中的this都指向这个对象。
除了在请求链接中使用,在页面的其他任何地方都可以通过 this.R 拿到这个对象。
也可以通过这个对象获取到 G、P、collectionData、controlData、requestData 等等公共对象。
主要有以下方法:
-
doCallBack:用于执行请求链接返回数据之后的回调函数
-
filterCancel:用于过滤掉被取消的请求
-
getLists:实际发起接口请求获取数据
-
initLists:根据请求链接的配置信息初始化请求
-
pitchRequest:根据请求策略拆分出不同的请求集合
-
prepare:发起实际请求之前的准备
-
request:管理一个请求从开始到结束的整个周期
-
setLists:根据请求链接的配置将返回的数据进行处理
-
trigger:根据请求编码发起请求
除了 prepare 和 trigger 之外,其他方法均属于内部使用的方法,一般用不到
prepare
这是一个请求预处理,主要用来在发起一个请求前做一些逻辑处理,比如设置参数等。
如果页面中的一个请求链接具有 code 值,那么通过调用 prepare 方法,传入对应请求的 code,就会对该请求进行初始化并返回一个 promise。
在then方法传递回来的参数是一个对象,其中包含两个属性:request 和 run。
request 代表当前的请求,可以通过它修改参数或执行其他操作。
run 是一个函数,执行之后将会发起真正的请求。
关于具体的使用方式可参照 请求编码
trigger
根据传入的对应请求的 code 发起请求,主要是用来处理手动触发的请求。
具体的示例可见 请求编码
寄连对象
用来管理页面中的执行寄连
| 函数 | 说明 |
|---|---|
| bond | 执行策略为before的寄连 |
| doCallBack | 自动执行指定的寄连 |
| pitchBond | 根据寄连策略拆分出不同的寄连集合 |
| runIt | 手动执行指定的寄连 |
还有一个 handle 的对象属性和一个 prepare 的数组属性
handle 主要用来存放需要手动执行的寄连
prepare 存放了执行策略为before的寄连
RunIt
通过它来手动执行寄连,第一个参数表示要执行的寄连 code,从第二个参数开始,都是要传入寄连函数的参数。
比如现在有一个编码为 getAverage 的寄连,它用来计算多个数的平均数,寄连内容如下:

现在在一个按钮的点击事件里面来调用这个执行寄连

点击按钮之后就会执行该寄连

关于手动执行寄连的配置可参考 寄连执行策略
【项目体验】
系统管理端地址 :http://www.lecen.top/manage