1.6.1 • Published 7 months ago

cfmoto-utils v1.6.1

Weekly downloads
-
License
ISC
Repository
-
Last release
7 months ago

cfmoto工具

cfmoto工具

一、快速开始

安装

npm install -S cfmoto-utils

使用

import { queryParse } from 'cfmoto-utils';

queryParse(window.location.href)

二、常量

图片格式

import { CONSTANTS } from 'cfmoto-utils';

CONSTANTS.FILE_ACCEPT_IMAGE

图片与视频格式

import { CONSTANTS } from 'cfmoto-utils';

CONSTANTS.FILE_ACCEPT_MEDIA

办公文件格式

import { CONSTANTS } from 'cfmoto-utils';

CONSTANTS.FILE_ACCEPT_OFFICE

手机号正则

import { CONSTANTS } from 'cfmoto-utils';

CONSTANTS.PATTERN_PHONE

邮箱正则

import { CONSTANTS } from 'cfmoto-utils';

CONSTANTS.PATTERN_EMAIL

特殊符号正则

import { CONSTANTS } from 'cfmoto-utils';

CONSTANTS.PATTERN_SYMBOL

表情正则

import { CONSTANTS } from 'cfmoto-utils';

CONSTANTS.PATTERN_EMOJI

身份证号

import { CONSTANTS } from 'cfmoto-utils';

CONSTANTS.PATTERN_IDENTITY

url

import { CONSTANTS } from 'cfmoto-utils';

CONSTANTS.PATTERN_URL

十六进制颜色

import { CONSTANTS } from 'cfmoto-utils';

CONSTANTS.PATTERN_HEX

车牌号

import { CONSTANTS } from 'cfmoto-utils';

CONSTANTS.PATTERN_PLAT_NUMBER

密码正则:8位以上数字大小写字母特殊符号

import { CONSTANTS } from 'cfmoto-utils';

CONSTANTS.PATTERN_PASSWORD

三、用户环境

是否安卓系统

isAndroid()

是苹果系统

isApple()

是否微信

isMicroMessenger()

是否小程序

isMiniProgram()

是否QQ

isQQ()

是否微博

isWeibo()

是否钉钉

isDingtalk()

是否移动端

isMobile()

是否CFMOTO APP

isCfmotoApp()

是否ZEEHO APP

isZeehoApp()

四、功能与数据

节流防抖

throttle(time,callback)

参数参数类型是否必须参数值参数说明
timeNumber300时间毫秒
callbackFunctionevent回调函数
  • 返回值 Function result
属性类型说明示例
resultFunction执行函数document.addEventListener('scroll',result)

节点递归算法

recursiveNode(id, parentId, children)(values)

参数参数类型是否必须参数值参数说明
idStringid唯一主键名称
parentIdStringparentId唯一父主键名称
childrenStringchildren生成的子节点属性名称
valuesArray[{id:'3',parentId:'2'}]所有节点数据
  • 返回值 Array\<\Object> result
属性类型说明示例
resultArray节点组合[{id:'3',parentId:'2',children:[]}]

版本号比较

compareVersions(v1, v2)

参数参数类型是否必须参数值参数说明
v1String1.0.0唯一主键名称
v2String1.0.1唯一父主键名称
  • 返回值 Number result
属性类型说明示例
resultNumber比较结果1: v1>v2 0: v1===v2 -1: v1<v2

展开节点

spreadNode(values, children)

参数参数类型是否必须参数值参数说明
valuesArray[{id:'3',parentId:'2',children:[]}]所有节点数据
childrenStringchildren展开的子节点属性名称
  • 返回值 Array\<\Object> result
属性类型说明示例
resultArray\<\Object>节点组合[{id:'3',parentId:'2'}]

从应用市场唤起APP-国际标准

launchApplication(id) | 参数 | 参数类型 | 是否必须 | 参数值 | 参数说明 | | :----- | :---- | :---- | :---- | :---- | | id | String | 是 | com.lxc.cfmoto | android包名或ios appid |

从应用市场唤起APP-国内标准

launchApplicationDAMS(id) | 参数 | 参数类型 | 是否必须 | 参数值 | 参数说明 | | :----- | :---- | :---- | :---- | :---- | | id | String | 是 | com.lxc.cfmoto | android包名或ios appid |

oss缩略图

ossImageResize(options)

