_romantic

多义性快速模块

该模块为后期封装型模块,为开发人员提供多义性操作快速开发专用API。

1. 函数列表

函数名 说明
sexBatch 「引擎」批量操作生成专用代码,处理批量选择专用的$selected变量。
sexCab 「引擎」(高频)资源文件合并读取专用方法(三配置数据源)。
sexDialog 「引擎」(高频)专用回调方法,弹出框专用(Modal),一般在Ajax调用之后执行。
sexIdentifier 「引擎」配置模块读取identifier模型标识符专用(多源头读取)。
sexMessage 「引擎」(高频)专用回调方法,全局消息专用(message),一般在Ajax调用之后执行。
sexModal 「引擎」Web渲染,<DialogButton/>按钮渲染专用方法,按钮中包含了子组件。
sexOp 「引擎」事件绑定专用函数,用于绑定传入的events对象中的Op事件信息。
sexTable 「引擎」表格组件<Table/>专用配置,不带事件执行配置表格。

Methods

(static) sexBatch(reference, callback, config)

「引擎」Ux.sexBatch

批量专用函数,用于处理批量按钮的特殊配置提取(同时从 props 属性和 state 状态中提取数据),内部调用代码如:


// 专用的批量处理按钮设置器。
const rxBatchEdit = (reference) => (params = []) => Ux.sexBatch(reference, ($selected = []) => {
     const {options = {}} = reference.state;
     const uri = options[G.Opt.AJAX_BATCH_UPDATE_URI];
     return Ux.ajaxPut(uri, params);
}, {name: "rxBatchEdit", reset: true, message: G.Opt.MESSAGE_BATCH_UPDATE});
Parameters:
Name Type Description
reference ReactComponent

React组件引用。

callback function

回调函数处理。

config Object

传入的配置数据。

(static) sexCab(reference, key) → {any}

##「引擎」Ux.sexCab

配置增强读取的多义性函数。

  1. 如果 key 传入为 undefined,则直接从 props中读取 config 变量,默认:{}
  2. 如果 key 是字符串不带 . 操作符,则直接读取资源文件中的 _<key,内部调用 fromHoc(高频方式)。
  3. 如果 key 是字符串带 . 操作符,则直接将该值如:key.xt 转换成 ["key","xt"],对应 _key -> xt 节点。
  4. 如果 key 是Array,则执行 fromPath 方法。

该方法保证最终得到的值是合法的。

Parameters:
Name Type Description
reference ReactComponent

React组件引用

key String

将要读取的配置的 key 值信息

Returns:

返回读取到的最终信息

Type
any

(static) sexDialog(reference, key, callback)

「引擎」Ux.sexDialog

弹出窗口专用函数,高频使用,直接捕捉窗口对象,内部使用代码如:

     return Ux.ajaxPost(`/api/relation/definition`, request)

         // 响应处理
         .then(() => Ux.sexDialog(reference, "submitted",

             // 设置最终的提交为 false
             () => reference.setState({$submitting: false})))

窗口专用配置结构如下,该函数第二参数传入的是下边结构中的key1, key2, key3,而窗口种类直接放到 对应的子节点之下即可,系统会自动检测:

{
    "_modal":{
        "success":{
            "key1": "message1"
        },
        "error":{
            "key2": "message2"
        },
        "confirm":{
            "key3": "message3"
        }
    }
}
Parameters:
Name Type Description
reference ReactComponent

React组件引用。

key String

配置键值。

callback function

当前窗口专用回调函数,用户窗口点击按钮的回调。

(static) sexIdentifier(reference, config) → {any}

「引擎」Ux.sexIdentifier

前端标识规则选择器

根据配置执行标识规则选择,配置数据格式如:

{
    "dataKey": "<抓取含有标识规则的字典>",
    "parentField": "<标识规则的父字段字段名>"
}

选择规则:

  1. 第一选择:直接选择props中的 $identifier 属性值作为第一选择标识规则。
  2. 第二选择:从 dataKey 中读取 Assist 数据,然后执行 treeShared 来执行选择。

当前选择是选择 $options 相关的树中查找到的节点的 identifier 数据。

Parameters:
Name Type Description
reference ReactComponent

React组件引用。

config Object

标识规则选择配置。

Returns:

返回的 identifier。

Type
any

(static) sexMessage(reference, key, duration)

「引擎」Ux.sexMessage

该函数和模态框的窗口配置没太大的,区别,核心结构如下,唯一的区别是响应过后不使用模态框,直接使用message消息框。

{
    "_modal":{
        "success":{
            "key1": "message1"
        },
        "error":{
            "key2": "message2"
        },
        "confirm":{
            "key3": "message3"
        }
    }
}
Parameters:
Name Type Description
reference ReactComponent

React组件引用。

key String

配置键值。

duration Number

消息停留的时间。

(static) sexModal(reference, key, fnRender) → {Jsx}

「引擎」Ux.sexModal

内部使用组件DialogButton用于渲染带窗口操作按钮,fnRender渲染部分位于窗口内部。 从 key 中提取资源文件配置,如果配置中包含了 dialogbutton 则满足渲染条件, 这种情况下,执行窗口配置,包括配置 onOk, onCancel 等函数和关闭函数,最终生成合法的配置 传入到DialogButton组件中,形成带窗口的事件按钮。

最终计算的配置结构如:

{
    "$mode": "窗口类型",
    "$dialog": "<窗口配置>",
    "$button": "<按钮操作>",
    "$loading": "<加载状态>"
}
Parameters:
Name Type Description
reference ReactComponent

React组件引用。

key String

读取配置专用的 Key,内部调用 sexCab 方法确认配置可读取。

fnRender

渲染函数。

Returns:

返回最终渲染的Jsx。

Type
Jsx

(static) sexOp(reference, key, events) → {Array}

「引擎」Ux.sexOp

  1. events 会根据 op 节点的 key 值执行绑定,绑定时会调用一次

    events[op.key](reference),所以必须是一个二阶函数

  2. op 的数据结构参考下表


"_op": [
    {
            "key": "$opSave",
            "text": "保存",
            "icon": "save",
            "type": "primary"
    }
]
Parameters:
Name Type Description
reference ReactComponent

React组件引用。

key String

配置键值。

events Object

绑定的事件信息

Returns:

生成最终的 操作集合

Type
Array

(static) sexTable(reference, key) → {any}

「引擎」Ux.sexTable

内部调用 sexCab 读取表格配置,一般 keytable,该配置可直接被 Ant Design中的<Table/>组件直接消费。

Parameters:
Name Type Description
reference ReactComponent

React组件。

key String

配置键值。

Returns:

返回表格专用数据。

Type
any