From 27d36f797012e33280f36117e86bae84ad1ca06c Mon Sep 17 00:00:00 2001
From: 疯狂的狮子Li <15040126243@163.com>
Date: 星期三, 26 六月 2024 12:02:28 +0800
Subject: [PATCH] !129 feat: 路由name重复检查 Merge pull request !129 from 玲娜贝er/dev
---
src/utils/index.ts | 338 ++++++++++++++++++++++++++++----------------------------
1 files changed, 169 insertions(+), 169 deletions(-)
diff --git a/src/utils/index.ts b/src/utils/index.ts
index fb1a97b..2b0aad5 100644
--- a/src/utils/index.ts
+++ b/src/utils/index.ts
@@ -4,15 +4,15 @@
* 琛ㄦ牸鏃堕棿鏍煎紡鍖�
*/
export const formatDate = (cellValue: string) => {
- if (cellValue == null || cellValue == '') return '';
- const date = new Date(cellValue);
- const year = date.getFullYear();
- const month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1;
- const day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
- const hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
- const minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
- const seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
- return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
+ if (cellValue == null || cellValue == '') return '';
+ const date = new Date(cellValue);
+ const year = date.getFullYear();
+ const month = date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1;
+ const day = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
+ const hours = date.getHours() < 10 ? '0' + date.getHours() : date.getHours();
+ const minutes = date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes();
+ const seconds = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
+ return year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds;
};
/**
@@ -21,32 +21,32 @@
* @returns {string}
*/
export const formatTime = (time: string, option: string) => {
- let t: number;
- if (('' + time).length === 10) {
- t = parseInt(time) * 1000;
- } else {
- t = +time;
- }
- const d: any = new Date(t);
- const now = Date.now();
+ let t: number;
+ if (('' + time).length === 10) {
+ t = parseInt(time) * 1000;
+ } else {
+ t = +time;
+ }
+ const d: any = new Date(t);
+ const now = Date.now();
- const diff = (now - d) / 1000;
+ const diff = (now - d) / 1000;
- if (diff < 30) {
- return '鍒氬垰';
- } else if (diff < 3600) {
- // less 1 hour
- return Math.ceil(diff / 60) + '鍒嗛挓鍓�';
- } else if (diff < 3600 * 24) {
- return Math.ceil(diff / 3600) + '灏忔椂鍓�';
- } else if (diff < 3600 * 24 * 2) {
- return '1澶╁墠';
- }
- if (option) {
- return parseTime(t, option);
- } else {
- return d.getMonth() + 1 + '鏈�' + d.getDate() + '鏃�' + d.getHours() + '鏃�' + d.getMinutes() + '鍒�';
- }
+ if (diff < 30) {
+ return '鍒氬垰';
+ } else if (diff < 3600) {
+ // less 1 hour
+ return Math.ceil(diff / 60) + '鍒嗛挓鍓�';
+ } else if (diff < 3600 * 24) {
+ return Math.ceil(diff / 3600) + '灏忔椂鍓�';
+ } else if (diff < 3600 * 24 * 2) {
+ return '1澶╁墠';
+ }
+ if (option) {
+ return parseTime(t, option);
+ } else {
+ return d.getMonth() + 1 + '鏈�' + d.getDate() + '鏃�' + d.getHours() + '鏃�' + d.getMinutes() + '鍒�';
+ }
};
/**
@@ -54,18 +54,18 @@
* @returns {Object}
*/
export const getQueryObject = (url: string) => {
- url = url == null ? window.location.href : url;
- const search = url.substring(url.lastIndexOf('?') + 1);
- const obj: { [key: string]: string } = {};
- const reg = /([^?&=]+)=([^?&=]*)/g;
- search.replace(reg, (rs, $1, $2) => {
- const name = decodeURIComponent($1);
- let val = decodeURIComponent($2);
- val = String(val);
- obj[name] = val;
- return rs;
- });
- return obj;
+ url = url == null ? window.location.href : url;
+ const search = url.substring(url.lastIndexOf('?') + 1);
+ const obj: { [key: string]: string } = {};
+ const reg = /([^?&=]+)=([^?&=]*)/g;
+ search.replace(reg, (rs, $1, $2) => {
+ const name = decodeURIComponent($1);
+ let val = decodeURIComponent($2);
+ val = String(val);
+ obj[name] = val;
+ return rs;
+ });
+ return obj;
};
/**
@@ -73,15 +73,15 @@
* @returns {number} output value
*/
export const byteLength = (str: string) => {
- // returns the byte length of an utf8 string
- let s = str.length;
- for (let i = str.length - 1; i >= 0; i--) {
- const code = str.charCodeAt(i);
- if (code > 0x7f && code <= 0x7ff) s++;
- else if (code > 0x7ff && code <= 0xffff) s += 2;
- if (code >= 0xdc00 && code <= 0xdfff) i--;
- }
- return s;
+ // returns the byte length of an utf8 string
+ let s = str.length;
+ for (let i = str.length - 1; i >= 0; i--) {
+ const code = str.charCodeAt(i);
+ if (code > 0x7f && code <= 0x7ff) s++;
+ else if (code > 0x7ff && code <= 0xffff) s += 2;
+ if (code >= 0xdc00 && code <= 0xdfff) i--;
+ }
+ return s;
};
/**
@@ -89,13 +89,13 @@
* @returns {Array}
*/
export const cleanArray = (actual: Array<any>) => {
- const newArray = [];
- for (let i = 0; i < actual.length; i++) {
- if (actual[i]) {
- newArray.push(actual[i]);
- }
- }
- return newArray;
+ const newArray: any[] = [];
+ for (let i = 0; i < actual.length; i++) {
+ if (actual[i]) {
+ newArray.push(actual[i]);
+ }
+ }
+ return newArray;
};
/**
@@ -103,13 +103,13 @@
* @returns {Array}
*/
export const param = (json: any) => {
- if (!json) return '';
- return cleanArray(
- Object.keys(json).map((key) => {
- if (json[key] === undefined) return '';
- return encodeURIComponent(key) + '=' + encodeURIComponent(json[key]);
- })
- ).join('&');
+ if (!json) return '';
+ return cleanArray(
+ Object.keys(json).map((key) => {
+ if (json[key] === undefined) return '';
+ return encodeURIComponent(key) + '=' + encodeURIComponent(json[key]);
+ })
+ ).join('&');
};
/**
@@ -117,21 +117,21 @@
* @returns {Object}
*/
export const param2Obj = (url: string) => {
- const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ');
- if (!search) {
- return {};
- }
- const obj: any = {};
- const searchArr = search.split('&');
- searchArr.forEach((v) => {
- const index = v.indexOf('=');
- if (index !== -1) {
- const name = v.substring(0, index);
- const val = v.substring(index + 1, v.length);
- obj[name] = val;
- }
- });
- return obj;
+ const search = decodeURIComponent(url.split('?')[1]).replace(/\+/g, ' ');
+ if (!search) {
+ return {};
+ }
+ const obj: any = {};
+ const searchArr = search.split('&');
+ searchArr.forEach((v) => {
+ const index = v.indexOf('=');
+ if (index !== -1) {
+ const name = v.substring(0, index);
+ const val = v.substring(index + 1, v.length);
+ obj[name] = val;
+ }
+ });
+ return obj;
};
/**
@@ -139,9 +139,9 @@
* @returns {string}
*/
export const html2Text = (val: string) => {
- const div = document.createElement('div');
- div.innerHTML = val;
- return div.textContent || div.innerText;
+ const div = document.createElement('div');
+ div.innerHTML = val;
+ return div.textContent || div.innerText;
};
/**
@@ -151,21 +151,21 @@
* @returns {Object}
*/
export const objectMerge = (target: any, source: any | any[]) => {
- if (typeof target !== 'object') {
- target = {};
- }
- if (Array.isArray(source)) {
- return source.slice();
- }
- Object.keys(source).forEach((property) => {
- const sourceProperty = source[property];
- if (typeof sourceProperty === 'object') {
- target[property] = objectMerge(target[property], sourceProperty);
- } else {
- target[property] = sourceProperty;
- }
- });
- return target;
+ if (typeof target !== 'object') {
+ target = {};
+ }
+ if (Array.isArray(source)) {
+ return source.slice();
+ }
+ Object.keys(source).forEach((property) => {
+ const sourceProperty = source[property];
+ if (typeof sourceProperty === 'object') {
+ target[property] = objectMerge(target[property], sourceProperty);
+ } else {
+ target[property] = sourceProperty;
+ }
+ });
+ return target;
};
/**
@@ -173,17 +173,17 @@
* @param {string} className
*/
export const toggleClass = (element: HTMLElement, className: string) => {
- if (!element || !className) {
- return;
- }
- let classString = element.className;
- const nameIndex = classString.indexOf(className);
- if (nameIndex === -1) {
- classString += '' + className;
- } else {
- classString = classString.substring(0, nameIndex) + classString.substring(nameIndex + className.length);
- }
- element.className = classString;
+ if (!element || !className) {
+ return;
+ }
+ let classString = element.className;
+ const nameIndex = classString.indexOf(className);
+ if (nameIndex === -1) {
+ classString += '' + className;
+ } else {
+ classString = classString.substring(0, nameIndex) + classString.substring(nameIndex + className.length);
+ }
+ element.className = classString;
};
/**
@@ -191,11 +191,11 @@
* @returns {Date}
*/
export const getTime = (type: string) => {
- if (type === 'start') {
- return new Date().getTime() - 3600 * 1000 * 24 * 90;
- } else {
- return new Date(new Date().toDateString());
- }
+ if (type === 'start') {
+ return new Date().getTime() - 3600 * 1000 * 24 * 90;
+ } else {
+ return new Date(new Date().toDateString());
+ }
};
/**
@@ -205,37 +205,37 @@
* @return {*}
*/
export const debounce = (func: any, wait: number, immediate: boolean) => {
- let timeout: any, args: any, context: any, timestamp: any, result: any;
+ let timeout: any, args: any, context: any, timestamp: any, result: any;
- const later = function () {
- // 鎹笂涓�娆¤Е鍙戞椂闂撮棿闅�
- const last = +new Date() - timestamp;
+ const later = function () {
+ // 鎹笂涓�娆¤Е鍙戞椂闂撮棿闅�
+ const last = +new Date() - timestamp;
- // 涓婃琚寘瑁呭嚱鏁拌璋冪敤鏃堕棿闂撮殧 last 灏忎簬璁惧畾鏃堕棿闂撮殧 wait
- if (last < wait && last > 0) {
- timeout = setTimeout(later, wait - last);
- } else {
- timeout = null;
- // 濡傛灉璁惧畾涓篿mmediate===true锛屽洜涓哄紑濮嬭竟鐣屽凡缁忚皟鐢ㄨ繃浜嗘澶勬棤闇�璋冪敤
- if (!immediate) {
- result = func.apply(context, args);
- if (!timeout) context = args = null;
- }
- }
- };
+ // 涓婃琚寘瑁呭嚱鏁拌璋冪敤鏃堕棿闂撮殧 last 灏忎簬璁惧畾鏃堕棿闂撮殧 wait
+ if (last < wait && last > 0) {
+ timeout = setTimeout(later, wait - last);
+ } else {
+ timeout = null;
+ // 濡傛灉璁惧畾涓篿mmediate===true锛屽洜涓哄紑濮嬭竟鐣屽凡缁忚皟鐢ㄨ繃浜嗘澶勬棤闇�璋冪敤
+ if (!immediate) {
+ result = func.apply(context, args);
+ if (!timeout) context = args = null;
+ }
+ }
+ };
- return (...args: any) => {
- context = this;
- timestamp = +new Date();
- const callNow = immediate && !timeout;
- // 濡傛灉寤舵椂涓嶅瓨鍦紝閲嶆柊璁惧畾寤舵椂
- if (!timeout) timeout = setTimeout(later, wait);
- if (callNow) {
- result = func.apply(context, args);
- context = args = null;
- }
- return result;
- };
+ return (...args: any) => {
+ context = this;
+ timestamp = +new Date();
+ const callNow = immediate && !timeout;
+ // 濡傛灉寤舵椂涓嶅瓨鍦紝閲嶆柊璁惧畾寤舵椂
+ if (!timeout) timeout = setTimeout(later, wait);
+ if (callNow) {
+ result = func.apply(context, args);
+ context = args = null;
+ }
+ return result;
+ };
};
/**
@@ -246,18 +246,18 @@
* @returns {Object}
*/
export const deepClone = (source: any) => {
- if (!source && typeof source !== 'object') {
- throw new Error('error arguments', 'deepClone' as any);
- }
- const targetObj: any = source.constructor === Array ? [] : {};
- Object.keys(source).forEach((keys) => {
- if (source[keys] && typeof source[keys] === 'object') {
- targetObj[keys] = deepClone(source[keys]);
- } else {
- targetObj[keys] = source[keys];
- }
- });
- return targetObj;
+ if (!source && typeof source !== 'object') {
+ throw new Error('error arguments', 'deepClone' as any);
+ }
+ const targetObj: any = source.constructor === Array ? [] : {};
+ Object.keys(source).forEach((keys) => {
+ if (source[keys] && typeof source[keys] === 'object') {
+ targetObj[keys] = deepClone(source[keys]);
+ } else {
+ targetObj[keys] = source[keys];
+ }
+ });
+ return targetObj;
};
/**
@@ -265,17 +265,17 @@
* @returns {Array}
*/
export const uniqueArr = (arr: any) => {
- return Array.from(new Set(arr));
+ return Array.from(new Set(arr));
};
/**
* @returns {string}
*/
export const createUniqueString = (): string => {
- const timestamp = +new Date() + '';
- const num = (1 + Math.random()) * 65536;
- const randomNum = parseInt(num + '');
- return (+(randomNum + timestamp)).toString(32);
+ const timestamp = +new Date() + '';
+ const num = (1 + Math.random()) * 65536;
+ const randomNum = parseInt(num + '');
+ return (+(randomNum + timestamp)).toString(32);
};
/**
@@ -285,7 +285,7 @@
* @returns {boolean}
*/
export const hasClass = (ele: HTMLElement, cls: string): boolean => {
- return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
+ return !!ele.className.match(new RegExp('(\\s|^)' + cls + '(\\s|$)'));
};
/**
@@ -294,7 +294,7 @@
* @param {string} cls
*/
export const addClass = (ele: HTMLElement, cls: string) => {
- if (!hasClass(ele, cls)) ele.className += ' ' + cls;
+ if (!hasClass(ele, cls)) ele.className += ' ' + cls;
};
/**
@@ -303,10 +303,10 @@
* @param {string} cls
*/
export const removeClass = (ele: HTMLElement, cls: string) => {
- if (hasClass(ele, cls)) {
- const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
- ele.className = ele.className.replace(reg, ' ');
- }
+ if (hasClass(ele, cls)) {
+ const reg = new RegExp('(\\s|^)' + cls + '(\\s|$)');
+ ele.className = ele.className.replace(reg, ' ');
+ }
};
/**
@@ -314,5 +314,5 @@
* @returns {Boolean}
*/
export const isExternal = (path: string) => {
- return /^(https?:|http?:|mailto:|tel:)/.test(path);
+ return /^(https?:|http?:|mailto:|tel:)/.test(path);
};
--
Gitblit v1.9.3