参数参数类型是否必须参数值参数说明
options.srcString or Arrayhttps://xxxx.xxx.com/xxx.jpgoss图片地址
options.mStringlfit模式:lfit、mfit、fill、pad、fixed,默认为 lfit
options.wNumber1-4096宽度
options.hNumber1-4096高度
options.lNumber1-4096长边宽度
options.sNumber1-4096短边宽度
options.limitNumber10/1, 默认是 1
options.vString1.0.0版本号防止缓存,默认为timestamp
  • 返回值 String result
属性类型说明示例
resultString新的地址https://xxx.xxx.com/xxx.jpg?x-oss-process=image/resize,m_lfit,w=100,h_100&v=12334455545

OSS视频快照

ossVideoSnapshot(options)

参数参数类型是否必须参数值参数说明
options.srcStringhttps://xxxx.xxx.com/xxx.mp4oss视频地址
options.wNumber100指定截图宽度,如果指定为0,则自动计算
options.hNumber100指定截图高度,如果指定为0,则自动计算;如果w和h都为0,则输出为原视频宽高
options.tNumber1000单位:ms,指定截图时间。如果设置的截图时间t超过了视频时长,则返回视频的最后一帧关键帧
options.mStringfast指定截图模式,不指定则为默认模式,根据时间精确截图。如果指定为fast,则截取该时间点之前的最近的一个关键帧
options.fStringjpg or png指定输出图片的格式
options.arStringauto or h or w指定是否根据视频信息自动旋转图片
option.vString1.0.0版本号防止缓存,默认为timestamp
  • 返回值 String result
属性类型说明示例
resultString新的地址https://xxx.xxx.com/xxx.mp4?x-oss-process=video/snapshot,t_1000,w=100,h_100,f_jpg,m_fast&v=12334455545

生成随机UUID

randomUUID()

  • 返回值 String result
属性类型说明示例
resultStringuuiddadd-ddafd-fddf-fdsfs

千分位转换

convertThousandth

  • 返回值 String result
属性类型说明示例
valueString Or Number数值12333.000
defaultValueString Or Number默认值0
  • 返回值 String result

解析url查询参数

queryParse(url)

参数参数类型是否必须参数值参数说明
urlString?a=11&b=22url问号后的部分
  • 返回值 Object result
属性类型说明示例
resultObjectJSON对象{ a: 11, b: 22 }

将url转换成url查询参数

queryStringify(options)

参数参数类型是否必须参数值参数说明
optionsObject{a: 11, b: 22}JSON对象
  • 返回值 String result
属性类型说明示例
resultStringurl查询参数a=11&b=22

岮峰转_

humpToUnderline(options)

参数参数类型是否必须参数值参数说明
optionsObject{aA: 11, bB: 22}JSON对象
  • 返回值 Object result
属性类型说明示例
resultObjectJSON对象{a_a:11, b_b: 22}

_转岮峰

underlineToHump(options) | 参数 | 参数类型 | 是否必须 | 参数值 | 参数说明 | | :----- | :---- | :---- | :---- | :---- | | options | Object | 是 | {a_a: 11, b_b: 22} | JSON对象 |

  • 返回值 Object result
属性类型说明示例
resultObjectJSON对象{aA:11, bB: 22}

过滤空值

filterValue(options, fields)

参数参数类型是否必须参数值参数说明
optionsObject{a: [], b: '', c: null, d: 11}JSON对象
filedsArray['',null, []]需要过滤的值
  • 返回值 Object result
属性类型说明示例
resultObjectJSON对象{d:11}

最近时间(评论或聊天会话)

formatterLatelyTime(options, fields)

参数参数类型是否必须参数值参数说明
optionsDate or String2022-10-12 23:34:34日期对象或日期YYYY-MM-DD HH:mm:ss格式化字符串
  • 返回值 String result
属性类型说明示例
resultString最近的时间说明最近,1分钟前,1小时前,1天前,2022-10-12 23:34:34

对象与数据class转换成string

parseObjectClass(options)

参数参数类型是否必须参数值参数说明
optionsObject or Array{classa:true},'classb'对象数组或字条串
  • 返回值 String result
属性类型说明示例
resultStringclass 组合"classa classb"

对象与数据样式转换成string

parseObjectStyle(options) | 参数 | 参数类型 | 是否必须 | 参数值 | 参数说明 | | :----- | :---- | :---- | :---- | :---- | | options | Object or Array | 是 | {classa:true},'classb' | 对象数组或字条串 |

  • 返回值 String result
属性类型说明示例
resultStringclass 组合"classa classb"

JSON排序深拷贝

import {JSONSort} from 'cfmoto-utils'
JSONSort.stringify({a:'11', b: '22'});
JSONSort.parse("{}")

文本溢出处理,以溢出以...结束

