| | |
| | | /** |
| | | * @author chuzhixin 1204505056@qq.com (不想保留author可删除) |
| | | * @description 格式化时间 |
| | | * @param time |
| | | * @param cFormat |
| | | * @returns {string|null} |
| | | */ |
| | | export function parseTime(time, cFormat) { |
| | | if (arguments.length === 0) { |
| | | return null |
| | | return null; |
| | | } |
| | | const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}' |
| | | let date |
| | | if (typeof time === 'object') { |
| | | date = time |
| | | const format = cFormat || "{y}-{m}-{d} {h}:{i}:{s}"; |
| | | let date; |
| | | if (typeof time === "object") { |
| | | date = time; |
| | | } else { |
| | | if (typeof time === 'string' && /^[0-9]+$/.test(time)) { |
| | | time = parseInt(time) |
| | | if (typeof time === "string" && /^[0-9]+$/.test(time)) { |
| | | time = parseInt(time); |
| | | } |
| | | if (typeof time === 'number' && time.toString().length === 10) { |
| | | time = time * 1000 |
| | | if (typeof time === "number" && time.toString().length === 10) { |
| | | time = time * 1000; |
| | | } |
| | | date = new Date(time) |
| | | date = new Date(time); |
| | | } |
| | | const formatObj = { |
| | | y: date.getFullYear(), |
| | |
| | | i: date.getMinutes(), |
| | | s: date.getSeconds(), |
| | | a: date.getDay(), |
| | | } |
| | | }; |
| | | const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => { |
| | | let value = formatObj[key] |
| | | if (key === 'a') { |
| | | return ['日', '一', '二', '三', '四', '五', '六'][value] |
| | | let value = formatObj[key]; |
| | | if (key === "a") { |
| | | return ["日", "一", "二", "三", "四", "五", "六"][value]; |
| | | } |
| | | if (result.length > 0 && value < 10) { |
| | | value = '0' + value |
| | | value = "0" + value; |
| | | } |
| | | return value || 0 |
| | | }) |
| | | return time_str |
| | | return value || 0; |
| | | }); |
| | | return time_str; |
| | | } |
| | | |
| | | /** |
| | | * @author chuzhixin 1204505056@qq.com (不想保留author可删除) |
| | | * @description 格式化时间 |
| | | * @param time |
| | | * @param option |
| | | * @returns {string} |
| | | */ |
| | | export function formatTime(time, option) { |
| | | if (('' + time).length === 10) { |
| | | time = parseInt(time) * 1000 |
| | | if (("" + time).length === 10) { |
| | | time = parseInt(time) * 1000; |
| | | } else { |
| | | time = +time |
| | | time = +time; |
| | | } |
| | | const d = new Date(time) |
| | | const now = Date.now() |
| | | const d = new Date(time); |
| | | const now = Date.now(); |
| | | |
| | | const diff = (now - d) / 1000 |
| | | const diff = (now - d) / 1000; |
| | | |
| | | if (diff < 30) { |
| | | return '刚刚' |
| | | return "刚刚"; |
| | | } else if (diff < 3600) { |
| | | // less 1 hour |
| | | return Math.ceil(diff / 60) + '分钟前' |
| | | return Math.ceil(diff / 60) + "分钟前"; |
| | | } else if (diff < 3600 * 24) { |
| | | return Math.ceil(diff / 3600) + '小时前' |
| | | return Math.ceil(diff / 3600) + "小时前"; |
| | | } else if (diff < 3600 * 24 * 2) { |
| | | return '1天前' |
| | | return "1天前"; |
| | | } |
| | | if (option) { |
| | | return parseTime(time, option) |
| | | return parseTime(time, option); |
| | | } else { |
| | | return ( |
| | | d.getMonth() + |
| | | 1 + |
| | | '月' + |
| | | "月" + |
| | | d.getDate() + |
| | | '日' + |
| | | "日" + |
| | | d.getHours() + |
| | | '时' + |
| | | "时" + |
| | | d.getMinutes() + |
| | | '分' |
| | | ) |
| | | "分" |
| | | ); |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * @author chuzhixin 1204505056@qq.com (不想保留author可删除) |
| | | * @description 将url请求参数转为json格式 |
| | | * @param url |
| | | * @returns {{}|any} |
| | | */ |
| | | export function paramObj(url) { |
| | | const search = url.split('?')[1] |
| | | const search = url.split("?")[1]; |
| | | if (!search) { |
| | | return {} |
| | | return {}; |
| | | } |
| | | return JSON.parse( |
| | | '{"' + |
| | |
| | | .replace(/"/g, '\\"') |
| | | .replace(/&/g, '","') |
| | | .replace(/=/g, '":"') |
| | | .replace(/\+/g, ' ') + |
| | | .replace(/\+/g, " ") + |
| | | '"}' |
| | | ) |
| | | ); |
| | | } |
| | | |
| | | /** |
| | | * @author chuzhixin 1204505056@qq.com (不想保留author可删除) |
| | | * @description 父子关系的数组转换成树形结构数据 |
| | | * @param data |
| | | * @returns {*} |
| | | */ |
| | | export function translateDataToTree(data) { |
| | | const parent = data.filter( |
| | | (value) => value.parentId === 'undefined' || value.parentId == null |
| | | ) |
| | | (value) => value.parentId === "undefined" || value.parentId == null |
| | | ); |
| | | const children = data.filter( |
| | | (value) => value.parentId !== 'undefined' && value.parentId != null |
| | | ) |
| | | (value) => value.parentId !== "undefined" && value.parentId != null |
| | | ); |
| | | const translator = (parent, children) => { |
| | | parent.forEach((parent) => { |
| | | children.forEach((current, index) => { |
| | | if (current.parentId === parent.id) { |
| | | const temp = JSON.parse(JSON.stringify(children)) |
| | | temp.splice(index, 1) |
| | | translator([current], temp) |
| | | typeof parent.children !== 'undefined' |
| | | const temp = JSON.parse(JSON.stringify(children)); |
| | | temp.splice(index, 1); |
| | | translator([current], temp); |
| | | typeof parent.children !== "undefined" |
| | | ? parent.children.push(current) |
| | | : (parent.children = [current]) |
| | | : (parent.children = [current]); |
| | | } |
| | | }) |
| | | }) |
| | | } |
| | | translator(parent, children) |
| | | return parent |
| | | }); |
| | | }); |
| | | }; |
| | | translator(parent, children); |
| | | return parent; |
| | | } |
| | | |
| | | /** |
| | | * @author chuzhixin 1204505056@qq.com (不想保留author可删除) |
| | | * @description 树形结构数据转换成父子关系的数组 |
| | | * @param data |
| | | * @returns {[]} |
| | | */ |
| | | export function translateTreeToData(data) { |
| | | const result = [] |
| | | const result = []; |
| | | data.forEach((item) => { |
| | | const loop = (data) => { |
| | | result.push({ |
| | | id: data.id, |
| | | name: data.name, |
| | | parentId: data.parentId, |
| | | }) |
| | | const child = data.children |
| | | }); |
| | | const child = data.children; |
| | | if (child) { |
| | | for (let i = 0; i < child.length; i++) { |
| | | loop(child[i]) |
| | | loop(child[i]); |
| | | } |
| | | } |
| | | } |
| | | loop(item) |
| | | }) |
| | | return result |
| | | }; |
| | | loop(item); |
| | | }); |
| | | return result; |
| | | } |
| | | |
| | | /** |
| | | * @author chuzhixin 1204505056@qq.com (不想保留author可删除) |
| | | * @description 10位时间戳转换 |
| | | * @param time |
| | | * @returns {string} |
| | | */ |
| | | export function tenBitTimestamp(time) { |
| | | const date = new Date(time * 1000) |
| | | const y = date.getFullYear() |
| | | let m = date.getMonth() + 1 |
| | | m = m < 10 ? '' + m : m |
| | | let d = date.getDate() |
| | | d = d < 10 ? '' + d : d |
| | | let h = date.getHours() |
| | | h = h < 10 ? '0' + h : h |
| | | let minute = date.getMinutes() |
| | | let second = date.getSeconds() |
| | | minute = minute < 10 ? '0' + minute : minute |
| | | second = second < 10 ? '0' + second : second |
| | | return y + '年' + m + '月' + d + '日 ' + h + ':' + minute + ':' + second //组合 |
| | | const date = new Date(time * 1000); |
| | | const y = date.getFullYear(); |
| | | let m = date.getMonth() + 1; |
| | | m = m < 10 ? "" + m : m; |
| | | let d = date.getDate(); |
| | | d = d < 10 ? "" + d : d; |
| | | let h = date.getHours(); |
| | | h = h < 10 ? "0" + h : h; |
| | | let minute = date.getMinutes(); |
| | | let second = date.getSeconds(); |
| | | minute = minute < 10 ? "0" + minute : minute; |
| | | second = second < 10 ? "0" + second : second; |
| | | return y + "年" + m + "月" + d + "日 " + h + ":" + minute + ":" + second; //组合 |
| | | } |
| | | |
| | | /** |
| | | * @author chuzhixin 1204505056@qq.com (不想保留author可删除) |
| | | * @description 13位时间戳转换 |
| | | * @param time |
| | | * @returns {string} |
| | | */ |
| | | export function thirteenBitTimestamp(time) { |
| | | const date = new Date(time / 1) |
| | | const y = date.getFullYear() |
| | | let m = date.getMonth() + 1 |
| | | m = m < 10 ? '' + m : m |
| | | let d = date.getDate() |
| | | d = d < 10 ? '' + d : d |
| | | let h = date.getHours() |
| | | h = h < 10 ? '0' + h : h |
| | | let minute = date.getMinutes() |
| | | let second = date.getSeconds() |
| | | minute = minute < 10 ? '0' + minute : minute |
| | | second = second < 10 ? '0' + second : second |
| | | return y + '年' + m + '月' + d + '日 ' + h + ':' + minute + ':' + second //组合 |
| | | const date = new Date(time / 1); |
| | | const y = date.getFullYear(); |
| | | let m = date.getMonth() + 1; |
| | | m = m < 10 ? "" + m : m; |
| | | let d = date.getDate(); |
| | | d = d < 10 ? "" + d : d; |
| | | let h = date.getHours(); |
| | | h = h < 10 ? "0" + h : h; |
| | | let minute = date.getMinutes(); |
| | | let second = date.getSeconds(); |
| | | minute = minute < 10 ? "0" + minute : minute; |
| | | second = second < 10 ? "0" + second : second; |
| | | return y + "年" + m + "月" + d + "日 " + h + ":" + minute + ":" + second; //组合 |
| | | } |
| | | |
| | | /** |
| | | * @author chuzhixin 1204505056@qq.com (不想保留author可删除) |
| | | * @description 获取随机id |
| | | * @param length |
| | | * @returns {string} |
| | | */ |
| | | export function uuid(length = 32) { |
| | | const num = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890' |
| | | let str = '' |
| | | const num = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"; |
| | | let str = ""; |
| | | for (let i = 0; i < length; i++) { |
| | | str += num.charAt(Math.floor(Math.random() * num.length)) |
| | | str += num.charAt(Math.floor(Math.random() * num.length)); |
| | | } |
| | | return str |
| | | return str; |
| | | } |
| | | |
| | | /** |
| | | * @author chuzhixin 1204505056@qq.com (不想保留author可删除) |
| | | * @description m到n的随机数 |
| | | * @param m |
| | | * @param n |
| | | * @returns {number} |
| | | */ |
| | | export function random(m, n) { |
| | | return Math.floor(Math.random() * (m - n) + n) |
| | | return Math.floor(Math.random() * (m - n) + n); |
| | | } |
| | | |
| | | /** |
| | | * @author chuzhixin 1204505056@qq.com (不想保留author可删除) |
| | | * @description addEventListener |
| | | * @type {function(...[*]=)} |
| | | */ |
| | | export const on = (function () { |
| | | return function (element, event, handler, useCapture = false) { |
| | | if (element && event && handler) { |
| | | element.addEventListener(event, handler, useCapture) |
| | | element.addEventListener(event, handler, useCapture); |
| | | } |
| | | } |
| | | })() |
| | | }; |
| | | })(); |
| | | |
| | | /** |
| | | * @author chuzhixin 1204505056@qq.com (不想保留author可删除) |
| | | * @description removeEventListener |
| | | * @type {function(...[*]=)} |
| | | */ |
| | | export const off = (function () { |
| | | return function (element, event, handler, useCapture = false) { |
| | | if (element && event) { |
| | | element.removeEventListener(event, handler, useCapture) |
| | | element.removeEventListener(event, handler, useCapture); |
| | | } |
| | | } |
| | | })() |
| | | }; |
| | | })(); |