12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import { isDate } from 'date-fns';
- import { AES, mode, pad, enc } from "crypto-js";
- /**
- * @description 判断是否是时间戳
- * @param {number} 时间戳
- * @return {boolean}
- */
- export const isTimestamp = (value) => {
- // 判断是否为数字
- if (typeof value !== 'number') return false;
- // 判断是否为合理的时间戳(大于0)
- if (value <= 0) return false;
- // 判断是否为Math.floor(value),即是否为整数
- if (value !== Math.floor(value)) return false;
- // 判断是否为日期对象
- return isDate(new Date(value));
- }
- /**
- * @description 生成连续的数字
- * @param {number} start 起点数字
- * @param {number} end 终点数字
- * @return {array}
- */
- export const generateNumberArray = (start, end) => {
- return Array.from(new Array(end + 1).keys()).slice(start);
- }
- /**
- * @description 登录加密
- * @param {string} str 待加密的字符串
- * @return {string}
- */
- export const encryptByEnAESLogin = (str) => {
- str = enc.Utf8.parse(str);
- let Key = enc.Utf8.parse('Aes2Util666AQWER');
- let tmpAES = AES.encrypt(str, Key, {
- mode: mode.ECB,
- padding: pad.Pkcs7,
- });
- return tmpAES.toString();
- }
- // 处理树数据(parent格式转为children格式)
- export const transform = (nodes, id, parentid) => {
- let parents = [];
- const idMapping = nodes.reduce((acc, el, i) => {
- acc[el[id]] = i;
- return acc;
- }, {});
- nodes.forEach((el) => {
- if (el[parentid] === null || el[parentid] === undefined) {
- parents.push(el);
- } else {
- const parentEl = nodes[idMapping[el[parentid]]];
- parentEl.children = [...(parentEl.children || []), el];
- }
- });
- return parents;
- }
|