0.0.2 • Published 2 years ago

business-jsruntime v0.0.2

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

安装

npm install jsbusiness

源码地址

引用方式 (按需引用)

import * as UniHttp from 'jsbusiness/UniHttp' // uni-app 请求
import * as UtilDate from 'jsbusiness/UtilDate'  // js 时间相关函数
import * as UniUtil from 'jsbusiness/UniUtil'  // uni-app 函数
import * as NodeUtil from 'jsbusiness/NodeUtil' // Node.js 函数库
import * as NavigatorUtil from 'jsbusiness/NavigatorUtil' // 浏览器对象 Navigator 函数
import * as UtilityBox from 'jsbusiness/UtilityBox' // 常用函数封装 使用 JavaScriptrunTime
import * as EncryptionToDecrypt from 'jsbusiness/EncryptionToDecrypt' // 加密函数库
import * as UtilString from 'jsbusiness/UtilString'  // 字符串相关函数

CSDN 博客地址

使用对应函数可以进行解构后在使用

import { timeToDate, navigator, functions } from 'jsbusiness';
const { getDateDiff } = timeToDate;
const { getCookie } = navigator;
const { isType, randomCoding } = functions;
getDateDiff('2021-10-10 10:00', '2021-10-10 12:00:02', 'minute');
getCookie('token'); //xxxxx
isType({}); // 'Objext'
randomCoding(6); // 195658
函数名称使用环境函数描述
timeToDateNode.JS,浏览器获取时间,获取当前时间,获当前周,时间相关获取函数
navigator浏览器只能在浏览器运行的函数,比如 DOM,判断当前网络是否可用,sessionStorage,localStorage 等函数封装
functionsNode.JS,浏览器常用函数,节流防抖

timeToDate(日期时间相关函数)

getData(optional) 获取当前时间 返回格式 '2021-10-11 14:58:02'

optional(string) 可选参数

date 返回当前年月日

tiem 返回当前时分秒

formatTime(time,Division) 格式字符串时间

formatTime(20211011151222, '-'); // '2021-10-11 15:12:22'
filterTime(20211011151222, '/'); //'2021/10/11 15:12:22'

secondsConversion(time) 秒转化为 小时-分钟-秒

secondsConversion(5000)  01h23min20s
secondsConversion(500)   08min20s
secondsConversion(50)   50s

getDateDiff (str,end,type)对比二个时间返回差

str 开始时间

end 结束时间

type( second 秒 minute 分 hour 小时 day 天) 对比类型

getDateDiff('2021-10-10 10:00', '2021-10-11', 'hour')  14
getDateDiff('2021-10-10 10:00', '2021-10-10 12:00:02', 'second')  7202
getDateDiff('2021-10-10 10:00', '2021-10-10 12:00', 'second')  720
getDateDiff('2021-10-10 10:00', '2021-10-10 12:00:02', 'minute') 120

getWeekDate 获取当前周几

getWeekDate() //星期三

weekTime 获取当前天的周一到周末的年月日

weekTime()[
  ('2021/10/11',
  '2021/10/12',
  '2021/10/13',
  '2021/10/14',
  '2021/10/15',
  '2021/10/16',
  '2021/10/17')
];

monday 获取本周周一年月日

monday() 2021-10-11

sunday 获取本周日 的时间

sunday() 2021-10-17

getCurrentMonthFirst 获取本月的第一天

getCurrentMonthFirst() 2021-10-01

getCurrentMonthLast 获取本月的最后一天

getCurrentMonthLast() 2021-10-31

timeFormatsss 格式化中国标准时间

timeFormatsss(new Date())  2021-10-11 00:00:00

functions (常用函数)

positionToCalculate(lat1, lng1, lat2, lng2) 计算二个经纬度的距离

positionToCalculate(106.233366, 29.602296, 106.452697, 29.61134) 24.417公里
positionToCalculate(106.589688, 29.565987, 106.592563, 29.569765) 342米

debounce(cb,tiem) 防抖函数

cb 回调函数 必填 tiem 防抖时间 默认 500

debounce();

