mobile-more
Version:
基于 antd-mobile v5 扩展移动端 UI 组件
48 lines • 1.56 kB
JavaScript
import _objectSpread from "@babel/runtime/helpers/esm/objectSpread2";
import { isArray, isUndefined } from 'ut2';
function transformKeys(data) {
var keys = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
var _label$value$disabled = _objectSpread({
label: 'label',
value: 'value',
disabled: 'disabled',
description: 'description',
readOnly: 'readOnly',
children: 'children'
}, keys),
labelKey = _label$value$disabled.label,
valueKey = _label$value$disabled.value,
disabledKey = _label$value$disabled.disabled,
descriptionKey = _label$value$disabled.description,
readOnlyKey = _label$value$disabled.readOnly,
childrenKey = _label$value$disabled.children;
function recursion(list) {
return list.map(function (item) {
if (typeof item === 'string') {
return {
label: item,
value: item
};
}
var newItem = {
label: item[labelKey],
value: item[valueKey]
};
if (!isUndefined(item[disabledKey])) {
newItem.disabled = item[disabledKey];
}
if (!isUndefined(item[descriptionKey])) {
newItem.description = item[descriptionKey];
}
if (!isUndefined(item[readOnlyKey])) {
newItem.readOnly = item[readOnlyKey];
}
if (isArray(item[childrenKey]) && item[childrenKey].length > 0) {
newItem.children = recursion(item[childrenKey]);
}
return newItem;
});
}
return recursion(data);
}
export default transformKeys;