2024-02-19 16:02:13 +00:00
|
|
|
|
import checkTypes from "@/utils/checkTypes";
|
|
|
|
|
|
export function guid() {
|
|
|
|
|
|
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function (c) {
|
|
|
|
|
|
const r = (Math.random() * 16) | 0
|
|
|
|
|
|
const v = c === 'x' ? r : (r & 0x3) | 0x8
|
|
|
|
|
|
return v.toString(16)
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const getTheTruth = function (data) {
|
|
|
|
|
|
if (typeof data !== 'object' && typeof data !== 'string') return data
|
|
|
|
|
|
if (typeof data === 'string') {
|
|
|
|
|
|
if (data.startsWith('{') || data.startsWith('['))
|
|
|
|
|
|
return getTheTruth(JSON.parse(data))
|
|
|
|
|
|
return data
|
|
|
|
|
|
}
|
|
|
|
|
|
if (Array.isArray(data)) return data.map((item) => getTheTruth(item))
|
|
|
|
|
|
for (const key in data) data[key] = getTheTruth(data[key])
|
|
|
|
|
|
return data
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export const isEmpty = (data) => {
|
|
|
|
|
|
return checkTypes.isUndefined(data) || checkTypes.isNull(data) || data == NaN
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
export function isDef(v) {
|
|
|
|
|
|
return v !== undefined && v !== null
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export function isPromise(val) {
|
|
|
|
|
|
return (
|
|
|
|
|
|
isDef(val) &&
|
|
|
|
|
|
typeof val.then === 'function' &&
|
|
|
|
|
|
typeof val.catch === 'function'
|
|
|
|
|
|
)
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export const toPromise = (task, data) => {
|
|
|
|
|
|
return new Promise((resolve, reject) => {
|
|
|
|
|
|
let _isPromise = false // 当前任务是不是一个promise
|
|
|
|
|
|
try {
|
|
|
|
|
|
// 执行任务
|
|
|
|
|
|
const results = task(data)
|
|
|
|
|
|
// 任务是一个异步函数,执行promise
|
|
|
|
|
|
if (isPromise(results)) {
|
|
|
|
|
|
_isPromise = true
|
|
|
|
|
|
results.then(resolve, reject)
|
|
|
|
|
|
} else {
|
|
|
|
|
|
// 非异步任务
|
|
|
|
|
|
resolve(results)
|
|
|
|
|
|
}
|
|
|
|
|
|
} catch (e) {
|
|
|
|
|
|
if (!_isPromise) {
|
|
|
|
|
|
reject(e)
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
})
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
export function getSize(size, defaultValue = undefined) {
|
|
|
|
|
|
if (!size) {
|
|
|
|
|
|
if (checkTypes.isNumber(size)) return size
|
|
|
|
|
|
return defaultValue || undefined
|
|
|
|
|
|
}
|
|
|
|
|
|
if (/^\-?\d+$/.test(`${size}`)) return `${size}px`
|
|
|
|
|
|
if (/(%|px)$/.test(`${size}`)) return size
|
|
|
|
|
|
if (/calc/.test(`${size}`)) return size
|
|
|
|
|
|
return size
|
|
|
|
|
|
}
|