_to

值转换模块

转换专用模块

函数名 说明
toArray 将输入数据转换成Array,统一转换。
toCss 转换类名为追加了Css前缀的类名。
toForm 「引擎」将两个表单配置合并到一起。
toGrid 「引擎」转换成grid的值,计算Css数据。
toGridSpan 「引擎」根据grid转换span的值。
toHeight 「标准」根据分辨率计算高度。
toHeightState 「标准」封装toHeight构造状态数据。
toJson 将数据转换成Json数据,JSON.parse。
toKey 计算Assist/Tabular的真实变量名。
toLimit 「引擎」继承属性限制函数,等价于valueLimit,在不同场景中使用。
toLink uri字段转换函数,追加App对应的前缀path。
toLoading 延迟执行效果。
toLogout 「引擎」标准注销专用函数。
toMessage 构造Modal专用配置数据结构。
toOriginal 「引擎」返回原始路由地址,读取target数据并且执行react-router跳转到原始地址。
toPagination 「引擎」Table专用pagination转换函数,根据响应数据执行转换。
toPid 「引擎」菜单计算专用,Menu中的展开数据,防止F5刷新。
toQuery 「标准」读取查询uri路径上的参数信息。
toRoute 「引擎」根据react-router执行路由跳转。
toTime 时间转换函数,和valueTime不同的是toTime只做时间转换。
toTree 执行数组到树的转换(最终结果为树型的Array)。
toTreeArray 执行树类型的数组的转换(最终结果为拉平的Array)。
toTreeConfig 执行树配置信息的转换,转换成Tree的标准配置。
toWidth 字符串宽度计算。
toX 「引擎」列宽度计算,主要计算Table中的scroll.x的数据信息(列实时计算)。

Methods

(static) toArray(input) → {Array}

「标准」Ux.toArray

将数据转换成标准的JavaScript数组:

  1. 如果是Array则直接返回副本。
  2. 如果是Set类型则将Set转换成Array的副本。
  3. 如果是非集合类型的数据,则直接加入[]符号来生成新数组。
Parameters:
Name Type Description
input any
Returns:
Type
Array

(static) toAssist(inherit, reference) → {Object}

「引擎」Ux.toAssist

辅助数据专用函数

Parameters:
Name Type Description
inherit Object

修改对象

reference ReactComponent

React组件引用信息。

Returns:

返回 $a_ 打头以及 __ 打头的辅助函数

Type
Object

(static) toCss(name) → {string}

「标准」Ux.toCss

执行CSS前缀的注入流程,根据环境变量中配置的Z_CSS_PREFIX来追加CSS类名的前缀。

Parameters:
Name Type Description
name String

当前类名称。

Returns:

返回带前缀的 css 类名。

Type
string

(static) toForm(staticForm, dynamicForm) → {Object}

「引擎」Ux.toForm

将两个form的配置进行合并的专用操作,主要合并项:

  1. ui:两个表单直接连接。
  2. hidden:两个表单的隐藏字段连接。
  3. initial:初始值二者合并。
  4. mapping:映射值二者合并。
Parameters:
Name Type Description
staticForm Object

静态表单配置。

dynamicForm Object

动态表单配置。

Returns:

返回最终的表单配置。

Type
Object

(static) toGrid(config) → {Object}

「引擎」Ux.toGrid

生成 Grid 布局的宽度运算,表单中专用,1、2、3、4列不同布局处理。

{
    grid: "数值,不同数值对应不同宽度"
}
grid值 宽度
5 20%
4 25%
3 33.33%
2 50%
1 100%
Parameters:
Name Type Description
config Object

传入配置数据

Returns:

返回 style 属性

Type
Object

(static) toGridSpan(columns, index) → {Object}

「引擎」Ux.toGridSpan

根据列计算 span / offset 等相关信息,针对布局执行核心操作。

Parameters:
Name Type Default Description
columns Number 4

列信息

index Number 0

是否纳入 index 执行计算

Returns:

返回可用于 Col 的属性

Type
Object

(static) toHeight(adjust) → {number}

「标准」Ux.toHeight

根据修正宽度计算组件最大高度信息,按分辨率智能切换。

Parameters:
Name Type Default Description
adjust Number 0

修正高度值。

Returns:

返回最终计算的页面高度值。

Type
number

(static) toHeightState(adjust) → {Object}

「标准」Ux.toHeightState

高度修正专用的状态生成器:

{
    $heightStyle: {
         style: {
             maxHeight
         }
    },
    $heightValue: number
}
Parameters:
Name Type Description
adjust Number

修正高度值。

Returns:

返回最终状态的数据结构

Type
Object

(static) toJson(input) → {null|any}

「标准」Ux.toJson

