外观
前端工具类 abUtils
abUtils 为通用的且与项目业务、UI框架 无关的工具类。可供其他项目使用(如移动端)
引入方式:
jsimport * as AbUtil from '~/agilebpm/util/ab-util' AbUtil.xxx
文件位置:
agilebpm/util/ab-util.ts
深度克隆JSON clone
返回值: JSON
用法:
jsimport {clone} from '~/agilebpm/util/ab-util' const json = {a:1,b:2} const newJSON = clone(json)
浅拷贝JSON,合并拷贝JSON easyClone
参数:
src: 拷贝源对象
dest: 拷贝目标对象
返回值: 合并双方JSON 后的JSON,克隆来的属性内存实际指向旧JSON属性
示例:
jsimport {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": "移动端表单" } }
用法:
jsimport {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: 字段
用法:
jsimport {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: 随机计算次数
用法:
jsimport {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: 表/视图返回的数据
用法:
jsimport {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 字段
用法:
jsimport {listToTree} from '~/agilebpm/util/ab-util' listToTree(data,root,parentKey,key)
String转成number toNumber
把字符串值格式成数值
参数:
x: 字符串
用法:
jsimport {toNumber} from '~/agilebpm/util/ab-util' const x = '2' const num = toNumber(x) + 1 // num 返回值 3
转成千分位 comdify
把字符串数值格式成千分位
参数:
v: 字符串
用法:
jsimport {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级
用法:
jsimport {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: 转化金额
用法:
jsimport {convertCurrency} from '~/agilebpm/util/ab-util' const currencyDigits = '9876543.21' const amount = convertCurrency(currencyDigits) // amount 返回值 '玖佰捌拾柒万陆仟伍佰肆拾叁元贰角壹分'