/**
|
* 对象深度拷贝
|
* @param obj
|
* @returns {Array}
|
*/
|
export function objClone(obj) {
|
const result = Array.isArray(obj) ? [] : {}
|
if (obj == undefined) {
|
return result
|
}
|
for (const key in obj) {
|
if (obj.hasOwnProperty(key)) {
|
if (typeof obj[key] === 'object') {
|
result[key] = objClone(obj[key]) // 递归复制
|
} else {
|
result[key] = obj[key]
|
}
|
}
|
}
|
return result
|
}
|
|
/* 检查空 */
|
export function isBlank(str) {
|
return str === undefined || str === 'undefined' || str === null || str === '' || str === 'null' || str === '[]' || str === '{}' || str === null || str === JSON.stringify({}) || str === JSON.stringify([])
|
}
|
|
export function isNotBlank(str) {
|
return !isBlank(str)
|
}
|
|
/**
|
* 两数相加 arg1 + arg2
|
* @param arg1
|
* @param arg2
|
* @returns {number}
|
*/
|
export function add(arg1, arg2) {
|
let t = 0
|
arg1 = arg1 ? arg1.toString() : '0'
|
arg2 = arg2 ? arg2.toString() : '0'
|
if (arg1.includes('.')) {
|
t = arg1.split('.')[1].length
|
}
|
if (arg2.includes('.')) {
|
t = Math.max(arg2.split('.')[1].length, t)
|
}
|
const m = Math.pow(10, t)
|
return (multiply(arg1, m) + multiply(arg2, m)) / m
|
}
|
|
/**
|
* 两数相减 arg1 - arg2
|
* @param arg1
|
* @param arg2
|
* @returns {number}
|
*/
|
export function subtract(arg1, arg2) {
|
let t = 0
|
arg1 = arg1 ? arg1.toString() : '0'
|
arg2 = arg2 ? arg2.toString() : '0'
|
if (arg1.includes('.')) {
|
t = arg1.split('.')[1].length
|
}
|
if (arg2.includes('.')) {
|
t = Math.max(arg2.split('.')[1].length, t)
|
}
|
const m = Math.pow(10, t)
|
return Number(((multiply(arg1, m) - multiply(arg2, m)) / m).toFixed(t))
|
}
|
|
/**
|
* 两数相乘 arg1 * arg2
|
* @param arg1
|
* @param arg2
|
* @returns {number}
|
*/
|
export function multiply(arg1, arg2) {
|
let t = 0
|
arg1 = arg1 ? arg1.toString() : '0'
|
arg2 = arg2 ? arg2.toString() : '0'
|
if (arg1.includes('.')) {
|
t += arg1.split('.')[1].length
|
}
|
if (arg2.includes('.')) {
|
t += arg2.split('.')[1].length
|
}
|
const r1 = Number(arg1.replace('.', ''))
|
const r2 = Number(arg2.replace('.', ''))
|
return (r1 * r2) / Math.pow(10, t)
|
}
|
|
/**
|
* 两数相除 arg1 / arg2
|
* @param arg1
|
* @param arg2
|
* @returns {number}
|
*/
|
export function abs(arg1, arg2) {
|
let t = 0
|
arg1 = arg1 ? arg1.toString() : '0'
|
arg2 = arg2 ? arg2.toString() : '0'
|
if (arg2.includes('.')) {
|
t = arg2.split('.')[1].length
|
}
|
if (arg1.includes('.')) {
|
t -= arg1.split('.')[1].length
|
}
|
const r1 = Number(arg1.replace('.', ''))
|
const r2 = Number(arg2.replace('.', ''))
|
return multiply((r1 / r2), Math.pow(10, t))
|
}
|
|
/**
|
* array转Str
|
* @param array
|
* @returns {*}
|
*/
|
export function array2Str(array) {
|
if (array == null || array.length == 0) {
|
return null
|
}
|
return array.length == 0 ? null : JSON.stringify(array)
|
}
|
|
/**
|
* Str转Array
|
* @param array
|
* @returns {*}
|
*/
|
export function str2Array(str) {
|
if (!str) {
|
return []
|
}
|
if (typeof (str) == 'object') {
|
return str
|
}
|
return JSON.parse(str)
|
}
|
|
/*
|
* @Author : liu.q [916000612@qq.com]
|
* @Date : 2019-08-16 10:52
|
* @Description :uuid
|
*/
|
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)
|
})
|
}
|
|
/**
|
* @author Lx
|
* @description 详情显示附件展示
|
* @return 返回一个对象,用isShow判断附件是否为空; 用data循环附件数据
|
* */
|
export function showAppendix(appendix) {
|
const appendixArray = JSON.parse(appendix)
|
// 附件数据
|
const appendixData = []
|
// 判断附件是否为空,如果不为空组织数据
|
let isShow = false
|
if (appendix) {
|
isShow = true
|
appendixArray.forEach(item => {
|
appendixData.push({
|
path: globalConf.ftpUrl + item.path,
|
name: item.name
|
})
|
})
|
}
|
return {
|
isShow: isShow,
|
data: appendixData
|
}
|
}
|
|
export function showImage(appendix) {
|
const appendixArray = JSON.parse(appendix)
|
// 附件数据
|
const appendixData = []
|
// 判断附件是否为空,如果不为空组织数据
|
let isShow = false
|
if (appendix) {
|
isShow = true
|
appendixArray.forEach(item => {
|
appendixData.push({
|
path: item.path,
|
name: item.name
|
})
|
})
|
}
|
return {
|
isShow: isShow,
|
data: appendixData
|
}
|
}
|
|
export function uuid(len, radix) {
|
var chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz'.split('')
|
var uuid = []; var i
|
radix = radix || chars.length
|
|
if (len) {
|
// Compact form
|
for (i = 0; i < len; i++) uuid[i] = chars[0 | Math.random() * radix]
|
} else {
|
// rfc4122, version 4 form
|
var r
|
|
// rfc4122 requires these characters
|
uuid[8] = uuid[13] = uuid[18] = uuid[23] = '-'
|
uuid[14] = '4'
|
|
// Fill in random data. At i==19 set the high bits of clock sequence as
|
// per rfc4122, sec. 4.1.5
|
for (i = 0; i < 36; i++) {
|
if (!uuid[i]) {
|
r = 0 | Math.random() * 16
|
uuid[i] = chars[(i == 19) ? (r & 0x3) | 0x8 : r]
|
}
|
}
|
}
|
|
return uuid.join('')
|
}
|