throttle(cb,tiem) 节流:规定在一个单位时间内,只能触发一次函数。如果这个单位时间内触发多次函数,只有一次生效

cb 回调函数 必填 tiem 防抖时间 默认 500

throttle();

isFunc(Func,objFunc) 判断当前是不是一个函数 如果是就执行,

Func | function 可选 objFunc | 参数任意,如何是函数就执行

isFunc();

MatchingProtocol(str) 匹配字符中是否存在多个 http 地址

str | String 必传 返回一个对象 true 为一个 false 为个

MatchingProtocol()  false

countDown(item = 60, running, finish) 倒计时

item | Number 必填 倒计时时间 running | function 必填 正在倒计时中得会执行得函数 finish |function 可选 倒计时结束执行得函数

返回倒计时时间 ID 用于 clearInterval 来停止

回调参数 stop, item stop 用于停止的 ID item 当前倒计时的秒

countDown(
  60,
  () => {
    stop, item;
  },
  (stop, item) => {}
);

isType 返回当前数据的数据类型

isType(1)  'Number'
isType(false) 'Boolean'
isType({})  'Object'
isType(new Date())  'Date'
isType(()=>{})  'Function'
isType(undefined)   'Undefined'
isType(null)    'Null'

hexadecimal(color) 判断是否是 16 进制颜色

color | string 必填

hexadecimal('#CCCCCC');

randomCoding(max) 随机数反回

max |number 默认值 6

randomCoding()  '123DFg'

ToIdentify(ar) 伪类数组鉴别以及转换

ar |Arrar 必填 返回为真数组

ToIdentify()  false

navigator 浏览器相关的函数

conver 计算图片的大小

conver();

debugging({ Noright = true, NoKeyDown = true, debug = true}) 获取 Cookie

Noright | Boolean 默认 true 禁止鼠标右键 NoKeyDown | Boolean 默认 true 禁禁止 F12 debug | Boolean 默认 true 反调试代码

debugging();

getCookie(name)

获取 Cookie

name | string 必填 返回对应得 key 值

getCookie('name'); // xx

runtimeEnvironment

获取当前浏览器运行环境 是微信,支付宝,安卓,IOS,PC,移动,H5

console.log(new runtimeEnvironment()); /* getDeviceType: ƒ (type)
                                    iosSystem: false //ios系统
                                    isAliPay: false //  支付宝客服端
                                    isAndroidSystem: false // 安卓系统
                                    isMobile: true // 是否是移动端 某些情况下获取不准确 建议使用
                                    isPc: true //判断是否是pc
                                    isWX: false // 是否在微信客户端
                                    userAgent: "mozilla/5.0 (windows nt 10.0; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/104.0.0.0 safari/537.36"
                                    */
// getDeviceType 有一个可参数,传入后返回具体的终端类型 ,不传入,返回模糊的终端
new runtimeEnvironment().getDeviceType('type'); //Android || iPhone || PCend
new runtimeEnvironment().getDeviceType(); //mobile || PCend

applicationStorage(params )

存储 sessionStorage 或 localStorage

params 参数说明

参数数据类型是否必填参数说明
keyBooleanN (默认值 false)key 是否加密
dataBooleanN(默认值 false)data 是否加密
typeStringN(默认值 local ,可选择 session )存储类型
overtimeBooleanN超时删除

代码示例

基本使用 实例化存储类

const storage = new applicationStorage(false, true);

存储数据

const storage = new applicationStorage(false, true);
storage.setSession('name', 'selfsummer');
console.log(storage.getSession('name'));

设置超时时间 (1S=1000)

const storage = new applicationStorage(true, true, 'local', true);
storage.setSession('name2', { name: 'selfsummer', age: 12 }, 5000); // 5000 = 5秒

删除指定 applicationStorage().removeItem

参数参数说明
key存储的 key
new applicationStorage().removeItem('key');

删除所有

storage.removeAll();

getNetwork(cb) 获取当网络

const { getNetwork } = navigator;
getNetwork(); // 获取当前网络
getNetwork((net) => {
  // 网络变化时触发回调函数
  // net=> {
  /* Details: { 
          downlink // 下载速度
          effectiveType // 网络类型
          rtt  连接预估往返时间 值越小网速越快
          },
        BeforeType // 切换前的
        CurrentType  // 切换后的
        Available // 当前网络是否可用
  	}*/
});

