From e1699c4851f6ca397cd0ad1ff63f32c737654836 Mon Sep 17 00:00:00 2001
From: 罗广辉 <guanghui.luo@foxmail.com>
Date: Wed, 02 Apr 2025 19:14:54 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
src/utils/func.js | 556 +++++++++++++++++++++++++++---------------------------
1 files changed, 278 insertions(+), 278 deletions(-)
diff --git a/src/utils/func.js b/src/utils/func.js
index ac6fe0e..fdcdf39 100644
--- a/src/utils/func.js
+++ b/src/utils/func.js
@@ -2,309 +2,309 @@
* 通用工具类
*/
export default class func {
- /**
- * 不为空
- * @param val
- * @returns {boolean}
- */
- static notEmpty(val) {
- return !this.isEmpty(val);
- }
+ /**
+ * 不为空
+ * @param val
+ * @returns {boolean}
+ */
+ static notEmpty(val) {
+ return !this.isEmpty(val)
+ }
- /**
- * 是否为定义
- * @param val
- * @returns {boolean}
- */
- static isUndefined(val) {
- return val === null || typeof val === 'undefined';
- }
+ /**
+ * 是否为定义
+ * @param val
+ * @returns {boolean}
+ */
+ static isUndefined(val) {
+ return val === null || typeof val === 'undefined'
+ }
- /**
- * 为空
- * @param val
- * @returns {boolean}
- */
- static isEmpty(val) {
- if (
- val === null ||
- typeof val === 'undefined' ||
- (typeof val === 'string' && val === '' && val !== 'undefined')
- ) {
- return true;
- }
- return false;
- }
+ /**
+ * 为空
+ * @param val
+ * @returns {boolean}
+ */
+ static isEmpty(val) {
+ if (
+ val === null ||
+ typeof val === 'undefined' ||
+ (typeof val === 'string' && val === '' && val !== 'undefined')
+ ) {
+ return true
+ }
+ return false
+ }
- /**
- * 强转int型
- * @param val
- * @param defaultValue
- * @returns {number}
- */
- static toInt(val, defaultValue) {
- if (this.isEmpty(val)) {
- return defaultValue === undefined ? -1 : defaultValue;
- }
- const num = parseInt(val, 0);
- return Number.isNaN(num) ? (defaultValue === undefined ? -1 : defaultValue) : num;
- }
+ /**
+ * 强转int型
+ * @param val
+ * @param defaultValue
+ * @returns {number}
+ */
+ static toInt(val, defaultValue) {
+ if (this.isEmpty(val)) {
+ return defaultValue === undefined ? -1 : defaultValue
+ }
+ const num = parseInt(val, 0)
+ return Number.isNaN(num) ? (defaultValue === undefined ? -1 : defaultValue) : num
+ }
- /**
- * 转为数字型(转换失败则返回原值)
- * @param val
- */
- static toNumber(val) {
- if (this.isEmpty(val)) {
- return '';
- }
- const num = parseFloat(val);
- return Number.isNaN(num) ? val : num;
- }
+ /**
+ * 转为数字型(转换失败则返回原值)
+ * @param val
+ */
+ static toNumber(val) {
+ if (this.isEmpty(val)) {
+ return ''
+ }
+ const num = parseFloat(val)
+ return Number.isNaN(num) ? val : num
+ }
- /**
- * Json强转为Form类型
- * @param obj
- * @returns {FormData}
- */
- static toFormData(obj) {
- const data = new FormData();
- Object.keys(obj).forEach(key => {
- data.append(key, Array.isArray(obj[key]) ? obj[key].join(',') : obj[key]);
- });
- return data;
- }
+ /**
+ * Json强转为Form类型
+ * @param obj
+ * @returns {FormData}
+ */
+ static toFormData(obj) {
+ const data = new FormData()
+ Object.keys(obj).forEach(key => {
+ data.append(key, Array.isArray(obj[key]) ? obj[key].join(',') : obj[key])
+ })
+ return data
+ }
- /**
- * date类转为字符串格式
- * @param date
- * @param format
- * @returns {null}
- */
- static format(date, format = 'YYYY-MM-DD HH:mm:ss') {
- return date ? date.format(format) : null;
- }
+ /**
+ * date类转为字符串格式
+ * @param date
+ * @param format
+ * @returns {null}
+ */
+ static format(date, format = 'YYYY-MM-DD HH:mm:ss') {
+ return date ? date.format(format) : null
+ }
- /**
- * data类格式化
- * @param timestamp
- * @returns {string}
- */
- static formatDateTime(timestamp) {
- return this.formatDate(new Date(timestamp));
- }
+ /**
+ * data类格式化
+ * @param timestamp
+ * @returns {string}
+ */
+ static formatDateTime(timestamp) {
+ return this.formatDate(new Date(timestamp))
+ }
- /**
- * data类格式化
- * @param date
- * @returns {string}
- */
- static formatDate(date) {
- const pad = num => (num < 10 ? '0' + num : num);
+ /**
+ * data类格式化
+ * @param date
+ * @returns {string}
+ */
+ static formatDate(date) {
+ const pad = num => (num < 10 ? '0' + num : num)
- const year = date.getFullYear();
- const month = pad(date.getMonth() + 1); // 月份从0开始,所以+1
- const day = pad(date.getDate());
- const hour = pad(date.getHours());
- const minute = pad(date.getMinutes());
- const second = pad(date.getSeconds());
+ const year = date.getFullYear()
+ const month = pad(date.getMonth() + 1) // 月份从0开始,所以+1
+ const day = pad(date.getDate())
+ const hour = pad(date.getHours())
+ const minute = pad(date.getMinutes())
+ const second = pad(date.getSeconds())
- return `${year}-${month}-${day} ${hour}:${minute}:${second}`;
- }
+ return `${year}-${month}-${day} ${hour}:${minute}:${second}`
+ }
- /**
- * 格式化时区解决时间差问题
- * @param datetime
- * @returns {string}
- */
- static toLocalISOString(datetime) {
- let timezoneOffset = datetime.getTimezoneOffset() * 60000; // 获取当前时区与UTC的时间差(以毫秒为单位)
- let localDatetime = new Date(datetime - timezoneOffset); // 调整时间,得到当前时区时间
- return localDatetime.toISOString();
- }
+ /**
+ * 格式化时区解决时间差问题
+ * @param datetime
+ * @returns {string}
+ */
+ static toLocalISOString(datetime) {
+ let timezoneOffset = datetime.getTimezoneOffset() * 60000 // 获取当前时区与UTC的时间差(以毫秒为单位)
+ let localDatetime = new Date(datetime - timezoneOffset) // 调整时间,得到当前时区时间
+ return localDatetime.toISOString()
+ }
- /**
- * 根据逗号联合
- * @param arr
- * @returns {string}
- */
- static join(arr) {
- return Array.isArray(arr) ? arr.join(',') : arr;
- }
+ /**
+ * 根据逗号联合
+ * @param arr
+ * @returns {string}
+ */
+ static join(arr) {
+ return Array.isArray(arr) ? arr.join(',') : arr
+ }
- /**
- * 根据逗号分隔
- * @param str
- * @returns {string}
- */
- static split(str) {
- return str ? String(str).split(',') : '';
- }
+ /**
+ * 根据逗号分隔
+ * @param str
+ * @returns {string}
+ */
+ static split(str) {
+ return str ? String(str).split(',') : ''
+ }
- /**
- * 转换空字符串
- * @param str
- * @returns {string|*}
- */
- static toStr(str) {
- if (typeof str === 'undefined' || str === null) {
- return '';
- }
- return str;
- }
+ /**
+ * 转换空字符串
+ * @param str
+ * @returns {string|*}
+ */
+ static toStr(str) {
+ if (typeof str === 'undefined' || str === null) {
+ return ''
+ }
+ return str
+ }
- /**
- * 判断是否为数组
- * @param param
- * @returns {boolean}
- */
- static isArrayAndNotEmpty(param) {
- return Array.isArray(param) && param.length > 0;
- }
+ /**
+ * 判断是否为数组
+ * @param param
+ * @returns {boolean}
+ */
+ static isArrayAndNotEmpty(param) {
+ return Array.isArray(param) && param.length > 0
+ }
- /**
- * 格式化URL
- * @param url
- * @returns {*|string}
- */
- static formatUrl(url) {
- if (!url) return url;
- if (url.startsWith('http://') || url.startsWith('https://')) {
- return url;
- } else {
- return `http://${url}`;
- }
- }
+ /**
+ * 格式化URL
+ * @param url
+ * @returns {*|string}
+ */
+ static formatUrl(url) {
+ if (!url) return url
+ if (url.startsWith('http://') || url.startsWith('https://')) {
+ return url
+ } else {
+ return `http://${url}`
+ }
+ }
- /**
- * bytes转换为kb单位
- * @param bytes
- * @returns {string}
- */
- static bytesToKB(bytes) {
- const kb = bytes / 1024;
- return kb.toFixed(2);
- }
+ /**
+ * bytes转换为kb单位
+ * @param bytes
+ * @returns {string}
+ */
+ static bytesToKB(bytes) {
+ const kb = bytes / 1024
+ return kb.toFixed(2)
+ }
- /**
- * json数组转换成key value字符串
- * @param jsonArray "[{enumKey: 'key', enumValue: 'value'}]"
- * @returns {*}
- */
- static jsonArrayToKeyValue(jsonArray) {
- if (this.isEmpty(jsonArray)) {
- return '';
- }
- return jsonArray.map(item => `${item.enumKey}:${item.enumValue}`).join(';');
- }
+ /**
+ * json数组转换成key value字符串
+ * @param jsonArray "[{enumKey: 'key', enumValue: 'value'}]"
+ * @returns {*}
+ */
+ static jsonArrayToKeyValue(jsonArray) {
+ if (this.isEmpty(jsonArray)) {
+ return ''
+ }
+ return jsonArray.map(item => `${item.enumKey}:${item.enumValue}`).join(';')
+ }
- /**
- * key value字符串转换成json数组
- * @param keyValue key:value;key:value
- * @returns {*[]}
- */
- static keyValueToJsonArray(keyValue) {
- if (this.isEmpty(keyValue)) {
- return [];
- }
- return keyValue.split(';').map((kv, index) => {
- const [key, value] = kv.split(':');
- return {
- id: index,
- enumKey: key,
- enumValue: value,
- };
- });
- }
+ /**
+ * key value字符串转换成json数组
+ * @param keyValue key:value;key:value
+ * @returns {*[]}
+ */
+ static keyValueToJsonArray(keyValue) {
+ if (this.isEmpty(keyValue)) {
+ return []
+ }
+ return keyValue.split(';').map((kv, index) => {
+ const [key, value] = kv.split(':')
+ return {
+ id: index,
+ enumKey: key,
+ enumValue: value,
+ }
+ })
+ }
- /**
- * 检查字符串str中是否包含子字符串val
- * @param {string} str 要检查的字符串
- * @param {string} val 要查找的子字符串
- * @return {boolean} 如果str包含val则返回true,否则返回false
- */
- static contains(str, val) {
- // 检查str是否为字符串且不为空
- if (typeof str === 'string' && str.length > 0) {
- return str.includes(val);
- }
- return false;
- }
+ /**
+ * 检查字符串str中是否包含子字符串val
+ * @param {string} str 要检查的字符串
+ * @param {string} val 要查找的子字符串
+ * @return {boolean} 如果str包含val则返回true,否则返回false
+ */
+ static contains(str, val) {
+ // 检查str是否为字符串且不为空
+ if (typeof str === 'string' && str.length > 0) {
+ return str.includes(val)
+ }
+ return false
+ }
- /**
- * 截取字符串
- * @param str 字符串
- * @param len 截取长度
- * @returns {*|string}
- */
- static truncateString(str, len = 20) {
- if (str.length > len) {
- return str.slice(0, len) + '...';
- }
- return str;
- }
+ /**
+ * 截取字符串
+ * @param str 字符串
+ * @param len 截取长度
+ * @returns {*|string}
+ */
+ static truncateString(str, len = 20) {
+ if (str.length > len) {
+ return str.slice(0, len) + '...'
+ }
+ return str
+ }
- /**
- * 驼峰转下划线
- * @param str
- * @returns {*}
- */
- static camelCaseString(str) {
- return str.replace(/_([a-z])/g, g => g[1].toUpperCase());
- }
+ /**
+ * 驼峰转下划线
+ * @param str
+ * @returns {*}
+ */
+ static camelCaseString(str) {
+ return str.replace(/_([a-z])/g, g => g[1].toUpperCase())
+ }
- /**
- * 生成随机字符串
- * @param length 长度
- * @returns {string}
- */
- static strGenerate(length) {
- const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
- const maxLength = 256;
- if (length > maxLength) {
- throw new Error(`长度最大值不能超过 ${maxLength}`);
- }
+ /**
+ * 生成随机字符串
+ * @param length 长度
+ * @returns {string}
+ */
+ static strGenerate(length) {
+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'
+ const maxLength = 256
+ if (length > maxLength) {
+ throw new Error(`长度最大值不能超过 ${maxLength}`)
+ }
- return Array.from({ length }, () =>
- characters.charAt(Math.floor(Math.random() * characters.length))
- ).join('');
- }
+ return Array.from({ length }, () =>
+ characters.charAt(Math.floor(Math.random() * characters.length))
+ ).join('')
+ }
- /**
- * 生成UUID
- * @returns {string}
- */
- static generateUUID() {
- return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
- const r = (Math.random() * 16) | 0,
- v = c === 'x' ? r : (r & 0x3) | 0x8;
- return v.toString(16);
- });
- }
+ /**
+ * 生成UUID
+ * @returns {string}
+ */
+ static generateUUID() {
+ return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
+ const r = (Math.random() * 16) | 0,
+ v = c === 'x' ? r : (r & 0x3) | 0x8
+ return v.toString(16)
+ })
+ }
- /**
- * 过滤空对象
- * @param obj
- * @returns {Object}
- */
- static filterEmptyObject(obj) {
- return Object.fromEntries(
- Object.entries(obj).filter(
- ([, value]) => value !== '' && value !== null && value !== undefined
- )
- );
- }
+ /**
+ * 过滤空对象
+ * @param obj
+ * @returns {Object}
+ */
+ static filterEmptyObject(obj) {
+ return Object.fromEntries(
+ Object.entries(obj).filter(
+ ([, value]) => value !== '' && value !== null && value !== undefined
+ )
+ )
+ }
- /**
- * 获取用户租户ID
- * @param userInfo
- * @returns {string}
- */
- static getUserTenantId(userInfo) {
- if (userInfo && userInfo.tenant_id) {
- return userInfo.tenant_id;
- } else if (userInfo && userInfo.tenantId) {
- return userInfo.tenantId;
- }
- }
+ /**
+ * 获取用户租户ID
+ * @param userInfo
+ * @returns {string}
+ */
+ static getUserTenantId(userInfo) {
+ if (userInfo && userInfo.tenant_id) {
+ return userInfo.tenant_id
+ } else if (userInfo && userInfo.tenantId) {
+ return userInfo.tenantId
+ }
+ }
}
--
Gitblit v1.9.3