PnUtil
PageNow提供了一系列的工具函数,这些函数均封装在PnUtil
类中,这些函数大部分全局可用,但部分函数在页面的【页面全局JS脚本】中是无法使用的,那些无法使用的我们会在函数说明中标注。
# PnUtil.uuid
生成一个UUID字符串
- 参数:无
- 返回值:UUID字符串
- 示例:
PnUtil.uuid()
# PnUtil.getTimestamp
获取当前时间戳
- 参数:无
- 返回值:时间戳
- 示例:
PnUtil.getTimestamp()
# PnUtil.getRootPath
获取项目工程根路径
参数:无
返回值:项目工程根路径字符串
用法:
例如当前PageNow系统部署的项目工程根目录为http://pagenow.cn/pagenow,那么此函数返回的值就是这个值
示例:
PnUtil.getRootPath() // => http://pagenow.cn/pagenow
# PnUtil.jumpLink
跳转链接
- 参数:
- {string} href:跳转链接
- {string} target:在何处打开链接,只有两个值 =>
_self
:当前页打开,_blank
:新窗口打开
- 返回值:无
- 示例:
PnUtil.jumpLink("http://pagenow.cn", "_blank")
# PnUtil.openIframeModal
注意
此函数在页面全局JS脚本中不可用
打开一个模态窗用于显示一个IFrame
- 参数:
- {string} href:IFrame链接
- {string} width:模态窗宽度 => 可选值:"100%" 或 "像素值px"
- {string} height:模态窗高度 => 可选值:"100%" 或 "像素值px"
- {string} scrolling:IFrame的scrolling属性,默认值:"auto"
- 返回值:无
- 示例:
PnUtil.openIframeModal("http://pagenow.cn", "100%", "100%", "auto")
# PnUtil.isMac
判断是否为Mac系统
- 参数:无
- 返回值:boolean
- 示例:
PnUtil.isMac()
# PnUtil.isWindows
判断是否为Windows系统
- 参数:无
- 返回值:boolean
- 示例:
PnUtil.isWindows()
# PnUtil.deepClone
深拷贝对象
- 参数:
- {Object} obj:被深拷贝的JS对象
- 返回值:Object
- 示例:
PnUtil.deepClone({name: "zhangsan", age: 30, sex: "男"}) // => {name: "zhangsan", age: 30, sex: "男"}
# PnUtil.deepMerge
深合并对象,将两个对象进行深度合并
- 参数:
- {Object} obj1:对象1
- {Object} obj2:对象2
- 返回值:Object
- 示例:
PnUtil.deepMerge({name: "zhangsan", age: 30, sex: "男"}, {address: "广西南宁市..."}) // => {name: "zhangsan", age: 30, sex: "男", address: "广西南宁市..."}
# PnUtil.addUrlParams
动态添加URL参数
参数:
- {string} key:键
- {string} value:值
返回值:无
用法:
使用此函数可以在当前页面的URL地址中动态添加一个参数
示例:
PnUtil.addUrlParams("str", "hello")
# PnUtil.deleteUrlParams
动态删除URL参数
参数:
- {string} key:键
返回值:无
用法:
使用此函数可以在当前页面的URL地址中动态删除一个参数
示例:
PnUtil.deleteUrlParams("str")
# PnUtil.getUrlParam
从URL中获取参数值
- 参数:
- {string} key:键
- 返回值:any 参数值
- 示例:
PnUtil.getUrlParam("str")
# PnUtil.getBrowser
获取浏览器内核与版本号
- 参数:无
- 返回值:Object
- 示例:
PnUtil.getBrowser() // => {browser: 'chrome', version: '99.0.4844.84'}
# PnUtil.cutString
删减字符串,结尾使用...替代
- 参数:
- {string} str:被删减字符串
- {number} threshold:阈值:当字符串长度超过这个阈值时,后面的字符将被使用...替代
- 返回值:string
- 示例:
PnUtil.cutString("PageNow数据可视化开发平台", 7) // => PageNow...
# PnUtil.copyToClipboard
复制文本至操作系统剪切板
- 参数:
- {string} cont:被复制的文本
- 返回值:无
- 示例:
PnUtil.copyToClipboard("PageNow数据可视化开发平台")
# PnUtil.getRandomNum
获取范围内随机数
- 参数:
- {number} start:起始值
- {number} end:结束值
- {number} fixed:保留小数位数
- 返回值:随机获取的值
- 示例:
PnUtil.getRandomNum(1, 10, 0)
# PnUtil.showMaskLayer
显示遮罩层(遮罩层基于IView的Spin组件实现)
- 参数:
- {boolean} state:状态,标识显示还是隐藏
- 返回值:无
- 示例:
// 显示 PnUtil.showMaskLayer(true) // 隐藏 PnUtil.showMaskLayer(false)
# PnUtil.isDesignerPage
获取判断当前页面是否是设计器页面
参数:无
返回值:boolean
用法:
此函数内部实现的逻辑是判断当前页面的URL地址中是否存在
/designer
字符串,如果存在,则证明是设计器页面。示例:
PnUtil.isDesignerPage()
# PnUtil.manualLaunchInteractionStream
注意
此函数在页面全局JS脚本中不可用
手动发起一次内置交互流
- 参数:
- {string} bindingVariateName:发起的交互变量
- {string} value:发送值
- 返回值:无
- 示例:
PnUtil.manualLaunchInteractionStream("str", "hello")
# PnUtil.multiManualLaunchInteractionStream
注意
此函数在页面全局JS脚本中不可用
手动发起一组内置交互流
- 参数:
- {Array} interactionStreams:交互流信息数组,数组项:{bindingVariateName: '', value: ''}
- 返回值:无
- 示例:
PnUtil.multiManualLaunchInteractionStream( [ {bindingVariateName: 'str', value: 'hello'}, {bindingVariateName: 'str2', value: 'hello2'} ] )
# PnUtil.loadCSS
加载外部CSS样式文件
- 参数:
- {String} url:CSS文件地址
- {Boolean} isCache:是否缓存,默认false
- 返回值:无
- 示例:
PnUtil.loadCSS('http://xxxxx/xxx.css')