@mosowe2/element-pro
Version:
element高级组件,封装element的常用组件
47 lines (46 loc) • 1.76 kB
JavaScript
// 有的prop传递的类型是字符串'a.b'模式,或者带有enum枚举的,需要转换一下返回值
export const backKeysData = (item, obj) => {
let result = ''
if (item?.enum && Object.keys(item?.enum).includes(obj[item.prop])) {
if (IsArray(item?.enum)) {
item?.enum.forEach(element => {
if (element.value === eval(`${obj}.${item.prop}`)) {
result = element.label
}
});
} else {
result = eval(`item.enum[obj.${item.prop}]`)
}
} else {
result = eval(`obj.${item.prop}`)
}
return result
}
export const IsObject = (val) => {
return Object.prototype.toString.call(val) === '[object Object]';
};
export const IsArray = (val) => {
return Object.prototype.toString.call(val) === '[object Array]';
};
export const IsBoolean = (val) => {
return Object.prototype.toString.call(val) === '[object Boolean]';
};
/**
* 删除对象中的空(null,undefined,'','all')属性,及空数组,及数组只有一项且此项为null或‘all’的情况
* @param obj
* @returns
*/
export const DeleteEmptyObj = (obj) => {
const result = {};
if (obj === null || obj === undefined || obj === '') return result;
for (const key in obj) {
if (IsObject(obj[key])) {
result[key] = DeleteEmptyObj(obj[key]);
} else if (IsArray(obj[key])) {
obj[key].length === 0 || (obj[key].length === 1 && [null, 'all'].includes(obj[key][0])) ? '' : result[key] = obj[key];
} else if (obj[key] !== null && obj[key] !== undefined && obj[key] !== '') {
result[key] = obj[key];
}
}
return result;
}