自定义函数库,集成 day.js 和 es-toolkit
npm install ly-utils-lib安装:npm install dayjs jspdf es-toolkit ly-utils-lib
/\\
- 日期格式化函数
- @param {Date | string} date - 日期
- @param {string} format - 格式模板
- @returns {string} 格式化后的日期字符串
\*/
formatDate(date: Date | string = new Date(), format: string = 'YYYY-MM-DD HH:mm:ss')
例:formatDate()
/\\
- 日期计算函数
- @param {string} compute - 计算方式 'after' | 'before'
- @param {Date | string} date - 日期
- @param {string} type - 计算类型 'day' | 'week' | 'month' | 'quarter' | 'year' | 'hour' | 'minute' | 'second' | 'millisecond'
- @param {number} num - 计算数量
- @param {string} format - 格式模板
- @returns {string} 格式化后的日期字符串
\*/
computeDate(compute: string = 'after', date: Date | string = new Date(), type: ManipulateType | undefined = 'day', num: number = 1, format: string = 'YYYY-MM-DD')
例:computeDate('after', Date.now(), 'day')
/\\
- 开始时间函数
- @param {string} type - 类型 'date' | 'day' | 'month' | 'quarter' | 'year' | 'week' | 'isoWeek' | 'hour' | 'minute' | 'second' | 'millisecond'
- @param {string} format - 格式模板
- @returns {string} 格式化后的日期字符串
\*/
startDate(type: ManipulateType | undefined = 'month', format: string = 'YYYY-MM-DD')
例:startDate('day', 'HH:mm')
/\\
- 结束时间函数
- @param {string} type - 类型 'date' | 'day' | 'month' | 'quarter' | 'year' | 'week' | 'isoWeek' | 'hour' | 'minute' | 'second' | 'millisecond'
- @param {string} format - 格式模板
- @returns {string} 格式化后的日期字符串
\*/
endDate(type: ManipulateType | undefined = 'month', format: string = 'YYYY-MM-DD')
例:endDate('day', 'HH:mm')
/\\
- 获取时间戳函数
- @param {Date | string} date - 日期
- @returns {number} 时间戳
\*/
getTimeStamp(date: Date | string = new Date())
例:getTimeStamp('2025-12-31')
/\\
- 时间戳格式化函数
- @param {number} timeStamp - 时间戳
- @param {string} format - 格式模板
- @returns {string} 格式化后的日期字符串
\\/
formatTimeStamp(timeStamp: number = 0, format: string = 'YYYY-MM-DD HH:mm:ss')
例:formatTimeStamp(1767110400, 'YYYY-MM-DD')
/\\
- 获取两个日期时间之间的差异函数
- @param {string} type - 类型 'week' | 'day' | 'month' | 'quarter' | 'year' | 'hour' | 'minute' | 'second' | 'millisecond'
- @param {Date | string} startDate - 起始时间
- @param {Date | string} endDate - 结束时间
- @returns {number} 差异值
\*/
getDateDiff(type: OpUnitType = 'day', startDate: Date | string, endDate: Date | string = new Date())
例: getDateDiff('day', '2025-12-01', '2025-12-10')
/\\
- 获取一段范围内日期函数
- @param {Date | string} startDate - 起始时间
- @param {Date | string} endDate - 结束时间
- @returns {array} 日期集合
\*/
getRangeDate(startDate: Date | string, endDate: Date | string): Array
例: getRangeDate('2025-12-01', '2025-12-10')
/\\
- 获取相对时间函数
- @param {Date | string} date - 日期
- @returns {string} 相对时间描述
\*/
getRelativeTime(date: Date | string)
例: getRelativeTime('2025-12-10')
/\\
- 设置永久缓存
- @param {string} key - 缓存名称
- @param {string | number | object | Array
\*/
setLocal(key: string, value: string | number | object | Array
例: setLocal('key', '1234')
/\\
- 获取永久缓存
- @param {string} key - 缓存名称
- @returns {string} 格式化后的value
\*/
getLocal(key: string)
例: getLocal('key')
/\\
- 移除永久缓存
- @param {string} key - 缓存名称
\*/
removeLocal(key: string)
例: removeLocal('key')
clearLocal()
例: clearLocal()
/\\
- 设置永久缓存
- @param {string} key - 缓存名称
- @param {string | number | object | Array
\*/
setSession(key: string, value: string | number | object | Array
例: setSession('key', '1234')
/\\
- 获取临时缓存
- @param {string} key - 缓存名称
- @returns {string} 格式化后的value
\*/
getSession(key: string)
例: getSession('key')
/\\
- 移除临时缓存
- @param {string} key - 缓存名称
\*/
removeSession(key: string)
例: removeSession('key')
clearSession()
例: clearSession()
createUUID()
例: createUUID()
/\\
- 导出xlsx文件
- @param {string} name - 文件名称
- @param {any} title - xlsx表头
- @param {any} data - xlsx数据
- @param {any} cols - xlsx宽度
- @param {any} sheetName - xlsx页签名称
- @returns {Promise
\*/
exportExcel(name: string, title: any, data: any, cols: any, sheetName: any = {})
例: exportExcel('1111', { id: 'ID' }, [[{ id: 10 }, { id: 11 }]], [{ width: 20 }], ['111'])
/\\
- 导入xlsx文件
- @param {string} file - xlsx文件
- @returns {Promise
\*/
importExcel(file: any)
例: importExcel(xlsx文件)
/\\
- 导出pdf文件
- @param {string} name - 文件名称
- @param {any} dom - 页面dom
- @param {any} type - 是否直接导出
- @returns {Promise
\*/
exportPdf(name: string, dom: any, type: boolean = true)
例: exportPdf('aa.pdf', document.getElementById('aaa'))
/\\
- 生成图片文件
- @param {any} dom - 页面dom
- @param {string} type - 图片格式
- @returns {Promise
\*/
importImage(dom: any, type: string = 'image/jpeg')
例: await importImage(document.getElementById('aaa'))
/\\
- hex 颜色转 rgb 颜色
- @param {string} str - hex 颜色
- @returns {string} rgb 颜色
\*/
hexToRgb(str: string)
例: hexToRgb('#ff0000')
/\\
- rgb 颜色转 Hex 颜色
- @param {number} r - r 颜色
- @param {number} g - g 颜色
- @param {number} b - b 颜色
- @returns {string} hex 颜色
\*/
rgbToHex(r: number, g: number, b: number)
例: rgbToHex(255, 0, 0)
/\\
- hex 颜色变浅颜色值
- @param {string} color - hex 颜色
- @param {number} alpha - 透明度
- @returns {string} hex 颜色
\*/
getLightColor(color: string, alpha: number)
例: getLightColor('#ff0000', 0.1)
/\\
- hex 颜色变深颜色值
- @param {string} color - hex 颜色
- @param {number} alpha - 透明度
- @returns {string} hex 颜色
\*/
getDarkColor(color: string, alpha: number)
例: getDarkColor('#ff0000', 0.1)
/\\
- 图片转base64
- @param {string} url - 图片路径
- @returns {Promise
\*/
imgToBase64(url: string)
例: await imgToBase64(new URL(./file1.png, import.meta.url).href)
/\\
- base64转文件
- @param {string} url - base64文件
- @param {string} fileName - 文件名称
- @returns {File} 文件
\*/
base64toFile(url: string, fileName: string)
例: base64toFile('base64', 'aa.jpg')
/\\
- 下载文件
- @param {string} url - 文件路径
- @param {string} fileName - 文件名称
\*/
downloadFile(url: string, fileName: string)
例: downloadFile('url', 'aa.jpg')
/\\
- 创建地图
- @param {string} container - dom
- @param {string} center - 中心点左边
- @param {number} zoom - 层级
- @param {number} minZoom - 最小层级
- @param {number} maxZoom - 最大层级
- @returns {any} 地图实例
\*/
createMap(container: string, center: [number, number] = [0, 0], zoom: number = 14, minZoom: number = 3, maxZoom: number = 18)
例: createMap()
/\\
- 创建瓦片图层
- @param {string} url - 瓦片路径
- @returns {any} 图层实例
\*/
createTileLayer(url: string)
例: createTileLayer()
/\\
- 添加图层
- @param {any} map - 地图实例
- @param {any} layer -图层实例
\*/
addLayer(map: any, layer: any)
例: addLayer(map, layer)
/\\
- 显示/隐藏图层
- @param {any} layer -图层实例
- @param {boolean} type - 显示/隐藏
\*/
setLayerVisible(layer: any, type: boolean)
例: setLayerVisible(layer, true)
/\\
- 设置层级
- @param {any} map - 地图实例
- @param {number} zoom - 层级
\*/
setZoom(map: any, zoom: number)
例: setZoom(map, 11)
/\\
- 获取层级
- @param {any} map - 地图实例
- @returns {number} 图层层级
\*/
getZoom(map: any)
例: getZoom(map, 11)
/\\
- 设置中心点
- @param {any} map - 地图实例
- @param {any} point - 中心点坐标
\*/
setCenter(map: any, point: [number, number])
例: setCenter(map)
/\\
- 设置区域中心
- @param {any} map - 地图实例
- @param {any} point - 中心区域坐标
\*/
setAreaCenter(map: any, point: any)
例: setAreaCenter(map, point)
/\\
- 设置图层中心
- @param {any} map - 地图实例
- @param {any} layer - 图层实例
\*/
setLayerCenter(map: any, layer: any)
例: setLayerCenter(map, layer)
/\\
- 创建图层
- @param {number} minZoom - 最小层级
- @param {number} maxZoom - 最大层级
- @param {number} zIndex - 层级
- @returns {any} 矢量图层实例
\*/
createVectorLayer(minZoom: number = 1, maxZoom: number = 18, zIndex: number = 4)
例: createVectorLayer(minZoom, maxZoom, zIndex)
/\\
- 清空图层资源
- @param {number} layer - 图层
\*/
clearLayer(layer:any)
例: clearLayer()
/\\
- 获取图层元素
- @param {number} layer - 图层
- @returns {any} 矢量图层元素
\*/
getLayerFeature(layer:any)
例: getLayerFeature()
/\\
- 创建图层资源
- @returns {any} 图层资源实例
\*/
createSource()
例: createSource()
/\\
- 设置图层资源
- @param {number} layer - 图层
- @param {number} source - 图层资源
\*/
setSource(layer: any, source: any)
例: setSource()
/\\
- 创建元素
- @param {string} type - 类型 'Point' | 'LineString' | 'Polygon'
- @param {any} data - 数据
- @returns {any} 元素实例
\*/
createFeature(type: string, data: any)
例: createFeature()
/\\
- 添加元素
- @param {any} layer - 图层
- @param {any} feature - 元素
\*/
addFeature(layer: string, feature: any)
例: addFeature()
/\\
- 删除元素
- @param {any} layer - 图层
- @param {any} feature - 元素
\*/
delFeature(layer: string, feature: any)
例: delFeature()
/\\
- 设置元素样式
- @param {string} type - 元素类型 'Point' | 'LineString' | 'Polygon'
- @param {any} feature - 元素
- @param {any} style - 样式
\*/
setFeatureStyle(type: string, feature: any, style: any)
例: setFeatureStyle()
/\\
- 创建绘制交互
- @param {any} map - 地图实例
- @param {string} type - 元素类型 'Point' | 'LineString' | 'Polygon'
- @returns {any} 绘制实例
\*/
createDraw(map: any, type: any)
例: createDraw()
/\\
- 删除绘制交互
- @param {any} map - 地图实例
- @param {any} draw - 绘制实例
\*/
clearDraw(map: any, draw: any)
例: clearDraw()
/\\
- 创建修改交互
- @param {any} map - 地图实例
- @param {any} feature - 元素
- @returns {any} 修改实例
\*/
createModify(map: any, feature: any)
例: createModify()
/\\
- 删除修改交互
- @param {any} map - 地图实例
- @param {any} modify - 修改实例
\*/
clearModify(map: any, modify: any)
例: clearModify()
/\\
- 创建选择交互
- @param {any} map - 地图实例
- @returns {any} 选择实例
\*/
createSelect(map: any)
例: createSelect()
/\\
- 删除选择交互
- @param {any} map - 地图实例
- @param {any} select - 选择实例
\*/
clearSelect(map: any, select: any)
例: clearSelect()
/\\
- 创建弹框交互
- @param {any} map - 地图实例
- @param {any} container - 容器
- @returns {any} 弹框实例
\*/
createOverlay(map: any, container: any)
例: createOverlay()
/\\
- 隐藏弹框交互
- @param {any} overlay - 弹框实例
\*/
hiddenOverlay(overlay: any)
例: hiddenOverlay()