xctc-utils
v1.6.79
Published
localStorage存储 ``` sessionStorage存储 ``` crypto-js加密、解密 ``` 微信授权登录、微信分享 ``` 设备环境获取 ``` 是否是微信浏览器 ``` 时间戳转时间,字符串转时间戳
Downloads
208
Maintainers
Readme
项目中常用的方法集合
email: [email protected]
安装 npm i xctc-utils
更新到最新版本 npm install xctc-utils@latest
项目中引入 import useUtils from "xctc-utils"
缓存操作集合
LocalStorage使用,存取值时数据已经过处理
存储: useUtils.useLocalStorage(key,value)
取值: useUtils.getLocalStorage(key)
sessionStorage使用,存取值时数据已经过处理
存储: useUtils.useSessionStorage(key,value)
取值: useUtils.getSessionStorage(key)
删除缓存
key:string 需要删除的缓存键
all:boolean 为true时删除调用方法的所有缓存,否则只删除当前传入的 key 值
如果 all 为 true 时,方法会优先执行缓存的clear函数, key 传任意值,
删除临时缓存: useUtils.removeSessionStorage(key,all)
删除永久缓存: useUtils.removeLocalStorage(key,all)
iframe
父级页面方法调用
/**
* 微信H5页面专用函数
* @param id iframe id属性值
* @param url iframe url属性值
* @param keys 微信分享链接存储的键,默认是 urlParamsData
* @returns
*/
useUtils.iframe.initParentDataToIframe(id:string,url:string,keys?:string)
父级页面获取到子页面发送的数据
cb回调函数,返回子页面传递的数据
useUtils.iframe.updateIframeToParentData( cb:any )
父页面发送数据到 子页面
/**
* 主应用 发送数据到 子应用Iframe
* @param id iframe元素的id属性值
* @param data 主应用 发送到子应用的数据
* @param url 子应用的访问地址,如果没有调用 initParentDataToIframe 函数,则需要传入该参数
* @param duration 父页面向子页面传输数据时,如果和initParentDataToIframe函数同时调用,则需要加入定时器传递参数,子页面才能获取到数据
* @returns
*/
useUtils.iframe.parentSendIframeData( id:string,data:any,url?:string,duration?:number )
子页面方法调用
子页面获取到 主页面 传递的数据
cb回调函数,返回父页面传递的数据
useUtils.iframe.updateParentToIframeData(cb)
子页面 发送数据到 主页面
/**
* 子应用frame 发送数据 到主应用
* @param data 发送的数据
* @param url 父页面地址
* @returns
*/
useUtils.iframe.iframeSendToParentData(data:any,url:string)
地址栏参数处理
设置参数
interface SetOptions {
url:string, // 完整的 url 地址
data:string, // 具体需要拼接在地址参数
keyword:string, // 地址栏参数 key 值
key?:string, // 参数加密 key
iv?:string // 参数加密 iv
}
useUtils.params.set( options:SetOptions )
获取参数
interface GetOptions {
keys:string[],
cache?:string, // 是否需要缓存地址栏数据: 不传或传空,则不做处理,session 临时缓存 local永久缓存
cacheKey?:string, // 缓存数据的键 默认值 urlParamsData
key?:string, // 参数解密 key 必须与设置参数 key 一致
iv?:string // 参数解密 iv 必须与设置参数 iv 一致
}
useUtils.params.get( options:GetOptions )
AES 加密、解密处理函数集合
AES 加密、解密,同一个数据的加密和解密传入的key 和 iv保持一致。
work: 需要加密的对象,如传入的是对象,该方法默认进行JSON序列化处理。
key:16位或者32位字符串作为密钥
iv:16位或者32位字符串作为密钥偏移量
data: encrypt方法加密后返回的数据
加密:useUtils.crypto.encrypt( work:any , key:string , iv:string )
解密:useUtils.crypto.decrypt( data:string , key:string , iv:string )
数据类型判断集合
数据类型判断
useUtils.type.isFunction(val) // 是否是函数
useUtils.type.isObject(val) // 是否是对象 null 类型为对象,该方法已对null进行过滤
useUtils.type.isDate(val) // 是否是时间对象
useUtils.type.isNumber(val) // 是否是number类型
useUtils.type.isString(val) // 是否是字符串类型
useUtils.type.isBoolean(val) // 是否是boolean类型
useUtils.type.isWindow(val) // 是否在浏览器环境下运行
json数据类型判断
useUtils.isJson(data) // 判断传入数据是否是 JSON对象字符串,如果是,返回序列化后的JSON对象,否则返回false
环境判断
获取当前设备环境:设备环境
当前使用设备类型: useUtils.deviceEnvironment() // android ios ,未识别到返回 other
是否在微信浏览器环境中: useUtils.weixinBrowser() // true false
是否是手持设备: useUtils.isMobile() // true 移动设备 false PC设备
微信授权等方法集合
微信授权登录
interface configOption {
appId?:string, // 当前微信服务号 appId
scope?:string,// 网页授权类型 默认 snsapi_userinfo
http?:any, // 执行微信登录时,请求后端的接口方法,默认请求数据格式 {"app_id":"","js_code":"" },app_id为当前传入的配置参数,js_code为自动截取。
codeKey?:string, // 回调地址栏中对 code 进行存储的键, codeKey:code
stateKey?:string, // 回调地址栏中对 state 进行存储的键 stateKey:state
cryptoiv?:string, // 将地址栏携带参数加密iv, 必须与 weixinShareInit 方法中的 iv 参数一致
cryptokey?:string, // 将地址栏携带参数加密key, 必须与 weixinShareInit 方法中的 key 参数一致
isPassLogin?:boolean, 是否忽略微信跳转登录
redirectUri?:string, // 回调地址
appIdKey?:string, // 向后端发起http请求时,app_id对应的键,默认键值: app_id
jsCodeKey?:string, // 向后端发起http请求时,js_code对应的键,默认键值: js_code,完整格式 httpdata = { app_id:"xxxxx",js_code:"xxxxx" }
debuggerStatus?:boolean,//是否开启 debugger 弹框提示
cb?:any; // 回调函数
}
进入系统时,默认调用该方法,自动执行微信跳转授权,回调地址中code处理、state处理,
useUtils.weixin.getUrlCode(config)
微信config接口权限注入
interface ShareConfig{
http:any, // 微信接口权限注入接口,后端接口,执行成功后返回数据格式:{appId:"",timestamp:"",noncestr:"",signature:""},成功后自动调取微信 wx.config 接口
cb?:any, // wx.ready 成功后的回调方法
appId:string, // 当前微信服务号 appId
jsApiList?:string[],
}
useUtils.weixin.configReady(config:ShareConfig)
微信分享接口加载
interface ShareOptions{
title?:string, // 分享标题 默认值 微信分享
desc?:string, // 分享描述 默认值 微信分享描述
link: '', // 分享链接,该链接域名或路径必须与当前页面对应的公众号 JS 安全域名一致,默认取当前访问地址
imgUrl: '', // 分享图标
data?:any,//微信分享时需要携带的数据,默认传键值格式 {id:1,name:"test",path:"微信分享跳转地址,如: /user/login,好友点击后自动跳转到/user/login页面"},系统自动将该数据保存到缓存中,同时将数据拼接到地址栏,跳转 path 页面后可通过地址栏获取拼接数据
iv?:string, // 分享链接中对 state 数据加密的iv 必须与 weixinUrlCode 方法中的 cryptoiv 参数一致
key?:string, // 分享链接中对 state 数据加密的 key 必须与 weixinUrlCode 方法中的 cryptokey 参数一致
}
useUtils.weixin.shareReady(config:ShareOptions)
唤起微信支付
interface ConfigPay{
timeStamp:string, // 支付签名时间戳
nonceStr:string, // 支付签名随机串,不长于 32 位
package:string, // 统一支付接口返回的prepay_id参数值
signType:string, // 签名方式,默认为'SHA1',使用新版支付需传入'MD5'
paySign:string,// 支付签名
cb?:any,//回调
}
useUtils.weixin.onlinePay(config:ConfigPay)
时间相关方法
获取当前时间的时间戳
useUtils.date.getTime() // 返回秒
时间戳转任意格式时间字符串
/**
*
* @param num 传入的时间戳(秒):如 1675667655
* @param format 解析后展示时间字符串格式,默认 "YYYY-MM-DD HH:mm:ss" 格式, 可传格式如: YYYY年MM月DD日 HH时 YYYY/MM/DD HH
* @returns
*/
useUtils.date.formatTimeStamp(num,format) // 返回 format 格式时间戳
时间字符串转时间戳
/**
*
* @param str 字符串格式必须为: 2017/03/03 12:23:55 格式,避免兼容性,不能传 “-” 分割的时间字符串 2017-03-03
* @returns
*/
useUtils.date.formatStrTime(str) // 返回时间戳 秒
DOM处理集合
获取ID元素
useUtils.getDomFn("domid") // 如果存在当前dom元素,则返回dom对象,否则返回false
ueditor 富文本操作函数集合
计算当前富文本内容高度
var option = {
id:"ueditor" , // 富文本DOM容器 id 默认不传
content:"" , // ueditor 富文本内容
}
// 返回的富文本内容包含input dom元素,input元素的content-data-height属性计算富文本高度
// <input type="hidden" content-data-height="${height}" id="ueditorHeight" />
useUtils.checkIframeContentHeight(option)
获取指定富文本内容高度
// 返回富文本元素所占页面高度,默认返回 0
useUtils.getIframeContentHeight("ueditor")
其它处理函数集合
通过身份证号码的出生年月日,获取出生日期
// 传入身份证号码,返回出生具体时间,默认返回空
正确返回: {
year:year,
month:month,
day:day,
hour:hour,
minute:minute,
second:second,
num:nowNumber // 具体时间戳
}
useUtils.findIdcardAge(idcard)
剪贴板操作集合
将数据复制到剪贴板函数
useUtils.handleCopyValue(val)