downlinkhe和rtt返回值描述

FileSelection 文件相关

入参接口类型

imageType = "image/png" | "image/jpeg" | "image/webp"

处理后返回

NewPictures

NewPictures = {
PreviewUrl: *String* 预览地址
 data: *String*  base64图片
 file: *File*  可上传的图片
}

FileSelection 文件选择类

FileSelection.openFiles(Option,fileProcessing)

openFiles 文件选择

Option 说明

key类型说明
multipleBoolean是否支持多选
acceptMimeType接受的文件类型 audio/, 表示 “任何音频文件”。video/,表示 “任何视频文件”。
capture"camera""user"
webkitdirectoryBoolean选择一个目录(或多个目录,如果 multiple 也出现的话)

fileProcessing 选择文件后操作 可选值

可选值
VideoCover获取视频奋勉
reading文件读取
compressImage图片压缩
preview文件预览

打开文件选择

FileSelection.openFiles(InputFileOpentin)

InputFileOpentin 参数描述

key默认值描述
multiplnull是否支持多选
acceptnull接受的文件类型 audio/, 表示 “任何音频文件”。video/,表示 “任何视频文件”。 image/*,表示 “任何图片文件”。
capturenullcamera (默认打开后置) 打开摄像头 user 打开前置摄像头 camcorder 打开录像 microphone 打开录音机 environment 打开后置摄像头
webkitdirectorynull选择一个目录(或多个目录,如果 multiple 也出现的话)

InputFileOpentin 配置

打开相机拍照

capture 兼容问题

IOS 打开前置 Android 打开后置 user 属性 IOS 打开前置 Android 打开后置

FileSelection.openFiles({
  multipl: false,
  accept: 'image/*',
  capture: 'user',
});

打开相机录像

FileSelection.openFiles({
  multipl: false,
  accept: 'video/*',
  capture: 'user',
});

打开录音机

IOS 会打开相机但是会申请麦克风权限,Android 会直接打开录音

FileSelection.openFiles({
  multipl: false,
  accept: 'audio/*',
  capture: 'microphone',
});

获取相机和文件系统(默认)

FileSelection.openFiles({ accept:'image/*'})

文件切片 FileShardRead

参数描述
FileFile 类型或者二进制

返回 FormData

FileSelection.FileShardRead(File)

预览文件 FilePreview

返回值 Bloburl

FileSelection.FilePreview(files: File | Blob | Array<File>)

释放预览 releasePreview

在预览完成后不需预览 销毁预览链接,因为是在内存中,会增加内容负担

图片压缩 photoCompression

返回 NewPictures

photoCompression(src: string, w = 200, h = 200, type: imageType = 'image/png', quality = 0.95)

获取视频中的某一个帧做封面 getVideofirstFrame

key默认值说明
file选中的文件内容
frame5取第几帧做封面 0 可能为黑屏
getVideofirstFrame(files: File, frame: number = 5)

download 文件下载

参数说明

key描述
link图片链接
fileName下载出来的文件名称(默认“保存文件”)

链接内容下载

aLink

new download().aLink(link: string, fileName?: string)

使用 http 请求下载内容

dwHttpRequest

new download().dwHttpRequest(link: string, fileName?: string)

canvas 转化下载

downloadIamge

new download().downloadIamge(link: string, fileName?: string)

Node 环境

获取本机 IP

systemOs.IP()

获取指定目录下面所有的文件名称以及路径

findSync('./package.json')

读取文件内容

readFileBase64Sync(path,coding)
string 要读的地址
path 编码类型 空字符串默认为 base64 可以指定其他字符
// 示例
readFileBase64Sync('../package.json', 'utf-8').then((res) => {
  console.log(res);
}).catch(err => {
  console.log('err', err);
})

写入文件

writeBase64({
  type: '',
  savePaht: 'F:\\Flutter',
  file: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQEAYAAABPYyMiAAAABGdBTUEAALGPC/xhBQAAAAFzUkdCAK7OHOkAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAZiS0dEAAAAAAAA+UO7fwAAAAlwSFlzAAAASAAAAEgARslrPgAAAyNJREFUSMfllF1Ik1Ecxs+Z76JIyuaaWxF0IVE3ISTWRR9kpi6x2owyLAUlk2gh6iZEqXNmuczWYJSWBVmRAz/XdKjptqaUjhWtnKG1zI+pk81tuuXe7T1dhCsWY0XeRM/V4T3P+/yec/5wAPjfBZcWLPPNNHMZg0HsITZhdcXFq26Rc8EQnb5cINeCpwSsNplwjycWf8Dntx3nHaedmJrClgyeNcSXEL1EwjbEPAodolA2dq57j4F9+5arwATLst+zoFI1XeifduyVSL5/TUkh+RxGdAlGeb0t8f2Y41Fb2/C86QF+VqGAPPAUAIL4Y2IHeAcAQkbjzFW8R6Nprh5gO/rb2/1tvgKQC9jAhFBzZ76XclooVJTrexdSr13rlgy2u452dYHHkA3A3FwwLuFGo8hssXRq9Oecu5RK2Q5trcMlELTk5JMpOysqQAE6BjMR+qWAv2TavJfrYlWqDwKjzZWdlVV/vveuvUKt9jCJdKQfHvb3u294k5B2cPDptl6+fUSrHUobF+FxWVnPonkrw5M6OgJxAhZYUqOicCQ8aXx85rKdhUeWld0XdMvtF93uOb5zjMju65vQWAQet1JZ2/PcZXtBJlsPOM57a4qKZBxuetgVozFYftACzEhxokO3fj0kg8UQNZf7Nd5KdzJiYupy1Eb7G7m8ifoqzJHw5AneZ5t2GaKiUDK0wY88Hqvg+sP5UzRasHws0Eb2meo7iCCTTdvnb1vnRCJM7mWghLy8xmg+3JDkdH53lZf/9Es1UAJwWFMxNJvM4XjsIan4Z7GY2SxORERGRvvIBQUkLS7+9g2YmPOPrScrK4EcjRHdItHSKIKdqHV34VaqbHIS0YhQmC0Urhh311jfVlX99giS265zrCg3F3BAHdqiVssUBRbqsYGBYGB/PYvmacLSdTriFCIDtkrlyw1UAMXDSFSC47CWZEM6Gk02kb85XNDQ8Kdgf8nucRmUT1IpKZXUA9bS6aiVlIiO/BiF7yk+JBVKZ+rpdMwAE7CDRUVACzfAEir1bwv4QJ3AgDLNZmIUe43PlpbKInKPRMRNTy9X/r+rb/gCf9BB0l9oAAAAJXRFWHRkYXRlOmNyZWF0ZQAyMDIxLTExLTEyVDE1OjQ3OjMxKzA4OjAwll5JKgAAACV0RVh0ZGF0ZTptb2RpZnkAMjAyMS0xMS0xMlQxNTo0NzozMSswODowMOcD8ZYAAABLdEVYdHN2ZzpiYXNlLXVyaQBmaWxlOi8vL2hvbWUvYWRtaW4vaWNvbi1mb250L3RtcC9pY29uX3JvOHF3b2g0YnhhL3lvdXhpYW5nLnN2Zz5oXGYAAAAASUVORK5CYII='
}).then((res) => {
  console.log(join(__dirname), join(__filename), res);
}).catch(err => {
  console.log('err', err);
})

提取身份证信息

ChinaIdUserinfo.getProvinceAndCity('身份证号')

Promise 拒绝处理收集方法

EventPollingPromiseError((promise, reason, poccibyUnhandledRejection)=>{},30000)

字符串互转 Base64

decode.setDecode({ StatusCode: 1000, msg: "token失效" }) //  转base64
decode.getDecode(str) // base64字符还原

// "exports": { // ".": { // "import": "./dist/index.js", // "require": "./dist/index.js" // }, // "./package.json": "./package.json", // "import": "./index.ts", // "require": "./dist/index.js" // },