Ellipsis(options)

参数参数类型是否必须参数值参数说明
textStringaaabbddddeeweewwrerreweewwrer文本字符串
textLengthNumber12每行显示中文文本长度
lineClampNumber2文本溢出行数
import {textEllipsis} from 'cfmoto-utils'
textEllipsis('aaabbddddeeweewwrerreweewwrer',12,2)

五、文件

url下载后转为base64

urlToBase64(url)

参数参数类型是否必须参数值参数说明
urlStringhttps://sss.dddd.scom/ffssf.xmlurl文件地址
  • 返回值 String result
属性类型说明示例
resultStringbase64文件内容base64:image/png,xxxx

url下载后转为base64

urlToBase64(url)

url转File

urlToFile(url)

url转Blob

urlToBlob(file)

File转为base64

fileToBase64(file)

File转为ArrayBuffer

fileToArrayBuffer(file)

base64转File

base64ToFile(file)

base64转Blob

base64ToBlob(file)

base64转Buffer

base64ToBuffer(file)

base64转Uint8Array

base64ToUint8Array(file)

blob转Base64

blobToBase64(file)

blob转ArrayBuffer

blobToArrayBuffer(file)

blob转ArrayBuffer

blobToArrayBuffer(file)

ios翻译文件内容

jsonToStrings(options)

参数参数类型是否必须参数值参数说明
optionsObject{zh:{a:'aa'}}Object.keys(options).map(key=>options[key]) key:翻译语言标识,options[key]:翻译语言内容
  • 返回值 String result
属性类型说明示例
resultStringios翻译文件文本内容"aaa"="222"

android翻译文件内容

jsonToXML(options)

参数参数类型是否必须参数值参数说明
optionsObject{zh:{a:'aa'}}Object.keys(options).map(key=>options[key]) key:翻译语言标识,options[key]:翻译语言内容
  • 返回值 String result
属性类型说明示例
resultStringandroid翻译文件文本内容\${value}

js翻译文件内容

jsonToJavascript(options)

参数参数类型是否必须参数值参数说明
optionsObject{zh:{a:'aa'}}Object.keys(options).map(key=>options[key]) key:翻译语言标识,options[key]:翻译语言内容
  • 返回值 String result
属性类型说明示例
resultStringjavascript翻译文件文本内容export default {}

将pdf文件转换为pdf页面对象

pdfFileToPage(pdfjsLib, file)

参数参数类型是否必须参数值参数说明
pdfjsLibObjectpdfjsLibpdfjsLib js库对象
fileFilefile Objectpdf文件
  • 返回值 Promise<Array> pages
属性类型说明示例
pagesPromise<Array>Promise PDF Pages 页面数组

将pdf页面对象数组转为图片数组

pdfPageToImage({ pages, onProgress })

参数参数类型是否必须参数值参数说明
pagesArrayPdfPagePDF页面对象
onProgressFunctioneventpdf页面转换进度
  • 返回值 Promise<Array> bas64String
属性类型说明示例
bas64StringPromise<Array>base64字符串数组

六、颜色

RGB转HEX

rgbToHex(color: Array)

参数参数类型是否必须参数值参数说明
colorArray255, 255, 255rgb色值

HEX转RGB

hexToRGB(color: String)

参数参数类型是否必须参数值参数说明
colorString#ffffff16进制色值

HEX亮度调节

hexToLightColor(color: String)

参数参数类型是否必须参数值参数说明
colorString#ffffff16进制色值
1.6.1

7 months ago

1.6.0

7 months ago

1.5.3

9 months ago

1.5.2

9 months ago

1.5.0

9 months ago

1.4.6

12 months ago

1.4.5

12 months ago

1.4.4

12 months ago

1.4.3

12 months ago

1.4.2

12 months ago

1.4.1

12 months ago

1.4.0

1 year ago

1.3.10

1 year ago

1.3.11

1 year ago

1.3.9

1 year ago

1.3.8

1 year ago

1.3.7

1 year ago

1.3.5

1 year ago

1.3.4

1 year ago

1.3.3

1 year ago

1.3.2

1 year ago

1.3.1

2 years ago

1.3.0

2 years ago

1.2.6

2 years ago

1.2.5

2 years ago

1.2.4

2 years ago

1.2.1

2 years ago

1.2.0

2 years ago

1.1.2

2 years ago

1.1.1

2 years ago

1.1.0

2 years ago

1.0.6

2 years ago

1.0.5

2 years ago

1.0.4

2 years ago

1.0.3

2 years ago

1.0.1

2 years ago

1.0.0

2 years ago