注意:本文为自动抓取供AI学习!!格式未经调整,点击[查看原文档](www.yuque.com/liuhuo-nc80… 《公共方法》)!
通用
i.colord → string 字符串染色
**用途**:文本字符串加上颜色等样式,返回以span为标签的html文本
**参数**:
**text**
显示文字。
**color**** = 'rgb(106,138,54)'**
字体颜色
**bold**** = true**
文字是否加粗
**返回**:span标签的html文本
i.toHtmlText → string 文本中设定链接文字
**用途**:文本字符串加上颜色等样式,返回以span为标签的html文本
**参数**:
**text**
整体文本内容。
**style**** = 'font-size:12px'**
文本整体默认样式。
**linkedText**** = null。**
在text文本内,指定存在的文字片段,作为链接文字。
**linkURLorCallback**** = null**
链接文字点击跳转的url地址,或者回调函数。
**linkedStyle**** = 'font-size:12px'**
链接文字的样式。
**返回**:html文本字符串。
i.alert → void 信息弹窗
**用途**:编辑或运行状态下弹窗提示。
**参数**:
**msg**
显示文字。
**title**** = '警告'**
弹窗标题。
**hasCancel**** = false**
弹窗是否有取消按钮。
**cb**** = null**
弹窗关闭的回调函数。
**gv**** = nul**
弹窗显示场景对象,通常默认为空即可。
**size**** = [300, 150]**
弹窗宽、高。
**返回**:无,可以通过回调参数处理关闭后的操作。
**示例**:弹窗提示,文字中间部分设置背景色,部分文字可点击链接跳转。代码如下:
let coloredText = _i.colored(
'如果一定要交互连线,可嵌套到容器组件,在上层页面通过继承属性后再去连线(查看示例)。',
'rgb(189,189,189)',
false
);
let htmlText = _i.toHtmlText(
`当前组件没有交互事件,将自动转成拓扑连线!<br>${coloredText}`,
null,
'查看示例',
'http://www.baidu.com'
);
i.alert(
htmlText,
'警告',
false,
null,
null,
[350, 200]
);
i.objectToKeyValues → void 对象和键值组互转
**用途**:对象转成键组合值组,并且支持多种常见格式对应关系,以及双向同步时的策略。
参数
- obj =
**{}**
对象内容,引用传参和返回。相当于api组件的jsonFormat、工具函数的inputs。
- keys =
**[]**
参数键组,引用传参和返回。通常叫paramKeys或inputKeys等。
- values =
**[]**
参数值组,引用传参和返回。通常叫paramValues或inputValues等。
- isObjInputing
目前由哪个参数传入设置。
- true:传入
obj设置,值将要同步给keys、values。 - false:传入
keys或values,值将要同步给obj
- mode
数字类型,与枚举类型JsonStruct依次对应。
- 0:
flatWhole``全部扁平化keys和values都是按照obj完全扁平化展开的。obj显示的始终是keyURL作为键,与keys、values完全对应。- 对于字符串类型的值,即便是对象文本,也当基本类型,不自动解析和展开。
- 输入不论是obj还是keys/values,都不一定能保持输入值,最终都取决于构成的对象,扁平化后的对象,以及键值对各自数组。
- 字段值有对象文本字符串,都不会被转成对象然后扁平或结构化,而是当作普通字符串值来处理!!
let a = {
"username": "develop",
"psw": "iotos123456",
"extra": {
"email": "jone@aiotos.net",
"gender": 2, //与c的对应值不同
"addr":"shenzhen" //比b中多出的字段
}
},
b = ['username', 'psw', 'extra.email', 'extra.gender']
c = ['develop', 'iotos123456', 'jone@aiotos.net', 1];
i.objectToKeyValues(a,b,c,true,0); //第三个参数传入true,即以obj输入为准。
//obj引用输出:
{
"username": "develop",
"psw": "iotos123456",
"extra.email": "jone@aiotos.net",
"extra.gender": 2,
"extra.addr": "shenzhen"
}
//keys引用输出(字段以obj的为准,自动增加了!)
["username", "psw", "extra.email", "extra.gender", "extra.addr" ]
//values引用输出(值也一样,跟obj的保持一致)
["develop", "iotos123456", "jone@aiotos.net", 2, "shenzhen"]
i.objectToKeyValues(a,b,c,false,0); //第三个参数传入false,即以keys/values输入为准。
//obj引用输出(以keys/values为准了!)
{
"username": "develop",
"psw": "iotos123456",
"extra.email": "jone@aiotos.net",
"extra.gender": 1 //之前自己的值2,被values的同步过来了
//之前自己的字段addr,被keys同步过来去掉了!
}
//keys引用输出:
["username", "psw", "extra.email", "extra.gender"]
//values引用输出:
["develop", "iotos123456", "jone@aiotos.net", 1]
- 1:
structWhole``全部结构化- 与模式0类似,区别在于这里
obj始终是完整结构化后的对象。keys/values与上面相同。 - 字段值有对象文本字符串,都不会被转成对象然后扁平或结构化,而是当作普通字符串值来处理!!
- 与模式0类似,区别在于这里
let a = {
"username": "develop",
"psw": "iotos123456",
"extra.email": "jone@aiotos.net",
"extra.gender": 2, //与c的对应值不同
"extra.addr":"shenzhen" //比b中多出的字段
},
b = ['username', 'psw', 'extra.email', 'extra.gender']
c = ['develop', 'iotos123456', 'jone@aiotos.net', 1];
i.objectToKeyValues(a,b,c,true,1); //第三个参数传入true,即以obj输入为准。
//obj引用输出:
{
"username": "develop",
"psw": "iotos123456",
"extra": {
"email": "jone@aiotos.net",
"gender": 2,
"addr": "shenzhen"
//还有个可能没显示的_upper: () => parent
}
}
//keys和values跟模式0的输出1的一样:
//keys引用输出(字段以obj的为准,自动增加了!)
["username", "psw", "extra.email", "extra.gender", "extra.addr" ]
//values引用输出(值也一样,跟obj的保持一致)
["develop", "iotos123456", "jone@aiotos.net", 2, "shenzhen"]
i.objectToKeyValues(a,b,c,false,1); //第三个参数传入false,即以keys/values输入为准。
//obj引用输出(以keys/values为准了!)
{
"username": "develop",
"psw": "iotos123456",
"extra": {
"email": "jone@aiotos.net",
"gender": 1
}
}
//keys引用输出:
["username", "psw", "extra.email", "extra.gender"]
//values引用输出:
["develop", "iotos123456", "jone@aiotos.net",1 ]
- 2:
structKeysConst``字段值结构化- 与模式1几乎一样。
- 从2开始,包括3和4,字段keys的名称、数量、顺序,将完全取决于自身的设置!而前面0和1,keys/values、obj,都无法决定自身输入的就是最终的,因为都要转换成全扁平或全结构,然后分别都按最终数据来适配属性值!
从2开始的这几项,字段keys都保持固定不变!变化的是values和,以及obj(其实obj也不变,也都是结构化,不会再扁平化,只是存在对象文本、转成对象值,以及对象值转成对象文本时,会被自动转换)。
- 字段keys保持设置,不会变化。对应的值values,原本是什么就是什么,可以是对象结构、对象文本等。当然,obj和values存在双向赋值的情况,最终看以谁为准,单始终保持keys不变!
- 字段值有对象文本字符串,都不会被转成对象然后扁平或结构化,而是当作普通字符串值来处理!!
let a = {
"username": "develop",
"psw": "iotos123456",
"extra.email": "fire@aiotos.net",
"extra.gender": 2,
"extra.addr":"shenzhen"
},
b = ['username', 'extra'] //注意,这里去掉了psw字段!!
c = ['develop', 'iotos123456', 'jone@aiotos.net', 1];
i.objectToKeyValues(a,b,c,true,1); //第三个参数传入true,即以obj输入为准。
//obj引用输出:
{
"username": "develop",
//psw字段没有了!!
"extra": {
"email": "jone@aiotos.net",
"gender": 2,
"addr": "shenzhen"
//还有个可能没显示的__upper: () => parent
}
}
//keys引用输出,保持原封不动!!!
b = ['username', 'extra']
//values引用输出(跟keys的保持一致,值为原始obj的)
[
"develop",
{
"email": "fire@aiotos.net",
"gender": 2,
"addr": "shenzhen"
}
]
i.objectToKeyValues(a,b,c,false,2); //第三个参数传入false,即以keys/values输入为准。
//obj引用输出(以keys/values为准了!)
{
"username": "develop",
//以keys/values为准,首先没有psw字段,其次,extra对应位置的值为iotos123456了
"extra": "iotos123456"
}
//keys引用输出,保持原封不动!!!
b = ['username', 'extra']
//values引用输出:
["develop", "iotos123456"]
let a = {
"username": "develop",
"psw": "iotos123456",
"extra.email": "fire@aiotos.net",
"extra.gender": 2,
"extra.addr":"shenzhen"
},
b = ['username', 'extra.email', 'extra.addr'] //注意,这里有keyURL
c = ['develop', 'iotos123456', 'jone@aiotos.net', 1];
i.objectToKeyValues(a,b,c,false,2); //第三个参数传入false,即以keys/values输入为准。
//obj引用输出
{
"username": "develop",
"extra": { //对象结构
"email": "iotos123456",
"addr": "jone@aiotos.net"
}
}
//其他略
- 3:
structValToObj``字段值转对象- 与模式2几乎相同。
- values中只要有对象字符串的,都会转成字对象,并同步到obj,其他都不影响。
let a = {
"username": "develop",
"psw": "iotos123456",
"extra.email": "fire@aiotos.net",
"extra.gender": 2,
"extra.addr":"shenzhen"
},
b = ['username', 'extra'] //注意,这里去掉了psw字段!!
c = ['develop', 'iotos123456', 'jone@aiotos.net', 1];
//不论三个参数是true还是false,结果跟模式2一模一样!
i.objectToKeyValues(a,b,c,true,3);
let a = {
"username": "develop",
"psw": "iotos123456",
"extra": "{\n \"email\": \"jone@aiotos.net\",\n \"gender\": 1\n }"
},
b = ['username', 'extra'] //注意,这里去掉了psw字段!!
c = ['develop', 'iotos123456', 'jone@aiotos.net', 1];
i.objectToKeyValues(a,b,c,true,3); //第三个参数为true,以obj值为准!
//obj引用输出
{
"username": "develop",
"extra": { //字符串转对象了!!
"email": "jone@aiotos.net",
"gender": 1
}
}
//keys引用输出,保持原封不动!!!
b = ['username', 'extra']
//values引用输出:
[
"develop",
{ //对象文本字符串,转成对象了!!
"email": "jone@aiotos.net",
"gender": 1
}
]
- 4:
structValToStr``字段值转文本- 与模式3几乎相同。只是反过来,如果是对象,就转成字符串!
let a = {
"username": "develop",
"psw": "iotos123456",
"extra.email": "fire@aiotos.net",
"extra.gender": 2,
"extra.addr":"shenzhen"
},
b = ['username', 'extra'] //注意,这里去掉了psw字段!!
c = ['develop', 'iotos123456', 'jone@aiotos.net', 1];
i.objectToKeyValues(a,b,c,true,4); //第三个参数为true,以obj值为准!
//obj引用输出
{
"username": "develop",
//先参考模式2转成对象,然后对象值转成字符串!!
"extra": "{\n \"email\": \"fire@aiotos.net\",\n \"gender\": 2,\n \"addr\": \"shenzhen\"\n}"
}
//keys引用输出,保持原封不动!!!
b = ['username', 'extra']
//values引用输出:
[
"develop",
//对象值转成了字符串!
"{\n \"email\": \"fire@aiotos.net\",\n \"gender\": 2,\n \"addr\": \"shenzhen\"\n}"
]
i.objectToKeyValues(a,b,c,false,3); //第三个参数为false,以keys/values值为准!
let a = {
"username": "develop",
"psw": "iotos123456",
"extra.email": "fire@aiotos.net",
"extra.gender": 2,
"extra.addr":"shenzhen"
},
b = ['username', 'extra.email', 'extra.addr'] //注意,这里
c = ['develop', 'iotos123456', 'jone@aiotos.net', 1];
i.objectToKeyValues(a,b,c,false,4); //第三个参数传入false,即以ke
let a = {
"username": "develop",
"psw": "iotos123456",
"extra.email": "fire@aiotos.net",
"extra.gender": 2,
"extra.addr":"shenzhen"
},
b = ['username', 'extra.email', 'extra.addr'] //注意,这里有keyURL
c = ['develop', 'iotos123456', 'jone@aiotos.net', 1];
i.objectToKeyValues(a,b,c,true,4);
//obj引用输出
{
"username": "develop",
"extra": "iotos123456"
}
//keys引用输出,保持原封不动!!!
b = ['username', 'extra']
//values引用输出:
["develop", "iotos123456"]
返回
无。obj、keys、values均通过引用返回。