函数模块
1.函数列表
(略)参考_rx
处文档。
2.基本介绍
2.1.函数子规范
- rs全称是:Runtime State,为状态函数生成器。
- rx全称是:Runtime Executor,是执行函数生成器。
Ex.rx(reference)
调用后则可直接通过内置API调用上层的rx/rs
函数,它不管生成,主管调用。- 上层函数:先从状态中读取函数,若无法读取,则从属性中读取,状态中优先级更高。
2.2.回调函数表
回调函数是Extension扩展模块提供给开发人员专用的回调扩展接口,常用回调如下:
函数名 | 触发时间和含义 |
---|---|
rxPostOpen | 打开Tab页之后的回调 |
rxPostClose | 关闭Tab页之后的回调 |
rxPostSelected | 选中记录后的回调 |
rxPostDelete | 删除数据之后的回调 |
rxPostEdit | 编辑数据之后的回调 |
rxViewSwitch | 视图改变之后的回调(主要针对页签状态变更) |
其他回调后续补充……
Methods
(static) rsDirty(reference, dirty) → {function}
「2阶」Ex.rsDirty
1.基本介绍
$dirty 生成函数,最终会根据传入的dirty
生成不同函数,等价于生成:
// 修改组件脏状态
() => reference.setState({$dirty: true});
// 修改组件非脏状态
() => reference.setState({$dirty: false});
2.核心
2.1.脏状态
脏状态表示当前列表会等待自动刷新,直到列表状态为非脏的状态。
Parameters:
Name | Type | Default | Description |
---|---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
|
dirty |
boolean |
true
|
打开或关闭 |
Returns:
生成函数
- Type
- function
(static) rsLoading(reference, loading) → {function}
「2阶」Ex.rsLoading
1.基本介绍
$loading 生成函数,根据传入的loading
生成不同函数,等价于生成:
// 修改组件加载状态
() => reference.setState({$loading: true});
// 修改组件加载完成状态
() => reference.setState({$loading: false});
2.核心
2.1.手动回调
当一个组件处于加载状态,它并不会自动执行加载,和$dirty
有本质上的区别,但是开发人员可在某些特定的操作中执行特定加载回调手动改变状态。
2.2.高频函数
通常在修改$loading
时会调用内部规范的doLoading
专用函数,用于修改加载以及加载完成的状态。
Parameters:
Name | Type | Default | Description |
---|---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
|
loading |
boolean |
true
|
打开或关闭 |
Returns:
生成函数
- Type
- function
(static) rsOpened(reference, opened) → {function}
「2阶」Ex.rsOpened
1.基本介绍
$opened 生成函数,根据最终传入的opened
生成不同函数,等价于生成:
// 修改组件打开状态
() => reference.setState({$opened: true});
// 修改组件关闭状态
() => reference.setState({$opened: false});
2.核心
2.1.使用场景
这个函数通常只在<Tabs/>
组件中使用,修改了$opened=true
时,可直接打开页签,而点击关闭后,则直接将页签关掉。
$opened
和$visible
为最初设计的不同场景的打开和关闭状态,而后续很多组件直接使用了$visible
而忽略掉$opened
。
Parameters:
Name | Type | Default | Description |
---|---|---|---|
reference |
|||
opened |
true
|
Returns:
- Type
- function
(static) rsSubmitting(reference, submitting) → {function}
「2阶」Ex.rsSubmitting
1.基本介绍
$submitting 生成函数,根据传入的submitting
生成不同函数,等价于生成:
// 修改组件提交状态
() => reference.setState({$submitting: true});
// 修改组件提交完成状态
() => reference.setState({$submitting: false});
2.核心
2.1.回调
提交状态的切换主要应用于防重复提交,为表单重复提交提供一个过渡功能。
2.2.高频函数
通常在修改$submitting
时会调用内部规范的doSubmitting
专用函数,用于修改加载以及加载完成的状态。
Parameters:
Name | Type | Default | Description |
---|---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
|
submitting |
boolean |
true
|
打开或关闭 |
Returns:
生成函数
- Type
- function
(static) rsVisible(reference, visible) → {function}
「2阶」Ex.rsVisible
1.基本介绍
$visible 生成函数,根据传入的visible
生成不同函数,等价于生成:
// 修改组件为显示
() => reference.setState({$visible: true});
// 修改组件为隐藏
() => reference.setState({$visible: false});
2.核心
2.1.常用组件
该状态为窗口专用状态,通常应用于:
<Modal/>
:弹出窗口<Drawer/>
:抽屉窗口<Popover/>
:浮游窗口
Parameters:
Name | Type | Default | Description |
---|---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
|
visible |
boolean |
true
|
打开或关闭 |
Returns:
生成函数
- Type
- function
(static) rx(reference, off) → {Object}
「标准」Ex.rx
1.基本介绍
主要用于调用上层函数
- 调用 props 中的某个函数
- 调用 state 中的某个函数
- 最后执行该函数
return Ex.I.todo(request, false)
.then(Ux.ajax2Dialog(ref, buildConfig(ref, "rejected"), true))
// 调用代码
.then(response => Ex.rx(reference).close(response));
2.函数列表
函数名 | 调用函数 | 说明 |
---|---|---|
assistIn | rxAssist | 辅助数据输入函数 |
assistOut | rxAssist | 辅助数据输出函数 |
无 | rxBatchDelete | (批删)无主动调用接口 |
batchEdit | rxBatchEdit | 批量更新专用函数 |
无 | rxChannel | 直接调用顶层通道方法,触发Fabric事件引擎 |
无 | rxColumn | 读取当前模型相关的所有列集(全视图) |
无 | rxColumnMy | 读取当前模型我的视图列(子视图) |
无 | rxColumnSave | 保存我的视图列 |
condition | rxCondition | 条件处理专用函数 |
delete | rxDelete | 单行删除专用函数 |
dirty | doDirty | 脏状态处理函数 |
无 | rxDirty | 等价于 $dirty = true,doDirty的一半 |
无 | rxExport | 导出函数专用 |
filter | rxFilter | 查询条件专用函数 |
无 | rxImport | 导入函数专用 |
loading | doLoading | 加载状态处理函数 |
无 | rxLoading | 等价于 $loading = true, doLoading的一半 |
closePost | rxPostClose | 「外围生成」关闭Tab页后的执行函数。 |
openPost | rxPostOpen | 「外围生成」 打开Tab页后的执行函数。 |
projection | rxProjection | 列过滤专用函数 |
search | rxSearch | 搜索专用函数 |
selected | rxSelected | 多选专用函数 |
submitting | doSubmitting | 提交状态专用函数 |
submittingStrict | doSubmitting | 提交状态专用函数(带错误信息) |
无 | rxTabAdd | 添加Tab页 |
无 | rxTabClose | 关闭Tab页 |
无 | rxTabEdit | 编辑Tab页 |
无 | rxTabOpen | 打开Tab页 |
open | rxOpen | 「外围生成」 打开页面专用函数 |
close | rxClose | 「外围生成」 关闭页面专用函数 |
view | rxView | 单行查看专用函数 |
Parameters:
Name | Type | Default | Description |
---|---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
|
off |
boolean |
false
|
关闭错误信息 |
Returns:
返回最终对象
- Type
- Object
(static) rxAssist(reference) → {function}
「1阶」Ex.rxAssist
1.基本介绍
rxAssist用于更改组件状态state中的专用辅助数据,它支持两种模式:
- 添加/更新:使用添加更新模式
deleted=false
(默认),直接追加和更新辅助数据信息。 - 删除:使用删除模式
deleted=true
(传入),直接删除输入记录及。
2.下层调用
2.1.调用代码
// 执行 deleted = false 添加更新辅助数据
Ex.rx(reference).assistIn(...);
// 执行 deleted = true 删除更新辅助数据
Ex.rx(reference).assistOut(...);
rx系列方法和rs系列方法并不对等,因为rs是为了生成函数专用方法,有可能一个方法生成两个函数。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxBatchDelete(reference) → {function}
「2阶」Ex.rxBatchDelete
1.基本介绍
批量删除函数专用,根据options中的批量删除配置ajax.batch.delete.uri
执行批量删除函数,该函数会触发批量操作。
2.使用场景
2.1.调用代码
(无)
2.2.操作执行
- 调用
Ux.sexBatch
从批量选择数据中读取被选择的主键集。 - 使用被选中的主键集调用批量删除接口执行批量删除。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxBatchEdit(reference) → {function}
「2阶」Ex.rxBatchEdit
1.基本介绍
批量更新函数专用,根据options中批量更新配置ajax.batch.update.uri
执行批量更新函数,该函数会触发批量操作。
2.下层调用
2.1.调用代码
// 调用 rxBatchEdit 方法
Ex.rx(reference).batchEdit(...);
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxChannel(reference) → {function}
「引擎」Ex.rxChannel
1.基本介绍
rxChannel
为顶层穿透函数,主要用于执行Extension中Origin X
引擎专用,在整个Ox
系列的组件中,组件和组件之间的调用流程使用Channel架构,而在Channel内部执行事件集合,它可以支持:
- 触发事件
- 一次事件
- 并行事件
- 串行事件
组件本身调用其他组件过程时,除了执行内部方法以外,还执行rxChannel
穿透调用。
2.核心
2.1.Fabric
- 该函数会读取state中的
$fabric
变量,触发Fabric引擎。 - rxChannel通道函数多为抽象函数,本身不带任何代码逻辑,而是根据传入的Fabric配置执行不同代码逻辑。
- 代码逻辑以片段为主,定义了片段后,根据片段配置执行下一步操作。
- 其设计思路近似于
汇编
,用代码节点来编织。
2.2.rxChannel
rxChannel方法会更新$fabric
的变更信息,一旦变更,则会通知所有和当前$fabric
相关的组件提示数据和配置产生了变化。
如下图:
ComponentA ----- rxChannel触发点
/ \
ComponentB ComponentC
/ \
ComponentD ComponentE
例如上述结构中:
- rxChannel实际上更改的是ComponentA组件中的
$fabric
状态值。 - 被更改的
$fabric
会以ComponentA为父节点,向所有子节点传递。 - 子节点中会有专用方法判断哪一部分的
$fabric
更改执行自我刷新,等价于子节点订阅了$fabric
中的部分数据。
一旦配置了行为过后,这些行为就实现了相互影响和编连,对于不编程只配置的程序逻辑而言,Fabric就是核心。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用。 |
Returns:
返回 $fabric 专用函数。
- Type
- function
(static) rxColumn(reference, config) → {function}
「2阶」Ex.rxColumn
1.基本介绍
全列视图函数专用,直接根据options
中的配置ajax.column.full
执行模型下的全列读取,读取模式分:
- 静态列
dynamic.column = false
(默认值),直接返回配置列信息,前端静态列配置。 - 动态列
dynamic.column = true
,直接返回动态配置列信息,动态列配置。
2.核心
2.1.增强列表
增强视图主要包含三个核心功能:
- 读取模型关联视图全列。
- 读取定义好的我的视图列。
- 针对2中读取的我的试图列进行保存,创建新视图(目前版本只支持单视图)。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
config |
Object | 列配置 |
Returns:
生成函数
- Type
- function
(static) rxColumnMy(reference, config) → {function}
「2阶」Ex.rxColumnMy
1.基本介绍
我的视图函数专用,直接根据options
中的配置ajax.column.my
执行模型下的我的视图列读取。
- 我的视图列不执行双模式,所有模式都可支持我的视图保存。
- 目前只有每个列表单视图操作,后期扩展多视图模式。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
config |
Object | 列配置 |
Returns:
生成函数
- Type
- function
(static) rxColumnSave(reference) → {function}
「2阶」Ex.rxColumnSave
1.基本介绍
该函数为rxColumnMy
的逆函数,此处不做多余说明,根据options
中的ajax.column.save
执行我的视图保存。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxCondition(reference, isClear) → {function}
「2阶」Ex.rxCondition
1.基本介绍
条件专用函数:清空设置双用,该函数主要针对列过滤条件执行操作
- 设置流程:更新$condition
- 清空流程:执行
Ux.qrClear
清空操作(__DELETE__
条件会被清除)
Parameters:
Name | Type | Default | Description |
---|---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
|
isClear |
boolean |
false
|
是否清除查询条件 |
Returns:
生成函数
- Type
- function
(static) rxDelete(reference) → {function}
「2阶」Ex.rxDelete
1.基本介绍
执行options
配置中的ajax.delete.uri
专用函数,从后端执行删除。
2.下层调用
2.1.调用代码
Ex.rx(reference).delete(...);
2.2.删除模式
删除模式主要在服务端实现而不是客户端
- 物理删除:SQL语句执行DELETE语句真实删除数据(可以删除同时做备份和变更历史)。
- 逻辑删除:仅仅执行UPDATE语句更新某个标记位数据。
2.3.删除的影响
对列表而言,如果删除了某条记录而这条记录又在选择项中,则需要将$selected
变量中选中项移除。
2.4.删除回调
系统提供了rxPostDelete
函数用于执行删除回调操作,该操作位于删除之后执行(编程回调)。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxDirty(reference) → {function}
「1阶」Ex.rxDirty
1.基本介绍
脏状态切换函数,设置当前组件的$dirty = true
,该函数和rsDirty
对应:
- rsDirty负责生成可改变脏状态的二阶函数。
- rxDirty则直接执行
$dirty = true
的一阶函数操作。
第二参数为可合并的state状态数据,最终会调用
Object.assign
将附加状态合并到组件状态中。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxExport(reference) → {function}
「2阶」Ex.rxExport
1.基本介绍
导出函数专用,根据options
中的ajax.export.uri
执行导出操作。
- 导出函数必须传入基础参数集:标识应用、模型、查询条件。
- 查询条件直接走查询引擎,内置调用
Ux.ajaxPull
的下载函数(带权限)。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxFilter(reference) → {function}
「2阶」Ex.rxFilter
1.基本介绍
基础搜索 / 高级搜索专用函数,该函数会包含两部分输入:
- 执行过查询条件处理过后的过滤条件
$filters
。 - 原始查询条件(规范化之前)
$filtersRaw
(可选)。
2.核心
2.1.$filtersRaw
在某些特定场景中,原始查询条件可追踪当前组件专用查询条件集合,所以除了规范化过后的查询条件以外,该函数提供了二义性输入。
2.2.$filters
$filters状态变量在列表组件中只存在于基础搜索(搜索框)和高级搜索(查询表单),列过滤的搜索条件有另外的变量来完成。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxImport(reference) → {function}
「2阶」Ex.rxImport
1.基本介绍
导入专用函数,根据options
中的ajax.import.uri
执行导入操作。
- 导入函数必须传入
File
参数(上传文件) - 内置调用
Ux.ajaxUpload
的上传函数(带权限)。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxLoading(reference) → {function}
「1阶」Ex.rxLoading
1.基本介绍
加载状态切换函数,设置当前组件中$loading = true
,该函数和rsLoading
对应:
- rsLoading负责生成可改变加载状态的二阶函数。
- rxLoading则直接生成
$loading = true
的一阶函数操作。
第二参数为可合并的state状态数据,最终会调用
Object.assign
将附加状态合并到组件状态中。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxPostClose(reference) → {function}
「1阶」Ex.rxPostClose
1.基本介绍
打开Tab页后置回调函数,设置 $opened = true。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxPostOpen(reference) → {function}
「1阶」Ex.rxPostClose
1.基本介绍
关闭Tab页后置回调函数,设置 $opened = false。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxProjection(reference) → {function}
「2阶」Ex.rxProjection
1.基本介绍
根据系统中存储的$columns/$columnsMy
执行视图层的列过滤专用函数,该函数内部存储了全列,根据传入的试图列构造新的查询视图。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxSearch(reference) → {function}
「2阶」Ex.rxSearch
1.基本介绍
搜索专用函数(列表组件主函数),它根据ajax.search.uri
执行搜索,参数格式如:
{
"criteria": {},
"sorter": [],
"pager":{
"page": 1,
"size": 10
},
"projection": []
}
参数格式参考Qr的格式语法。
2.核心
内置调用了switcher
执行从状态state到属性props中的函数检索,检索合法时调用该函数,无法找到函数则抛出异常。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxSelected(reference) → {function}
「2阶」Ex.rxSelected
1.基本介绍
多选专用函数,该函数的基础封装仅执行一个操作,调用上层的rxPostSelected
回调函数。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxSubmitting(reference) → {function}
「1阶」Ex.rxSubmitting
1.基本介绍
加载状态切换函数,设置当前组件中$submitting = true
,该函数和rsSubmitting
对应:
- rsSubmitting负责生成可改变提交状态的二阶函数。
- rxSubmitting则直接生成
$submitting = true
的一阶函数操作。
第二参数为可合并的state状态数据,最终会调用
Object.assign
将附加状态合并到组件状态中。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxTabAdd(reference) → {function}
「2阶」Ex.rxTabAdd
新增 Tab 页专用函数
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxTabClose(reference) → {function}
「2阶」Ex.rxTabClose
关闭 Tab 页专用函数
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxTabEdit(reference) → {function}
「2阶」Ex.rxTabEdit
编辑 Tab 页专用函数
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxTabOpen(reference) → {function}
「2阶」Ex.rxTabOpen
打开 Tab 页专用函数
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function
(static) rxView(reference) → {function}
「2阶」Ex.rxView
1.基本介绍
查询记录专用函数,用于查询当前系统中的记录(双击选中),直接执行options
中的ajax.get.uri
数据读取。
版本更新
- 版本1:只能使用
:key
参数读取数据记录。 - 版本2:新增了可使用其他字段(唯一字段)来读取数据记录。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React对应组件引用 |
Returns:
生成函数
- Type
- function