内部直接调用JSON.parse解析,将字符串转换成对象,如果转换出错则直接返回null值。

Parameters:
Name Type Description
input any

传入的被转换对象。

Returns:

转换出来的Json对象。

Type
null | any

(static) toKey(key, assist) → {string}

「标准」Ux.toKey

生成 Assist / Tabular 专用键值数据。

Parameters:
Name Type Default Description
key String

Assist/Tabular辅助数据的 key 值。

assist boolean true

是否 Assist 直接数据。

Returns:

生成最终键。

Type
string

(static) toLimit(props, limits) → {Object}

「引擎」Ux.toLimit

功能和 valueLimit相同,同样的执行操作,用于不同的场景。

  • valueLimit 属于标准函数。
  • toLimit 在自定义组件中调用。
Parameters:
Name Type Description
props Props

React组件的属性值。

limits Array

需要限制的 keys 的值。

Returns:

返回限制过后的属性值。

Type
Object

「标准」Ux.toLink

  1. 如果 data 是 Object,则针对 data 中的任何一个对象的 uri 执行路由转换。
  2. 如果 data 是 Array,则针对 data 中的任何一个元素对象执行 uri 转换。
  3. 如果 data 是 String,则直接执行转换。
Parameters:
Name Type Description
data String | Object

输入的转换源。

$app DataObject

应用程序对象。

Returns:

转换的最终数据。

Type
string | any

(static) toLoading(consumer, seed)

「标准」Ux.toLoading

加载效果界面专用的延迟执行方法,主要用于 ajax 和界面效果联通。

Parameters:
Name Type Description
consumer function

执行函数

seed Number

加载的时间单位

(static) toLogout(cleanApp) → {any}

「引擎」Ux.toLogout

登录注销专用函数,配合当前系统中的信息实现用户注销功能。

Parameters:
Name Type Default Description
cleanApp Boolean true

是否清除应用信息(登录时不清除)

Returns:

返回注销结果。

Type
any

(static) toMessage(content, error) → {Object}

「标准」Ux.toMessage

消息配置转换函数

  1. error = true:最终调用 message.error 处理。
  2. error = false:最终调用 message.success 处理。
Parameters:
Name Type Default Description
content String

内容信息。

error boolean false

是否呈现错误信息。

Returns:

返回消息配置。

Type
Object

(static) toOriginal(reference, switched)

「引擎」Ux.toOriginal

带原始参数target的核心路由跳转功能,新参数中不包含key, id, target,可以和 toRoute 配合使用。

  • target:该值为原始的路由路径,如果有值则直接跳转,用于登录控制过后返回原始页面专用。
Parameters:
Name Type Description
reference ReactComponent

React组件引用。

switched String

传入内容替换掉 Cv.ENTRY_ADMIN

(static) toPagination(data, query, config)

「引擎」Ux.toPagination

data的数据结构

{
    "list": [],
    "count":10
}

查询条件类

{
    "pager":{
        "page": 1,
        "size": 10
    },
    "criteria": {

    },
    "sorter":[],
    "projection":[]
}
Parameters:
Name Type Description
data Object

数据信息

query Object

查询条件专用雷

config Object

额外的配置

Returns:

返回生成好的 Table 专用的 pagination

(static) toPassword(reference)

「引擎」Ux.toPassword

直接重定向到密码更改页,带参数控制 limitation=true

Parameters:
Name Type Description
reference ReactComponent

React组件引用。

(static) toPid(reference, data, state)

「引擎」Ux.toPid

根据 pid 的值计算 defaultOpenKeys 和 defaultSelectedKeys 值。

Parameters:
Name Type Description
reference ReactComponent

React组件引用信息。

data Array

菜单数据信息。

state Object

被修改的状态信息

(static) toQuery(name) → {string|null}

「标准」Ux.toQuery

直接读取查询路径中的查询参数,如:/uri?name=value&name1=value1

import Ux from 'ux';

const value = Ux.toQuery("name");
const value1 = Ux.toQuery("name1");
// value 的值是 "value";
// value1 的值是 "value1";

特殊点需要说明:特殊参数 target 会在读取过程中进行判断:

1. 如果 target = x 的 x 中包含了 '/',则表示当前的target不需要执行Base64的decoding操作。
2. 在 '/' 之外,target参数会被Base64算法执行解码操作,还原原始的链接信息。
Parameters:
Name Type Description
name String

需要读取的查询参数名称。

Returns:

返回读取的参数值。

Type
string | null

(static) toRoute(reference, uri, params)

「引擎」Ux.toRoute

执行 react-router 的路由跳转功能,路由地址中可以包含前缀,也可以不包含前缀,但框架内部会存在内部逻辑。

