1 line
33 KiB
JSON
1 line
33 KiB
JSON
{"remainingRequest":"D:\\视频边缘1215\\TransFlow\\node_modules\\thread-loader\\dist\\cjs.js!D:\\视频边缘1215\\TransFlow\\node_modules\\babel-loader\\lib\\index.js!D:\\视频边缘1215\\TransFlow\\src\\utils\\tools.js","dependencies":[{"path":"D:\\视频边缘1215\\TransFlow\\src\\utils\\tools.js","mtime":1671074748355},{"path":"D:\\视频边缘1215\\TransFlow\\node_modules\\cache-loader\\dist\\cjs.js","mtime":1671074740928},{"path":"D:\\视频边缘1215\\TransFlow\\node_modules\\thread-loader\\dist\\cjs.js","mtime":1671074747683},{"path":"D:\\视频边缘1215\\TransFlow\\node_modules\\babel-loader\\lib\\index.js","mtime":1671074740599}],"contextDependencies":[],"result":["import \"core-js/modules/es6.regexp.replace\";\nimport \"core-js/modules/es6.regexp.split\";\nimport \"core-js/modules/es6.object.keys\";\nimport \"core-js/modules/es6.number.constructor\";\nimport _toConsumableArray from \"D:/\\u89C6\\u9891\\u8FB9\\u7F181215/TransFlow/node_modules/@babel/runtime/helpers/esm/toConsumableArray\";\nimport \"core-js/modules/web.dom.iterable\";\nimport \"core-js/modules/es6.set\";\nimport \"core-js/modules/es6.string.iterator\";\nimport \"core-js/modules/es6.array.from\";\nexport var forEach = function forEach(arr, fn) {\n if (!arr.length || !fn) return;\n var i = -1;\n var len = arr.length;\n\n while (++i < len) {\n var item = arr[i];\n fn(item, i, arr);\n }\n};\n/**\n * @param {Array} arr1\n * @param {Array} arr2\n * @description 得到两个数组的交集, 两个数组的元素为数值或字符串\n */\n\nexport var getIntersection = function getIntersection(arr1, arr2) {\n var len = Math.min(arr1.length, arr2.length);\n var i = -1;\n var res = [];\n\n while (++i < len) {\n var 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 var getUnion = function getUnion(arr1, arr2) {\n return Array.from(new Set([].concat(_toConsumableArray(arr1), _toConsumableArray(arr2))));\n};\n/**\n * @param {Array} target 目标数组\n * @param {Array} arr 需要查询的数组\n * @description 判断要查询的数组是否至少有一个元素包含在目标数组中\n */\n\nexport var hasOneOf = function hasOneOf(targetarr, arr) {\n return targetarr.some(function (_) {\n return arr.indexOf(_) > -1;\n });\n};\n/**\n * @param {String|Number} value 要验证的字符串或数值\n * @param {*} validList 用来验证的列表\n */\n\nexport function oneOf(value, validList) {\n for (var 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\nvar isMillisecond = function isMillisecond(timeStamp) {\n var timeStr = String(timeStamp);\n return timeStr.length > 10;\n};\n/**\n * @param {Number} timeStamp 传入的时间戳\n * @param {Number} currentTime 当前时间时间戳\n * @returns {Boolean} 传入的时间戳是否早于当前时间戳\n */\n\n\nvar isEarly = function isEarly(timeStamp, currentTime) {\n return timeStamp < currentTime;\n};\n/**\n * @param {Number} num 数值\n * @returns {String} 处理后的字符串\n * @description 如果传入的数值小于10,即位数只有1位,则在前面补充0\n */\n\n\nvar getHandledValue = function getHandledValue(num) {\n return num < 10 ? '0' + num : num;\n};\n/**\n * @param {Number} timeStamp 传入的时间戳\n * @param {Number} startType 要返回的时间字符串的格式类型,传入'year'则返回年开头的完整时间\n */\n\n\nvar getDate = function getDate(timeStamp, startType) {\n var d = new Date(timeStamp * 1000);\n var year = d.getFullYear();\n var month = getHandledValue(d.getMonth() + 1);\n var date = getHandledValue(d.getDate());\n var hours = getHandledValue(d.getHours());\n var minutes = getHandledValue(d.getMinutes());\n var second = getHandledValue(d.getSeconds());\n var 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 var getRelativeTime = function getRelativeTime(timeStamp) {\n // 判断当前传入的时间戳是秒格式还是毫秒\n var IS_MILLISECOND = isMillisecond(timeStamp); // 如果是毫秒格式则转为秒格式\n\n if (IS_MILLISECOND) Math.floor(timeStamp /= 1000); // 传入的时间戳可以是数值或字符串类型,这里统一转为数值类型\n\n timeStamp = Number(timeStamp); // 获取当前时间时间戳\n\n var currentTime = Math.floor(Date.parse(new Date()) / 1000); // 判断传入时间戳是否早于当前时间戳\n\n var IS_EARLY = isEarly(timeStamp, currentTime); // 获取两个时间戳差值\n\n var diff = currentTime - timeStamp; // 如果IS_EARLY为false则差值取反\n\n if (!IS_EARLY) diff = -diff;\n var resStr = '';\n var 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 var getExplorer = function getExplorer() {\n var ua = window.navigator.userAgent;\n\n var isExplorer = function 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 var 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 var 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 var hasKey = function hasKey(obj, key) {\n if (key) return key in obj;else {\n var keysArr = Object.keys(obj);\n return keysArr.length;\n }\n};\n/**\n * @param {*} obj1 对象\n * @param {*} obj2 对象\n * @description 判断两个对象是否相等,这两个对象的值只能是数字或字符串\n */\n\nexport var objEqual = function objEqual(obj1, obj2) {\n var keysArr1 = Object.keys(obj1);\n var 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(function (key) {\n return obj1[key] != obj2[key];\n });\n};\n/**\n * @param {*} date1 开始日期\n * @param {*} date2 结束日期\n * @description 计算两个日期相差天数\n */\n\nexport var getDaysBetween = function getDaysBetween(date1, date2) {\n var startDate = Date.parse(date1);\n var endDate = Date.parse(date2);\n var days = (endDate - startDate) / (1 * 24 * 60 * 60 * 1000);\n return days;\n};\n/**\n * @param {*} date1 日期1\n * @param {*} date2 日期2\n * @description 判断日期是否同一周内\n */\n\nexport var isSameWeek = function isSameWeek(date1, date2) {\n var oneDayTime = 1000 * 60 * 60 * 24;\n var oldCount = parseInt(date1.getTime() / oneDayTime);\n var nowOther = parseInt(date2.getTime() / oneDayTime);\n return parseInt((oldCount + 4) / 7) === parseInt((nowOther + 4) / 7);\n}; // 秒数(ss) 转 d天h小时m分钟s秒 的时间格式表示\n\nexport function formatSeconds(value) {\n var secondTime = parseInt(value); // 秒\n\n var minuteTime = 0; // 分\n\n var hourTime = 0; // 小时\n\n var dayTime = 0; // 天\n\n var result = '';\n\n if (value < 60) {\n result = secondTime + ' 秒 ';\n } else {\n if (secondTime >= 60) {\n // 如果秒数大于60,将秒数转换成整数\n // 获取分钟,除以60取整数,得到整数分钟\n minuteTime = parseInt(secondTime / 60); // 获取秒数,秒数取佘,得到整数秒数\n\n secondTime = parseInt(secondTime % 60); // 如果分钟大于60,将分钟转换成小时\n\n if (minuteTime >= 60) {\n // 获取小时,获取分钟除以60,得到整数小时\n hourTime = parseInt(minuteTime / 60); // 获取小时后取佘的分,获取分钟除以60取佘的分\n\n minuteTime = parseInt(minuteTime % 60);\n\n if (hourTime >= 24) {\n // 获取天数, 获取小时除以24,得到整数天\n dayTime = parseInt(hourTime / 24); // 获取小时后取余小时,获取分钟除以24取余的分;\n\n hourTime = parseInt(hourTime % 24);\n }\n }\n }\n\n if (secondTime > 0) {\n // secondTime = parseInt(secondTime) >= 10 ? secondTime : '0' + secondTime // 用于个位数时前面补0\n result = '' + secondTime + ' 秒 ';\n }\n\n if (minuteTime > 0) {\n // minuteTime = parseInt(minuteTime) >= 10 ? minuteTime : '0' + minuteTime // 用于个位数时前面补0\n result = '' + minuteTime + ' 分钟 ' + result;\n }\n\n if (hourTime > 0) {\n result = '' + parseInt(hourTime) + ' 小时 ' + result;\n }\n\n if (dayTime > 0) {\n result = '' + parseInt(dayTime) + ' 天 ' + result;\n }\n }\n\n return result;\n} // 秒数(ss)转 hh:mm:ss 时间格式\n\nexport function secToTime(data) {\n var time = Number(data);\n var h = Math.floor(time / 3600);\n var m = Math.floor(time % 3600 / 60);\n var s = parseInt(time % 3600) % 60;\n var hh = h < 10 ? \"0\" + h : h;\n var mm = m < 10 ? \"0\" + m : m;\n var ss = s < 10 ? \"0\" + s : s;\n return hh + \":\" + mm + \":\" + ss;\n} // hh:mm:ss 时间格式转秒数(ss)\n\nexport function timeToSec(time) {\n if (time !== null) {\n var s = \"\";\n var hour = time.split(\":\")[0];\n var min = time.split(\":\")[1];\n var sec = time.split(\":\")[2];\n s = Number(hour * 3600) + Number(min * 60) + Number(sec);\n return s;\n }\n} // 获取 URL 上的参数\n\nexport function getUrlParams(name) {\n if (name == null || name === 'undefined') {\n return null;\n }\n\n var searchStr = decodeURI(window.location.href).replace('?', '&');\n var infoIndex = searchStr.indexOf(name + '=');\n\n if (infoIndex === -1) {\n return null;\n }\n\n var searchInfo = searchStr.substring(infoIndex + name.length + 1);\n var tagIndex = searchInfo.indexOf('&');\n\n if (tagIndex !== -1) {\n searchInfo = searchInfo.substring(0, tagIndex);\n }\n\n return searchInfo;\n}",{"version":3,"sources":["D:/视频边缘1215/TransFlow/src/utils/tools.js"],"names":["forEach","arr","fn","length","i","len","item","getIntersection","arr1","arr2","Math","min","res","indexOf","push","getUnion","Array","from","Set","hasOneOf","targetarr","some","_","oneOf","value","validList","isMillisecond","timeStamp","timeStr","String","isEarly","currentTime","getHandledValue","num","getDate","startType","d","Date","year","getFullYear","month","getMonth","date","hours","getHours","minutes","getMinutes","second","getSeconds","resStr","getRelativeTime","IS_MILLISECOND","floor","Number","parse","IS_EARLY","diff","dirStr","getExplorer","ua","window","navigator","userAgent","isExplorer","exp","on","document","addEventListener","element","event","handler","attachEvent","off","removeEventListener","detachEvent","hasKey","obj","key","keysArr","Object","keys","objEqual","obj1","obj2","keysArr1","keysArr2","getDaysBetween","date1","date2","startDate","endDate","days","isSameWeek","oneDayTime","oldCount","parseInt","getTime","nowOther","formatSeconds","secondTime","minuteTime","hourTime","dayTime","result","secToTime","data","time","h","m","s","hh","mm","ss","timeToSec","hour","split","sec","getUrlParams","name","searchStr","decodeURI","location","href","replace","infoIndex","searchInfo","substring","tagIndex"],"mappings":"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","sourcesContent":["export const forEach = (arr, fn) => {\n if (!arr.length || !fn) return\n let i = -1\n let len = arr.length\n while (++i < len) {\n let item = arr[i]\n fn(item, i, arr)\n }\n}\n\n/**\n * @param {Array} arr1\n * @param {Array} arr2\n * @description 得到两个数组的交集, 两个数组的元素为数值或字符串\n */\nexport const getIntersection = (arr1, arr2) => {\n let len = Math.min(arr1.length, arr2.length)\n let i = -1\n let res = []\n while (++i < len) {\n const item = arr2[i]\n if (arr1.indexOf(item) > -1) res.push(item)\n }\n return res\n}\n\n/**\n * @param {Array} arr1\n * @param {Array} arr2\n * @description 得到两个数组的并集, 两个数组的元素为数值或字符串\n */\nexport const getUnion = (arr1, arr2) => {\n return Array.from(new Set([...arr1, ...arr2]))\n}\n\n/**\n * @param {Array} target 目标数组\n * @param {Array} arr 需要查询的数组\n * @description 判断要查询的数组是否至少有一个元素包含在目标数组中\n */\nexport const hasOneOf = (targetarr, arr) => {\n return targetarr.some(_ => arr.indexOf(_) > -1)\n}\n\n/**\n * @param {String|Number} value 要验证的字符串或数值\n * @param {*} validList 用来验证的列表\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 return false\n}\n\n/**\n * @param {Number} timeStamp 判断时间戳格式是否是毫秒\n * @returns {Boolean}\n */\nconst isMillisecond = timeStamp => {\n const timeStr = String(timeStamp)\n return timeStr.length > 10\n}\n\n/**\n * @param {Number} timeStamp 传入的时间戳\n * @param {Number} currentTime 当前时间时间戳\n * @returns {Boolean} 传入的时间戳是否早于当前时间戳\n */\nconst isEarly = (timeStamp, currentTime) => {\n return timeStamp < currentTime\n}\n\n/**\n * @param {Number} num 数值\n * @returns {String} 处理后的字符串\n * @description 如果传入的数值小于10,即位数只有1位,则在前面补充0\n */\nconst getHandledValue = num => {\n return num < 10 ? '0' + num : num\n}\n\n/**\n * @param {Number} timeStamp 传入的时间戳\n * @param {Number} startType 要返回的时间字符串的格式类型,传入'year'则返回年开头的完整时间\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\n else resStr = month + '-' + date + ' ' + hours + ':' + minutes\n return resStr\n}\n\n/**\n * @param {String|Number} timeStamp 时间戳\n * @returns {String} 相对时间字符串\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\n // 如果IS_EARLY为false则差值取反\n if (!IS_EARLY) diff = -diff\n let resStr = ''\n const dirStr = IS_EARLY ? '前' : '后'\n // 少于等于59秒\n if (diff <= 59) resStr = diff + '秒' + dirStr\n // 多于59秒,少于等于59分钟59秒\n else if (diff > 59 && diff <= 3599) resStr = Math.floor(diff / 60) + '分钟' + dirStr\n // 多于59分钟59秒,少于等于23小时59分钟59秒\n else if (diff > 3599 && diff <= 86399) resStr = Math.floor(diff / 3600) + '小时' + dirStr\n // 多于23小时59分钟59秒,少于等于29天59分钟59秒\n else if (diff > 86399 && diff <= 2623859) resStr = Math.floor(diff / 86400) + '天' + dirStr\n // 多于29天59分钟59秒,少于364天23小时59分钟59秒,且传入的时间戳早于当前\n else if (diff > 2623859 && diff <= 31567859 && IS_EARLY) resStr = getDate(timeStamp)\n else resStr = getDate(timeStamp, 'year')\n return resStr\n}\n\n/**\n * @returns {String} 当前浏览器名称\n */\nexport const getExplorer = () => {\n const ua = window.navigator.userAgent\n const isExplorer = (exp) => {\n return ua.indexOf(exp) > -1\n }\n if (isExplorer('MSIE')) return 'IE'\n else if (isExplorer('Firefox')) return 'Firefox'\n else if (isExplorer('Chrome')) return 'Chrome'\n else if (isExplorer('Opera')) return 'Opera'\n else if (isExplorer('Safari')) return 'Safari'\n}\n\n/**\n * @description 绑定事件 on(element, event, handler)\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/**\n * @description 解绑事件 off(element, event, handler)\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/**\n * 判断一个对象是否存在key,如果传入第二个参数key,则是判断这个obj对象是否存在key这个属性\n * 如果没有传入key这个参数,则判断obj对象是否有键值对\n */\nexport const hasKey = (obj, key) => {\n if (key) return key in obj\n else {\n let keysArr = Object.keys(obj)\n return keysArr.length\n }\n}\n\n/**\n * @param {*} obj1 对象\n * @param {*} obj2 对象\n * @description 判断两个对象是否相等,这两个对象的值只能是数字或字符串\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\n 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}\n\n/**\n * @param {*} date1 开始日期\n * @param {*} date2 结束日期\n * @description 计算两个日期相差天数\n */\nexport const getDaysBetween = (date1, date2) => {\n var startDate = Date.parse(date1)\n var endDate = Date.parse(date2)\n var days = (endDate - startDate) / (1 * 24 * 60 * 60 * 1000)\n return days\n}\n\n/**\n * @param {*} date1 日期1\n * @param {*} date2 日期2\n * @description 判断日期是否同一周内\n */\nexport const isSameWeek = (date1, date2) => {\n var oneDayTime = 1000 * 60 * 60 * 24\n var oldCount = parseInt(date1.getTime() / oneDayTime)\n var nowOther = parseInt(date2.getTime() / oneDayTime)\n return parseInt((oldCount + 4) / 7) === parseInt((nowOther + 4) / 7)\n}\n\n// 秒数(ss) 转 d天h小时m分钟s秒 的时间格式表示\nexport function formatSeconds(value) {\n var secondTime = parseInt(value) // 秒\n var minuteTime = 0 // 分\n var hourTime = 0 // 小时\n var dayTime = 0 // 天\n var result = ''\n if (value < 60) {\n result = secondTime + ' 秒 '\n } else {\n if (secondTime >= 60) { // 如果秒数大于60,将秒数转换成整数\n // 获取分钟,除以60取整数,得到整数分钟\n minuteTime = parseInt(secondTime / 60)\n // 获取秒数,秒数取佘,得到整数秒数\n secondTime = parseInt(secondTime % 60)\n // 如果分钟大于60,将分钟转换成小时\n if (minuteTime >= 60) {\n // 获取小时,获取分钟除以60,得到整数小时\n hourTime = parseInt(minuteTime / 60)\n // 获取小时后取佘的分,获取分钟除以60取佘的分\n minuteTime = parseInt(minuteTime % 60)\n if (hourTime >= 24) {\n // 获取天数, 获取小时除以24,得到整数天\n dayTime = parseInt(hourTime / 24)\n // 获取小时后取余小时,获取分钟除以24取余的分;\n hourTime = parseInt(hourTime % 24)\n }\n }\n }\n if (secondTime > 0) {\n // secondTime = parseInt(secondTime) >= 10 ? secondTime : '0' + secondTime // 用于个位数时前面补0\n result = '' + secondTime + ' 秒 '\n }\n if (minuteTime > 0) {\n // minuteTime = parseInt(minuteTime) >= 10 ? minuteTime : '0' + minuteTime // 用于个位数时前面补0\n result = '' + minuteTime + ' 分钟 ' + result\n }\n if (hourTime > 0) {\n result = '' + parseInt(hourTime) + ' 小时 ' + result\n }\n if (dayTime > 0) {\n result = '' + parseInt(dayTime) + ' 天 ' + result\n }\n }\n return result\n}\n\n// 秒数(ss)转 hh:mm:ss 时间格式\nexport function secToTime(data) {\n var time = Number(data)\n var h = Math.floor(time / 3600)\n var m = Math.floor((time % 3600) / 60)\n var s = parseInt(time % 3600) % 60\n var hh = h < 10 ? \"0\" + h : h\n var mm = m < 10 ? \"0\" + m : m\n var ss = s < 10 ? \"0\" + s : s\n return hh + \":\" + mm + \":\" + ss\n}\n\n// hh:mm:ss 时间格式转秒数(ss)\nexport function timeToSec(time) {\n if (time !== null) {\n var s = \"\"\n var hour = time.split(\":\")[0]\n var min = time.split(\":\")[1]\n var sec = time.split(\":\")[2]\n s = Number(hour * 3600) + Number(min * 60) + Number(sec)\n return s\n }\n}\n\n// 获取 URL 上的参数\nexport function getUrlParams(name) {\n if (name == null || name === 'undefined') { \n return null \n }\n var searchStr = decodeURI(window.location.href).replace('?', '&')\n var infoIndex = searchStr.indexOf(name + '=')\n if (infoIndex === -1) { return null }\n var searchInfo = searchStr.substring(infoIndex + name.length + 1)\n var tagIndex = searchInfo.indexOf('&')\n if (tagIndex !== -1) { searchInfo = searchInfo.substring(0, tagIndex) }\n return searchInfo\n}"]}]} |