UNPKG

@mosowe2/element-pro

Version:

element高级组件,封装element的常用组件

47 lines (46 loc) 1.76 kB
// 有的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; }