工具包
介绍
汇总可能会用到的辅助函数之类
类似:lodash
简单使用
/*
导出timejs单独模块
import {timejs} from 'hsw-tools';
导出默认,所有方法都会在defaultName中
import defaultName from 'hsw-tools';
*/
// 例如:调用timejs模块的backStartToEndDayPlus方法计算起止日期范围内天数和
import {timejs} from 'hsw-tools';
timejs.backStartToEndDayPlus('2023-01-01','2052-01-01') // 10585
// 例如:一些判断当前宿主浏览器环境的, 假设判断当前是否处于微信内置浏览器内,可以使用:isWxInBrowser 方法进行判断
import hswTools from 'hsw-tools'
console.log(hswTools.browser.isWxInBrowser()) //true | false
//像一些用到的实用库 也会默认导出的 例如:dayjs | lodash 目前也仅仅导出这两个库
导出模块
timejs
import {timejs} from 'hsw-tools';
const {backStartToEndDay} = timejs
/**
*
* @param sTime 开始时间
* @param endTime 结束时间
* @param toDay 是否将当天也计算在内
* @returns number 给定时间之间的天数 (默认返回当前年开始到当前的时间之间的天数)
*/
//当时间 2023-08-28
backStartToEndDay() // 239
backStartToEndDay('2023-01-01','2023-12-31',true) // 365
backStartToEndDay('2023-01-01','2023-12-31',false) // 364
import {timejs} from 'hsw-tools';
/**
* backStartToEndDay升级版本 增加夸年,其他特性和用法一致
* @param sTime 开始时间
* @param endTime 结束时间
* @param toDay 是否将当天也计算在内
* @returns number 给定时间之间的天数 (默认返回当前年开始到当前的时间之间的天数)
* 注意:如果是计算一整年的,且是本年度的切记需要设置today = true ,不然31号是不会计算进去的,跨年计算可忽略
*/
const {backStartToEndDayPlus} = timejs
backStartToEndDayPlus('2023-01-01','2052-12-31') // 364
backStartToEndDayPlus('2023-01-01','2052-01-01') // 10585
import {timejs} from 'hsw-tools';
const {backTimeAreaDay} = timejs
/**
* 返回给定时间段内的时间信息包括起始和结束时间 (时间戳对比的时候需要注意当前数据时间戳是该日期8点算起的,数据日补零需要)
* @param s 起始时间
* @param e 结束时间
* @returns array
*/
/*
[
{
formatTime: "2023-01-01"
time: 1672531200000
},
{
formatTime: "2023-01-02"
time: 1672617600000
}
]
*/
backTimeAreaDay('2023-01-01','2023-01-02')
import {timejs} from 'hsw-tools';
const {backWeek} = timejs
/**
* 根据年返回周 并且返回每周的起点-终点
* @param year
* @param format 日期格式化 仅限年月日 例如:YYYY-M-D | YYYY-MM-MM | MM/YYYY/DD | YYYY年MM月DD日
*/
backWeek('2023')
/*
id:2,
label:'第2周', //处于年中第几周
oneDayList:[
{formatTime: '2022-01-03', time: 164116800000 }
....
{formatTime: '2022-01-09', time: 1641686400000}
],
value:['2022-01-03', '2022-01-09'] //周起止点
*/
import {timejs} from 'hsw-tools';
const {backNowWeek} = timejs
/**
* 返回给定时间所在年的第几周
* @param date 时间
* @param backType 返回数据类型 1返回周的下标 2返回当前日期的一周数据
*/
backNowWeek('2023-08-28','1') // 36
backNowWeek('2023-08-28','2')
/*
[
{formatTime: '2023-08-28', time: 1693180800000}
....
{formatTime: '2023-09-03', time: 1693699200000}
]
*/
import {timejs} from 'hsw-tools';
const {backNowWeek} = timejs
/**
* 返回给定时间所在季度
* @param date 时间
* @param toChineseNumerals 是否转为中文大写数字
* @returns String | Number
*/
backNowQuarter('2023-08-28') // 3
backNowQuarter('2023-08-28',true) //三
arrayjs
import {arrayjs} from 'hsw-tools'
const {treeFlat} = arrayjs
/**
* @param arr 需要打平的树结构数组
* @param field 需要拆解的字段
* @param parentName 能都代表父元素的字段(会被注入到新的打平的子元素中去)
* @returns []
*/
const origin = [
{
children:[
{
name:'张小三',
age:40,
children:[
{
name:'张小小三',
age:18,
}
]
}
],
name:'张三',
age:70
}
]
treeFlat(orignData,'children') // [{name:'张三',age:70},{name:'张小三',age:40}....]
import {arrayjs} from 'hsw-tools'
const {filterSame} = arrayjs
/**
* 数组对象去重 (并不是全等去重,而是对比某字段)
* @param filterField 作为筛选条件的key
* @param arr 被筛选的数组
* @returns array
*/
const origin = [
{
age:40,
name:'张三'
},
{
age:70,
name:'李四'
},
{
age:40,
name:'张三'
}
]
filterSame('age',origin) //[{age:70,name:'李四'},{age:40,name:'张三'}]
lodash
详见官方文档
mapBaidu (基于已申请key并正确引入项目-百度地图文档)
import {mapBaidu} from 'hsw-tools'
const {getLocation} = mapBaidu
//需要授权 分为浏览器定位和IP定位 默认浏览器定位-失败(成功直接返回结果)-启用ip定位-成功/失败-返回结果
getLocation()
/*
lng: 117.5, //经度
lat: 27.5, // 维度
origin: {}, //源数据 地址信息可从源数据中获取
locationOrigin: 'IP' //定位数据来源 IP / LOCATION
*/
mapGaode (基于已申请key并正确引入项目-高德地图文档)
期待后续~
browser
方法 | 介绍 | 参数 | 返回值 |
---|
porm | 判断设备当前客户端 PC/Mobile | null | Mobile / PC |
aori | 判断用户当前设备是Android还是IOS | null | Android / IOS |
browserKernel | 判断浏览器内核名称 | null | MozillaFirefox / Opera / MicrosoftInternetExplorer / MicrosoftEdge / GoogleChromeorChromium / AppleSafari / unknown |
isPad | 判断是否是pad | null | Boolen |
isWxInBrowser | 判断当前是否是微信内置浏览器 | null | Boolen |
isSafari | 判断是否为苹果的Safari浏览器 | null | Boolen |
isIE | 是否是IE | null | Boolen |
isIE8under | 是否是ie8以下版本 | null | Boolen |