1.0.31 • Published 10 months ago
@o2oa/util v1.0.31
O2OA通用工具库
导出通用方法
- browser
- Object 浏览器检测信息
- uuid () : string
- Function 生成uuid
- typeOf ( any ) : string
- Function 检查变量类型
- execScript ( code ) : string
- Function 通过嵌入 script 标签,执行js脚本
- exec ( text, bind, arg=null, throwError= false ) : any
- Function 执行代码片段, 使用Function包装
- defer ( fn, timer = 20, bind, arg ) : promise
- Function 延时调用函数。有些方法只需要调用一次,但有可能在短时间内被多次触发时使用
- copyTo ( text ) : promise
- Function 将文本内容拷贝到剪切板, 返回Promise, 如果剪贴板的内容被更新,它就会resolve,如果无法写入,则reject
- htmlEncode ( html ) : string
- Function 对HTML文本进行编码
- htmlDecode ( text ) : string
- Function 对编码后的HTML文本进行解码
- htmlFilter ( html ) : string
- Function 过滤掉html中的javascript脚本内容,防止javascript注入
- cloneObject ( obj ) : object
- Function 深度克隆一个Json对象,!!!不要传入javascript对象!!!
- mergeObject ( obj... ) : object
- Function 合并多个JSON对象,传入要合并的多个JSON对象,并返回一个新的JSON对象。 !!!不要传入javascript对象!!!
- openWindow ( url )
- Function 创建<a>标签在新浏览器窗口中打开url,防止浏览器禁止弹出窗口
- camelCase ( str ) : string
- Function 将用 - 分隔的字符串,转换驼峰拼写格式
- hyphenate ( str ) : string
- Function 将驼峰命名字符串转换为用 - 分隔每个单词
- cleanText ( str ) : string
- Function 清除给定字符串的多余空字符
- capitalize ( str ) : string
- Function 将字符串首字母大写
- parallel ( promise... ) : promise
- async Function 传入多个promise,并行处理,等价与Promise.all
- attempt ( obj ) : string | any
- Function 传入一个对象或map,返回第一个值为true的 key
- isIterator ( any ) : boolean
- Function 判断传入的对象是否是可迭代对象
- isPromise ( any ) : boolean
- Function 判断传入的对象是否是Promise
- byteLength ( str ) : number
- Function 计算一个字符串所占的字节数
- asyncLoading ( node, fun, ...par ) : any
- Function 第二个参数为异步函数,返回函数的返回值,并为node元素添加loading样式
- jsonToCss ( json ) : any
- Function 将json对象转换为css文本,json的key为选择器
- erase ( arr, value ) : any
- Function 在arr中删除所有值等于value的元素,直接修改arr
- eraseFind ( arr, value ) : any
- Function 在arr中删除所有值等于value的元素,如果value是function,则使用findIndex,将value作为执行函数找到要删除元素的索引,直接修改arr
- intersection ( arr1, arr2, fun ) : any
- Function 获取两个数组中的交集元素
- complement ( arr1, arr2, fun ) : any
- Function 获取两个数组中, A数组相对于 B数组的补集。(在 B中存在,但 A中不存在的元素)
- typeOfOrg ( str ) : string
- Function 判断一个字符串,是否是o2oa组织的distinguishedName,并判断类型。返回类型:I(身份)、P(个人)、U(组织)、G(群组)、R(角色)、UD(职务)、UA(组织属性)、PA(个人属性)、unknown
- cn ( distinguishedName ) : string
- Function 返回distinguishedName的简称
DOM操作
import {dom} from '@o2oa/util';
const el = dom('div#myid.classname', {
"data-o2-attr": "div元素的自定义属性"
});
document.body.append(el);
dom.addClass('input#id', 'newClassname');
//...
- dom.el ( selector, el ) : Element
- 此方法返回文档中与指定选择器或选择器组匹配的第一个 Element对象。如果找不到匹配项,则返回null。(同document.querySelector或Element.querySelector方法)
- dom.els ( selector, el ) : NodeList
- 此方法返回与指定的选择器组匹配的文档中的元素列表 (使用深度优先的先序遍历文档的节点)。返回的对象是 NodeList 。(同document.querySelectorAll或Element.querySelectorAll方法)
- dom.addClass ( el, className ) : Element
- 为一个Element添加class属性值
- dom.removeClass ( el, className ) : Element
- 为一个Element删除一个class属性值
- dom.hasClass ( el, className ) : boolean
- 判断一个Element的class属性中是否有指定的值
dom.toggleClass ( el, className, force=false ) : Element
- 换一个Element的class属性值。如果有指定属性值,则删除它;如果没有指定属性值,则添加它。
dom.checkClass ( el, className, check ) : Element
- 根据check的值(true 或 false),决定为Element元素添加或删除指定的className
- dom.set ( el, key, value ) : Element
- 给目标Element设置属性
- dom.get ( el, key ) : string
- 获取目标Element的属性值
- dom.getScroll ( el) : object
- 获取目标Element滚动的距离
- dom.getOffsetParent ( el ) : Element
- 获取包含目标Element的最近的上级定位元素
dom.getPosition ( el, relative ) : object
- 获取目标Element的位置
- dom.setPosition ( el, positions ) : Element
- 设置目标Element的位置。(left和top)
- dom.setPosition ( el, positions ) : Element
- dom.getSize ( el ) : object
- 获取目标元素的大小
- dom.getScrollSize ( el ) : object
- 获取目标元素的大小,包括由于 overflow 溢出而在屏幕上不可见的内容。
- dom.getStyle ( el, key ) : string
- 获取目标元素计算后的样式值。
dom.getStyles ( el, key... ) : object
- 获取目标元素计算后的多个样式值。
dom.setStyle ( el, key, value ) : Element
- 给目标Element设置css样式。
- dom.setStyles ( el, styles ) : Element
- 给目标Element设置多个css样式。
- dom.isPositioned ( el ) : boolean
- 判断目标元素是否是一个定位元素。
- dom.show ( el ) : Element
- 设置目标元素可见。
- dom.hide ( el ) : Element
- 设置目标元素隐藏。
- dom.getParentSrcollNode ( el ) : Element
- 获取包含目标元素的可滚动元素。
- dom.getParent ( el, match ) : Element
- 获取目标元素符合匹配条件的最近上级元素。
日期时间操作
- cloneDate ( date ) : Date
- 克隆日期
- lastDayOfMonth ( year, month ) : Date
- 传入年和月(1~12),获取对应月份的最后一天。
- lastTimeOfMonth ( year, month ) : Date
- 传入年和月(1~12),获取对应月份的最后一天,时间为最后一秒。
- lastTimeOfDate ( date, isClone ) : Date
- 传入日期,获取对应日期的最后一刻。
- clearTime ( date, isClone ) : Date
- 传入日期,清除时间。
- increment ( date, interval , times ) : Date
- 传入日期,增加times个单位。interval可以为 year, month, week, day, hour, minute, second, and ms
- formatDate ( date, format ) : String
- 将日期时间格式化为指定的格式,并返回格式化后的字符串。
{Date} date 需格式化日期
{String} format 格式化字符串,如 YYYY-MM-DD HH:mm:ss
Y - 年份
M - 月份
D - 日期
H - 小时(24 小时制)
h - 小时(12 小时制)
m - 分
s - 秒
q - 季度
S - 毫秒
a - 上午/下午
A - AM/PM
const date = new Date();
formatDate(date, 'YYYY-MM-DD HH:mm:ss'); // 2023-02-16 08:25:05
formatDate(date, 'YYYY年MM月DD日 HH:mm:ss'); // 2023年02月16日 08:25:05
formatDate(date, 'YYYY-MM-DD HH:mm:ss S'); // 2023-02-16 08:25:05 950
formatDate(date, 'YYYY-MM-DD HH:mm:ss A'); // 2023-02-16 08:25:05 上午
- isIntersect ( rangeA, rangeB, ignoreBoundary ) : Boolean
- 传入数组[日期1开始时间,日期1结束时间],[日期2开始时间,日期2结束时间],是否忽略边界。返回日期1和日期2是否相交。
const date1Start = new Date('2000-01-01 00:00:00');
const date1End = new Date('2000-01-01 23:59:59');
const date2Start = new Date('2000-01-01 23:00:00');
const date2End = new Date('2000-01-02 23:59:59');
const flag = isIntersect([date1Start, date1End], [date2Start, date2End]); //返回true
1.0.31
10 months ago
1.0.30
11 months ago
1.0.29
2 years ago
1.0.28
2 years ago
1.0.27
2 years ago
1.0.19
2 years ago
1.0.22
2 years ago
1.0.21
2 years ago
1.0.20
2 years ago
1.0.26
2 years ago
1.0.25
2 years ago
1.0.24
2 years ago
1.0.23
2 years ago
1.0.18
2 years ago
1.0.16
2 years ago
1.0.9
2 years ago
1.0.8
2 years ago
1.0.7
2 years ago
1.0.11
2 years ago
1.0.10
2 years ago
1.0.14
2 years ago
1.0.13
2 years ago
1.0.12
2 years ago
1.0.6
3 years ago
1.0.5
3 years ago
1.0.4
3 years ago
1.0.3
3 years ago
1.0.2
3 years ago
1.0.0
3 years ago