值转换模块
转换专用模块
函数名 | 说明 |
---|---|
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数组:
- 如果是Array则直接返回副本。
- 如果是Set类型则将Set转换成Array的副本。
- 如果是非集合类型的数据,则直接加入
[]
符号来生成新数组。
Parameters:
Name | Type | Description |
---|---|---|
input |
any |
Returns:
- Type
- Array
(static) toAssist(inherit, reference) → {Object}
「引擎」Ux.toAssist
辅助数据专用函数
Parameters:
Name | Type | Description |
---|---|---|
inherit |
Object | 修改对象 |
reference |
Object | 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) toFileSize(value, unit) → {Object}
「标准」Ux.toFileSize
读取文件大小专用方法,解析成合适方法
Parameters:
Name | Type | Description |
---|---|---|
value |
Number | 修正高度值。 |
unit |
String | 单位信息 |
Returns:
返回最终状态的数据结构
- Type
- Object
(static) toForm(staticForm, dynamicForm) → {Object}
「引擎」Ux.toForm
将两个form的配置进行合并的专用操作,主要合并项:
- ui:两个表单直接连接。
- hidden:两个表单的隐藏字段连接。
- initial:初始值二者合并。
- 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 |
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
(static) toLink(data, $app) → {string|any}
「标准」Ux.toLink
- 如果 data 是 Object,则针对 data 中的任何一个对象的
uri
执行路由转换。 - 如果 data 是 Array,则针对 data 中的任何一个元素对象执行
uri
转换。 - 如果 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
消息配置转换函数
- error = true:最终调用 message.error 处理。
- error = false:最终调用 message.success 处理。
Parameters:
Name | Type | Default | Description |
---|---|---|---|
content |
String | 内容信息。 |
|
error |
boolean |
false
|
是否呈现错误信息。 |
Returns:
返回消息配置。
- Type
- Object
(static) toOriginal(reference, switched, exclude)
「引擎」Ux.toOriginal
带原始参数target
的核心路由跳转功能,新参数中不包含key, id, target
,可以和 toRoute
配合使用。
- target:该值为原始的路由路径,如果有值则直接跳转,用于登录控制过后返回原始页面专用。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React组件引用。 |
switched |
String | 传入内容替换掉 Cv.ENTRY_ADMIN |
exclude |
Array | 移除参数集 |
(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 |
Object | ReactComponent | React组件引用。 |
(static) toPid(reference, data, state)
「引擎」Ux.toPid
根据 pid 的值计算 defaultOpenKeys 和 defaultSelectedKeys 值。
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React组件引用信息。 |
data |
Array | 菜单数据信息。 |
state |
Object | 被修改的状态信息 |
(static) toProtocol(value, port) → {string|null}
「标准」Ux.toProtocol
将一个合法协议地址解析成对象
- 协议格式如
<protocol>://<username>:<password>@<hostname>:<port>/<path>
- 账号部分为
<username>:<password>
,是可选的。 - 端口部分可没有
<hostname>:<port>
和<hostname>
两种格式都是合法的。
最终解析的结果如:
{
"protocol": "协议类型",
"username": "账号",
"password": "密码",
"hostname": "主机域名或IP",
"port": "端口",
"path": "路径地址"
}
系统会自动计算参数中的 key = value 相关信息
Parameters:
Name | Type | Default | Description |
---|---|---|---|
value |
String | 需要解析的协议值 |
|
port |
Number |
0
|
默认端口号 |
Returns:
返回读取的参数值。
- Type
- string | null
(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 会在读取过程中进行判断:
- 如果 target = x 的 x 中包含了 '/',则表示当前的target不需要执行Base64的decoding操作。
- 在 '/' 之外,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. 参数读取流程
- 如果params中传入了mid, pid,那么优先考虑params中的值:
- 如果是二参调用,则追加mid / pid参数到目标页面中(标准菜单处理办法)
- 如果是三参调用,只提供mid,则表示模块页面路由
- 如果是三参调用,提供了mid和pid,则表示直接引导到模块中的某个页面
- 如果params中传入了target,则追加target参数并执行Base64编码,如果没传该参数则直接忽略
- 其他参数直接忽略掉,不执行传入,除非在params中传入新参数。
3. 路径解析流程
- 先处理基础路径
- 如果基础路径中包含了参数如:uri?p1=v1&p2=v2,则追加参数时
&
为前缀 --> baseUri - 如果基础路径以
Z_ROUTE
为前缀,则不追加路由前缀,如果不以Z_ROUTE
为前缀,则追加Z_ROUTE
前缀,react-router专用
- 如果基础路径中包含了参数如:uri?p1=v1&p2=v2,则追加参数时
- 参数对部分,主要考虑前缀信息,如果本身路径带了参数,则前缀使用
&
符号(追加参数模式),如果路径本身不带参数,则前缀使用?
符号(设置参数模式)
Parameters:
Name | Type | Description |
---|---|---|
reference |
Object | ReactComponent | React组件引用。 |
uri |
String | 跳转路由信息,会追加 |
params |
Object | 当前路由所需参数信息 |
(static) toTime(momentValue, timeStr) → {Moment}
「标准」Ux.toTime
设置 moment 对象中的固定时间信息(设置时、分、秒),根据 timeStr
进行日期格式解析。
Parameters:
Name | Type | Description |
---|---|---|
momentValue |
Moment | 被转换的合法的 moment 对象。 |
timeStr |
String | Moment | 传入的合法日期时间格式。 |
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字段,也可以直接计算",
root: "根节点从哪一级开始,默认从1",
}
Parameters:
Name | Type | Description |
---|---|---|
config |
Object | 传入的原始树配置。 |
Returns:
返回合法的树配置对象。
- Type
- Object
(static) toUrl(uri, key, value) → {string|null}
「标准」Ux.toUrl
将key=value
追加到url路径中,如
// url = /api/params?name=x
Ux.toUrl(url, "pass", "111")
// url = /api/params?name=x&pass=1111
系统会自动计算参数中的 key = value 相关信息
Parameters:
Name | Type | Description |
---|---|---|
uri |
String | 需要读取的查询参数名称。 |
key |
String | 追加的参数名 |
value |
Any | 追加的参数值 |
Returns:
返回读取的参数值。
- Type
- string | null
(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