直接跳到内容

前端工具类 abUtils

abUtils 为通用的且与项目业务、UI框架 无关的工具类。可供其他项目使用(如移动端)

  • 引入方式:

    js
    import * as AbUtil from '~/agilebpm/util/ab-util'
    AbUtil.xxx
    
  • 文件位置:

    agilebpm/util/ab-util.ts

深度克隆JSON clone

  • 返回值: JSON

  • 用法:

    js
    import  {clone}  from '~/agilebpm/util/ab-util'
    const json = {a:1,b:2}
    const newJSON = clone(json)
    

浅拷贝JSON,合并拷贝JSON easyClone

  • 参数:

    src: 拷贝源对象

    dest: 拷贝目标对象

  • 返回值: 合并双方JSON 后的JSON,克隆来的属性内存实际指向旧JSON属性

  • 示例:

    js
    import  {easyClone}  from '~/agilebpm/util/ab-util'
    const src =  {
      "PC": {
        "key": "pc",
        "desc": "pc端表单"
      },
      "MOBILE": {
        "key": "mobile",
        "desc": "移动端表单"
      }
    }
    const dest = {a:1,b:2}
    easyClone(src,dest)
    
    // clone 后结果
    dest = {
        "a": 1,
        "b": 2,
        "PC": {
            "key": "pc",
            "desc": "pc端表单"
        },
        "MOBILE": {
            "key": "mobile",
         "desc": "移动端表单"
         }
      }
      
      
    

查询枚举 getEnum

查询枚举以list或者Map的形式返回数据

  • 参数:

    path: 枚举的Class路径

    listModel: 是否为list模式,默认值false 数据结构为Map ,以枚举key为key

  • 返回值:

    js
    #eg1:
    enumObj = [
          {
              "key": "pc",
              "$VALUES": [
                  "PC",
                  "MOBILE"
              ],
              "desc": "pc端表单"
          },
          {
              "key": "mobile",
              "$VALUES": [
                  "PC",
                  "MOBILE"
              ],
              "desc": "移动端表单"
          }
      ]
    
    #eg2:
    info.formType = {
          "PC": {
              "key": "pc",
              "$VALUES": [
                  "PC",
                  "MOBILE"
              ],
              "desc": "pc端表单"
          },
          "MOBILE": {
              "key": "mobile",
              "$VALUES": [
                  "PC",
                  "MOBILE"
              ],
              "desc": "移动端表单"
          }
      }
    
  • 用法:

    js
    import  {getEnum}  from '~/agilebpm/util/ab-util'
    const info: any = reactive({
      formType:''
    })
    
    #eg1:
    const enumObj =  await getEnum('com.dstz.biz.api.constant.BizFormType',true)
    
    #eg2:
    getEnum('com.dstz.biz.api.constant.BizFormType').then((resp) => {
      info.formType = resp.data
    })
    

数组相关操作 Arrays

  • 参数:

    idx: 索引

    list: 数组

    obj: 元素

    snName: 字段

  • 用法:

    js
    import  {Arrays}  from '~/agilebpm/util/ab-util'
    #上移到顶部:
    Arrays.top(idx,list)
    
    #下移到底部:
    Arrays.bottom(idx,list)
    
    #上移一位:
    Arrays.up(idx,list)
    
    #下移一位:
    Arrays.down(idx,list)
    
    #删除:
    Arrays.del(idx,list)
    
    #删除指定对象:
    Arrays.remove(obj,list)
    
    #计算出数组下一个递增sn:
    Arrays.getNextSn(list,snName)
    

随机数相关操作 AbRandom

  • 参数:

    Min: 最小值

    Max: 最大值

    list: 数组

    len: 随机计算次数

  • 用法:

    js
    import  {AbRandom}  from '~/agilebpm/util/ab-util'
    #获取六位的随机数:
    AbRandom.randomNum6()
    
    #获取指定范围的随机数:
    AbRandom.GetRandomNum(Min,Max)
    
    #获取数组元素随机下标:
    AbRandom.GetRandomList(list)
    
    #获取指定位数的随机字符串:
    AbRandom.GetRandomStr(len)
    

查询库中的表/视图 searchObjName

根据数据源别名dsKey和名称objName查询数据库中的视图view/表table

  • 参数:

    dsKey: 数据源别名

    objName: 名称

    objType: table:表;view:视图

  • 返回值:

    resp: 表/视图返回的数据

  • 用法:

    js
    import  {searchObjName}  from '~/agilebpm/util/ab-util'
    const tableMap : any = reactive({ })
    searchObjName(dsKey,objName,objType).then((resp: any) => { 
      tableMap = resp.data 
    })
    

list转树结构 listToTree

把list结构数据转为树结构

  • 参数:

    data: list 转 树 结构,数据要有父子关系

    root: 根节点的标志

    parentKey: 父节点的字段

    key: key 字段

  • 用法:

    js
    import  {listToTree}  from '~/agilebpm/util/ab-util'
    listToTree(data,root,parentKey,key)
    

String转成number toNumber

把字符串值格式成数值

  • 参数:

    x: 字符串

  • 用法:

    js
    import  {toNumber}  from '~/agilebpm/util/ab-util'
    const x = '2'
    const num =  toNumber(x) + 1 
    
    // num 返回值 3
    

转成千分位 comdify

把字符串数值格式成千分位

  • 参数:

    v: 字符串

  • 用法:

    js
    import  {comdify}  from '~/agilebpm/util/ab-util'
    const v = '123456789'
    const m =  comdify(v)
    // m 返回值 '123,456,789'
    

时间差过滤器 timeLag

把时差毫秒数格式化成时间,支持自定义展示级别

  • 参数:

    difference: 时间差,毫秒

    level: 展示几级时间。比如1天23小时12分钟1秒 则为5级

  • 用法:

    js
    import  {timeLag}  from '~/agilebpm/util/ab-util'
    const difference = 169921000
    const level = 5
    const dateStr = timeLag(difference,level)
    //dateStr 返回值 '1天23时12分1秒'
    
    

金额过滤器 convertCurrency

可以把字符串数值转成 大写金额,如:2.1 会转化为 贰元壹角

  • 参数:

    currencyDigits: 转化金额

  • 用法:

    js
    import  {convertCurrency}  from '~/agilebpm/util/ab-util'
    const currencyDigits = '9876543.21' 
    const amount = convertCurrency(currencyDigits)
    // amount 返回值  '玖佰捌拾柒万陆仟伍佰肆拾叁元贰角壹分'
    
通用工具类 has loaded