_rx

函数模块

1.函数列表

(略)参考_rx处文档。

2.基本介绍

2.1.函数子规范

  1. rs全称是:Runtime State,为状态函数生成器。
  2. rx全称是:Runtime Executor,是执行函数生成器。
  3. Ex.rx(reference)调用后则可直接通过内置API调用上层的rx/rs函数,它不管生成,主管调用。
  4. 上层函数:先从状态中读取函数,若无法读取,则从属性中读取,状态中优先级更高。

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.基本介绍

主要用于调用上层函数

  1. 调用 props 中的某个函数
  2. 调用 state 中的某个函数
  3. 最后执行该函数
    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中的专用辅助数据,它支持两种模式:

  1. 添加/更新:使用添加更新模式deleted=false(默认),直接追加和更新辅助数据信息。
  2. 删除:使用删除模式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.操作执行

  1. 调用Ux.sexBatch从批量选择数据中读取被选择的主键集。
  2. 使用被选中的主键集调用批量删除接口执行批量删除。
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

  1. 该函数会读取state中的$fabric变量,触发Fabric引擎。
  2. rxChannel通道函数多为抽象函数,本身不带任何代码逻辑,而是根据传入的Fabric配置执行不同代码逻辑。
  3. 代码逻辑以片段为主,定义了片段后,根据片段配置执行下一步操作。
  4. 其设计思路近似于汇编,用代码节点来编织。

2.2.rxChannel

rxChannel方法会更新$fabric的变更信息,一旦变更,则会通知所有和当前$fabric相关的组件提示数据和配置产生了变化。

如下图:

                   ComponentA   ----- rxChannel触发点
                   /        \
            ComponentB     ComponentC
            /        \
      ComponentD    ComponentE

例如上述结构中:

  1. rxChannel实际上更改的是ComponentA组件中的$fabric状态值。
  2. 被更改的$fabric会以ComponentA为父节点,向所有子节点传递。
  3. 子节点中会有专用方法判断哪一部分的$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执行模型下的全列读取,读取模式分:

  1. 静态列dynamic.column = false(默认值),直接返回配置列信息,前端静态列配置。
  2. 动态列dynamic.column = true,直接返回动态配置列信息,动态列配置。

2.核心

2.1.增强列表

增强视图主要包含三个核心功能:

  1. 读取模型关联视图全列。
  2. 读取定义好的我的视图列。
  3. 针对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执行模型下的我的视图列读取。

  1. 我的视图列不执行双模式,所有模式都可支持我的视图保存。
  2. 目前只有每个列表单视图操作,后期扩展多视图模式。
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.基本介绍

条件专用函数:清空设置双用,该函数主要针对列过滤条件执行操作

  1. 设置流程:更新$condition
  2. 清空流程:执行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.删除模式

删除模式主要在服务端实现而不是客户端

  1. 物理删除:SQL语句执行DELETE语句真实删除数据(可以删除同时做备份和变更历史)。
  2. 逻辑删除:仅仅执行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对应:

  1. rsDirty负责生成可改变脏状态的二阶函数。
  2. 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执行导出操作。

  1. 导出函数必须传入基础参数集:标识应用、模型、查询条件。
  2. 查询条件直接走查询引擎,内置调用Ux.ajaxPull的下载函数(带权限)。
Parameters:
Name Type Description
reference Object | ReactComponent

React对应组件引用

Returns:

生成函数

Type
function

(static) rxFilter(reference) → {function}

「2阶」Ex.rxFilter

1.基本介绍

基础搜索 / 高级搜索专用函数,该函数会包含两部分输入:

  1. 执行过查询条件处理过后的过滤条件$filters
  2. 原始查询条件(规范化之前)$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执行导入操作。

  1. 导入函数必须传入File参数(上传文件)
  2. 内置调用Ux.ajaxUpload的上传函数(带权限)。
Parameters:
Name Type Description
reference Object | ReactComponent

React对应组件引用

Returns:

生成函数

Type
function

(static) rxLoading(reference) → {function}

「1阶」Ex.rxLoading

1.基本介绍

加载状态切换函数,设置当前组件中$loading = true,该函数和rsLoading对应:

  1. rsLoading负责生成可改变加载状态的二阶函数。
  2. 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对应:

  1. rsSubmitting负责生成可改变提交状态的二阶函数。
  2. 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. 版本1:只能使用:key参数读取数据记录。
  2. 版本2:新增了可使用其他字段(唯一字段)来读取数据记录。
Parameters:
Name Type Description
reference Object | ReactComponent

React对应组件引用

Returns:

生成函数

Type
function