OtherUtils 其他工具函数

简介

utils工具函数中许多无法归类,将全部在本页列举。

axPreventDefault

阻止默认事件,比如点击a标签应该跳转,使用该函数可禁止默认跳转。

完整写法:axPreventDefault(event),参数说明如下:

  • event:必填项,通常为window对象。

举例:无。

axCreateId

对象不存在报错并直接返回,不再继续执行。

完整写法:axCreateId(prefix, type, elem),可简写为:axCreateId(prefix),参数说明如下:

  • prefix:必填项,文本前缀。
  • type:选填项,可以填数字,也可以填'id',如果不填该函数将以时间戳创建字符串;如果elem存在并且该参数填'id',那么将返回该元素id值。
  • elem:可以填"#id"、".className"、"div"等原生选择器以及Dom对象。

举例:axCreateId('ax', 10)。可能返回:'ax-9kjherwd45'(10位随机字符)

axPreventScroll

该函数让节点内使用滚轮却不滚动页面的滚动条,常用于窗口。

完整写法:axPreventScroll(preventDom, scrollDom),可简写为:axPreventScroll(preventDom),参数说明如下:

  • preventDom:必填项,父节点,可以填"#id"、".className"、"div"等原生选择器以及Dom对象。
  • scrollDom:选填项,子节点,可以填"#id"、".className"、"div"等原生选择器以及Dom对象。如果不填,将作用域父节点。

举例:axPreventScroll('#parent', '#child') ,该例子在#child元素中可使用滚动条,但是页面的滚动条不会滚动。

axTplEngine

该函数是本框架所使用的模板引擎。

完整写法:axTplEngine(html, data),参数说明如下:

  • html:必填项,带变量的字符串,变量或js代码用'<#'和'#>'包裹,变量使用this.*方式引用。
  • data:选必填项,支持html渲染内容的参数对象。

举例:axTplEngine(`<div><#' this.country '#></div>`, {country:'china'}) ,该例子将返回字符串:<div>china</div>。

axArrange

该函数可以让数组进行完全排列组合,返回新数组。

完整写法:axArrange(origin, n),参数说明如下:

  • origin:必填项,原始字符串
  • n:必填项,数组维度length。

举例:axArrange('man', 2) ,该例子将返回[['m','a'],['m','n'],['a','n']]。

axCleanString

该函数可以使录入特殊字符进行转意以避免植入脚本,包括<>&"'。

完整写法:axCleanString(value),参数说明如下:

  • value:必填项,任意字符串

举例:axCleanString('<div>我爱中国!</div>') ,该例子将返回'<div>我爱中国!</div>。

axResult

该函数可以创建矢量动画结果效果。

完整写法:axResult(elem, state),参数说明如下:

  • elem:必填项,现有子节点对象,可以填"#id"、".className"、"div"等原生选择器以及Dom对象。
  • state:必填项,可以填success、error、question和info。

举例:axResult('#demo', 'success') ,该例子将在#demo元素创建一个成功结果动画。

axCreateContent

该函数用来创建窗口主体内容,专属用于dialog、drawer和popup插件。

完整写法:axCreateContent(options, instance, type,callback),参数说明如下:

  • options:必填项,dialog、drawer或popup插件的options。
  • instance:必填项,dialog、drawer或popup插件的实例本身,通常为this。
  • type:选填项,异步提交的方式,默认post,可填get。
  • callback:选填项,回调函数。

axFooterBtns

该函数用来创建窗口底部内容,专属用于dialog、drawer和popup插件。

完整写法:axFooterBtns(options, instance),参数说明如下:

  • options:必填项,dialog、drawer或popup插件的options。
  • instance:必填项,dialog、drawer或popup插件的实例本身,通常为this。

axLocalTime

该函数可以将任意时间转成本地时间戳。

完整写法:axLocalTime(date, utc),参数说明如下:

  • date:必填项,日期,格式可以是"YYYY-MM-DD" 或 "YYYY/MM/DD"。
  • utc:选填项,所填时间是否是utf时间,可填true或false。true和false的时间转换结果会相差8个小时

举例:axLocalTime('2022-2-12'),该例子将返回时间戳:1644595200000。

axValidRepeat

该函数用于点击提交表单校验。

完整写法:axValidRepeat(e, data, outer, callback, interval = 100),参数说明如下:

  • e:必填项,通常是window。
  • data:必填项,数组数据,格式为:[{parent:'',children:{name:'',verified:'',text:''}},{}]。
  • outer:必填项,表单项的父层,可以是form节点,也可以是某div节点,但是必须与表单项的父节点一致,所以建议是form节点。
  • callback:选填项,校验成功后执行回调函数。
  • interval:必填项,表单项校验的间隔时间,纯是为了显示逐个校验效果,默认100毫秒。

举例:略。

axCookie

该函数封装了原生cookie方法,支持cookie的写入、读取和删除。

写入cookie,完整写法:axCookie.set(name, value, {type:'day',expires:365})

读取cookie,完整写法:axCookie.get(name)

删除cookie,完整写法:axCookie.del(name)

set的options参数说明如下。

  • type:选填项,以什么单位过期,可选择second或s,minite或m,hour或h,day或d,默认day。
  • expires:选填项,过期时间,与type对应使用,默认365。
  • path:选填项,cookie有效范围,与原生cookie方法一致。
  • domain:选填项,cookie的作用域,与原生cookie方法一致。
  • secure:选填项,使用通过HTTPS传递cookie,与原生cookie方法一致。
  • sameSite:选填项,是否禁止第三方获取cookie,与原生cookie方法一致。

举例:axCookie.set('myname':'AXUI',{path:'/'}),该例子设置myname=AXUI的cookie,并对全站有效。

axDebounce

防抖函数通用用于keyup事件上,使用表现为:持续键入后停留一段时间才执行keyup事件。

完整写法:axDebounce(fun, delay),参数说明如下:

  • fun:必填项,执行函数。
  • delay:选填项,延迟时间,单位毫秒,默认200。

举例:略。

axThrottle

节流函数通用用于click事件上,使用表现为:连续快速点击多次也只会执行一次。

完整写法:axThrottle(fun, interval),参数说明如下:

  • fun:必填项,执行函数。
  • interval:选填项,间隔时间,单位毫秒,默认200。

举例:略。

axMoveArr

数组元素移动函数,在数组内可将某元素自由移动,返回原数组。

完整写法:axMoveArr(arr, from,to),参数说明如下:

  • arr:必填项,操作的数组对象。
  • from:必填项,将要移动的数组索引值。
  • to:必填项,将要落脚的位置索引值。

举例:略。

axSort

用于数组排序,支持一维数组(list)和带children属性的二维数组(table)。

完整写法:axSort(arr, methods, type),参数说明如下:

  • arr:必填项,操作的数组对象。
  • methods:必填项,排序方式,支持以下格式:
    • 带col和order属性的对象数组,例如:[{ col: 'age', order: 'desc' }...]
    • 带name和order属性的对象数组,例如:[{ name: 'age', order: 'desc' }...]
    • 带col和order属性的对象,例如:{ col: 'age', order: 'desc' }
    • 带name和order属性的对象,例如:{ name: 'age', order: 'desc' }
  • type:选填项,用于哪种数据类型,默认是一维数组(axList类型),可填table表示数据类型是axSheet类型

举例:略。