base-ui
Version:
A component library for Better Vue developmemt
61 lines (49 loc) • 1.64 kB
JavaScript
/**
* 解析层级对象
* @param value {*} {innerObj: {a: 'xxx', b: 'yyy'}} {{a: 'xxx', b: 'yyy'}}
* @param field innerObj.a a
*/
export const getValue = (value = {}, field = '') => {
if (typeof value !== 'object') {
return value;
}
const fields = field.split('.');
return fields.reduce((preVal, currVal) => {
if (!preVal) return null;
return preVal[currVal];
}, value);
};
export const genMapFromObjectArray = (arr, keyProperty, valueProperty) => {
const map = {};
if (arr && arr.length > 0) {
arr.forEach((item) => {
map[getValue(item, keyProperty)] = getValue(item, valueProperty);
});
}
return map;
};
export const genYqgListFromObjectArray = (arr, keyProperty, valueProperty) => arr.map(item => ({
key: item[keyProperty],
value: item[valueProperty]
}));
export const genYqgListFromMap = vo => Object.keys(vo).map(key => ({key, value: vo[key]}));
export const evalProp = (value, values) => {
if (typeof value === 'function') {
return value(values);
}
return value;
};
export const getSlotInstance = (child) => {
let instance;
if (child.componentInstance) {
instance = child.componentInstance;
}
return instance;
};
export const isEmptyElement = ele => !(ele.tag || (ele.text && ele.text.trim() !== ''));
export const filterEmpty = (children = []) => children.filter(ele => !isEmptyElement(ele));
export const checkNotNull = (data) => {
if (data === null || typeof data === 'undefined') return false;
if (!data.toString()) return false;
return true;
};