1. 特殊参数

1)mid为特殊参数,表示模块信息,对应动态中的module(app, module, page) 2)pid为特殊参数,表示页面信息,对应动态中的page(app, module, page) 3)target为Base64处理过的目标变量,它表示当前页面如果调用toRoute失败时会直接执行target页面

2. 参数读取流程

  1. 如果params中传入了mid, pid,那么优先考虑params中的值:
    1. 如果是二参调用,则追加mid / pid参数到目标页面中(标准菜单处理办法)
    2. 如果是三参调用,只提供mid,则表示模块页面路由
    3. 如果是三参调用,提供了mid和pid,则表示直接引导到模块中的某个页面
  2. 如果params中传入了target,则追加target参数并执行Base64编码,如果没传该参数则直接忽略
  3. 其他参数直接忽略掉,不执行传入,除非在params中传入新参数。

3. 路径解析流程

  1. 先处理基础路径
    1. 如果基础路径中包含了参数如:uri?p1=v1&p2=v2,则追加参数时&为前缀 --> baseUri
    2. 如果基础路径以Z_ROUTE为前缀,则不追加路由前缀,如果不以Z_ROUTE为前缀,则追加Z_ROUTE前缀,react-router专用
  2. 参数对部分,主要考虑前缀信息,如果本身路径带了参数,则前缀使用&符号(追加参数模式),如果路径本身不带参数,则前缀使用?符号(设置参数模式)
Parameters:
Name Type Description
reference ReactComponent

React组件引用。

uri String

跳转路由信息,会追加CV["ROUTE"]的前缀执行跳转。

params Object

当前路由所需参数信息

(static) toTime(momentValue, timeStr) → {Moment}

「标准」Ux.toTime

设置 moment 对象中的固定时间信息(设置时、分、秒),根据 timeStr 进行日期格式解析。

Parameters:
Name Type Description
momentValue Moment

被转换的合法的 moment 对象。

timeStr String

传入的合法日期时间格式。

Returns:

返回一个合法的 moment 对象。

Type
Moment

(static) toTree(data, config) → {Array}

「标准」Ux.toTree

整个树的每一个节点会包含 children 的叶节点信息,一个节点可能包含多个叶节点,顶层数组只包括顶层父类数组。

Parameters:
Name Type Description
data Array

输入数组数据。

config Object

传入的树配置。

Returns:

返回标准树桩结构。

Type
Array

(static) toTreeArray(data, config) → {Array}

「标准」Ux.toTreeArray

构造树形数组,每个元素都是一个平行节点,核心结构:

{
    "data": {
        "...": "原始数据"
    },
    key: "树上的每个节点的主键字段",
    parent: "树上构造整个树的节点时的父节点字段",
    value: "树节点每个节点的值",
    text: "树节点每个节点显示文字",
    title: "树节点每个节点标题",
    sort: "树节点的排序字段",
    leaf: "当前树节点是否叶节点的检查字段",
    level: "当前节点的level字段,也可以直接计算",

    disabled: "是否禁用,提取属性",
    isLeaf: "提取叶节点属性",
    selectable: "是否可选中,提取属性",
    className: "风格Css 对应的类名",
    title: "标题",
    icon: "图标"
}

最终数据结构两层,用于很多地方的树处理,在构造树的过程中每个节点都会包含这些基础属性,而原始记录存在于data节点。

Parameters:
Name Type Description
data Array

输入数组数据。

config Object

传入的树配置。

Returns:

返回最终的树形数组。

Type
Array

(static) toTreeConfig(config) → {Object}

「标准」Ux.toTreeConfig

针对树形配置执行规范化处理,处理过后的数据结构如:

{
    key: "树上的每个节点的主键字段",
    parent: "树上构造整个树的节点时的父节点字段",
    value: "树节点每个节点的值",
    text: "树节点每个节点显示文字",
    title: "树节点每个节点标题",
    sort: "树节点的排序字段",
    leaf: "当前树节点是否叶节点的检查字段",
    level: "当前节点的level字段,也可以直接计算"
}
Parameters:
Name Type Description
config Object

传入的原始树配置。

Returns:

返回合法的树配置对象。

Type
Object

(static) toWidth(literal) → {number}

「标准」Ux.toWidth

如果是中文字符返回长度 2,如果是英文字符返回长度 1,可计算像素。

Parameters:
Name Type Description
literal String

输入字符。

Returns:

返回字符宽度。

Type
number

(static) toX(columns) → {number}

「引擎」Ux.toX

根据列信息自动计算表格宽度,计算值会包含多种不同的列值。

Parameters:
Name Type Description
columns Array

列配置数组

Returns:

返回最终宽度

Type
number