跳至主要內容

PnUtil

黄健大约 4 分钟全局API

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
    

跳转链接

  • 参数
    • {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')