| 1 |
- {"remainingRequest":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/thread-loader/dist/cjs.js!/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/babel-loader/lib/index.js!/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/src/libs/tools.js","dependencies":[{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/src/libs/tools.js","mtime":1618306924000},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/cache-loader/dist/cjs.js","mtime":1665684022107},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/thread-loader/dist/cjs.js","mtime":1665684003955},{"path":"/usr/local/develop/php/www/waibao/NN2022100801/NN2022100801/addons/admin/node_modules/babel-loader/lib/index.js","mtime":1665684010704}],"contextDependencies":[],"result":["export const forEach = (arr, fn) => {\n if (!arr.length || !fn) return;\n let i = -1;\n let len = arr.length;\n\n while (++i < len) {\n let item = arr[i];\n fn(item, i, arr);\n }\n};\n/**\n * @param {Array} arr1\n * @param {Array} arr2\n * @description 得到两个数组的交集, 两个数组的元素为数值或字符串\n */\n\nexport const getIntersection = (arr1, arr2) => {\n let len = Math.min(arr1.length, arr2.length);\n let i = -1;\n let res = [];\n\n while (++i < len) {\n const item = arr2[i];\n if (arr1.indexOf(item) > -1) res.push(item);\n }\n\n return res;\n};\n/**\n * @param {Array} arr1\n * @param {Array} arr2\n * @description 得到两个数组的并集, 两个数组的元素为数值或字符串\n */\n\nexport const getUnion = (arr1, arr2) => {\n return Array.from(new Set([...arr1, ...arr2]));\n};\n/**\n * @param {Array} target 目标数组\n * @param {Array} arr 需要查询的数组\n * @description 判断要查询的数组是否至少有一个元素包含在目标数组中\n */\n\nexport const hasOneOf = (targetarr, arr) => {\n return targetarr.some(_ => arr.indexOf(_) > -1);\n};\n/**\n * @param {String|Number} value 要验证的字符串或数值\n * @param {*} validList 用来验证的列表\n */\n\nexport function oneOf(value, validList) {\n for (let i = 0; i < validList.length; i++) {\n if (value === validList[i]) {\n return true;\n }\n }\n\n return false;\n}\n/**\n * @param {Number} timeStamp 判断时间戳格式是否是毫秒\n * @returns {Boolean}\n */\n\nconst isMillisecond = timeStamp => {\n const timeStr = String(timeStamp);\n return timeStr.length > 10;\n};\n/**\n * @param {Number} timeStamp 传入的时间戳\n * @param {Number} currentTime 当前时间时间戳\n * @returns {Boolean} 传入的时间戳是否早于当前时间戳\n */\n\n\nconst isEarly = (timeStamp, currentTime) => {\n return timeStamp < currentTime;\n};\n/**\n * @param {Number} num 数值\n * @returns {String} 处理后的字符串\n * @description 如果传入的数值小于10,即位数只有1位,则在前面补充0\n */\n\n\nconst getHandledValue = num => {\n return num < 10 ? '0' + num : num;\n};\n/**\n * @param {Number} timeStamp 传入的时间戳\n * @param {Number} startType 要返回的时间字符串的格式类型,传入'year'则返回年开头的完整时间\n */\n\n\nconst getDate = (timeStamp, startType) => {\n const d = new Date(timeStamp * 1000);\n const year = d.getFullYear();\n const month = getHandledValue(d.getMonth() + 1);\n const date = getHandledValue(d.getDate());\n const hours = getHandledValue(d.getHours());\n const minutes = getHandledValue(d.getMinutes());\n const second = getHandledValue(d.getSeconds());\n let resStr = '';\n if (startType === 'year') resStr = year + '-' + month + '-' + date + ' ' + hours + ':' + minutes + ':' + second;else resStr = month + '-' + date + ' ' + hours + ':' + minutes;\n return resStr;\n};\n/**\n * @param {String|Number} timeStamp 时间戳\n * @returns {String} 相对时间字符串\n */\n\n\nexport const getRelativeTime = timeStamp => {\n // 判断当前传入的时间戳是秒格式还是毫秒\n const IS_MILLISECOND = isMillisecond(timeStamp); // 如果是毫秒格式则转为秒格式\n\n if (IS_MILLISECOND) Math.floor(timeStamp /= 1000); // 传入的时间戳可以是数值或字符串类型,这里统一转为数值类型\n\n timeStamp = Number(timeStamp); // 获取当前时间时间戳\n\n const currentTime = Math.floor(Date.parse(new Date()) / 1000); // 判断传入时间戳是否早于当前时间戳\n\n const IS_EARLY = isEarly(timeStamp, currentTime); // 获取两个时间戳差值\n\n let diff = currentTime - timeStamp; // 如果IS_EARLY为false则差值取反\n\n if (!IS_EARLY) diff = -diff;\n let resStr = '';\n const dirStr = IS_EARLY ? '前' : '后'; // 少于等于59秒\n\n if (diff <= 59) resStr = diff + '秒' + dirStr; // 多于59秒,少于等于59分钟59秒\n else if (diff > 59 && diff <= 3599) resStr = Math.floor(diff / 60) + '分钟' + dirStr; // 多于59分钟59秒,少于等于23小时59分钟59秒\n else if (diff > 3599 && diff <= 86399) resStr = Math.floor(diff / 3600) + '小时' + dirStr; // 多于23小时59分钟59秒,少于等于29天59分钟59秒\n else if (diff > 86399 && diff <= 2623859) resStr = Math.floor(diff / 86400) + '天' + dirStr; // 多于29天59分钟59秒,少于364天23小时59分钟59秒,且传入的时间戳早于当前\n else if (diff > 2623859 && diff <= 31567859 && IS_EARLY) resStr = getDate(timeStamp);else resStr = getDate(timeStamp, 'year');\n return resStr;\n};\n/**\n * @returns {String} 当前浏览器名称\n */\n\nexport const getExplorer = () => {\n const ua = window.navigator.userAgent;\n\n const isExplorer = exp => {\n return ua.indexOf(exp) > -1;\n };\n\n if (isExplorer('MSIE')) return 'IE';else if (isExplorer('Firefox')) return 'Firefox';else if (isExplorer('Chrome')) return 'Chrome';else if (isExplorer('Opera')) return 'Opera';else if (isExplorer('Safari')) return 'Safari';\n};\n/**\n * @description 绑定事件 on(element, event, handler)\n */\n\nexport const on = function () {\n if (document.addEventListener) {\n return function (element, event, handler) {\n if (element && event && handler) {\n element.addEventListener(event, handler, false);\n }\n };\n } else {\n return function (element, event, handler) {\n if (element && event && handler) {\n element.attachEvent('on' + event, handler);\n }\n };\n }\n}();\n/**\n * @description 解绑事件 off(element, event, handler)\n */\n\nexport const off = function () {\n if (document.removeEventListener) {\n return function (element, event, handler) {\n if (element && event) {\n element.removeEventListener(event, handler, false);\n }\n };\n } else {\n return function (element, event, handler) {\n if (element && event) {\n element.detachEvent('on' + event, handler);\n }\n };\n }\n}();\n/**\n * 判断一个对象是否存在key,如果传入第二个参数key,则是判断这个obj对象是否存在key这个属性\n * 如果没有传入key这个参数,则判断obj对象是否有键值对\n */\n\nexport const hasKey = (obj, key) => {\n if (key) return key in obj;else {\n let keysArr = Object.keys(obj);\n return keysArr.length;\n }\n};\n/**\n * @param {*} obj1 对象\n * @param {*} obj2 对象\n * @description 判断两个对象是否相等,这两个对象的值只能是数字或字符串\n */\n\nexport const objEqual = (obj1, obj2) => {\n const keysArr1 = Object.keys(obj1);\n const keysArr2 = Object.keys(obj2);\n if (keysArr1.length !== keysArr2.length) return false;else if (keysArr1.length === 0 && keysArr2.length === 0) return true;\n /* eslint-disable-next-line */\n else return !keysArr1.some(key => obj1[key] != obj2[key]);\n};",null]}
|