qt-public-ui
Version:
新设计规范下业务组件库
103 lines • 2.97 kB
JavaScript
import _extends from "@babel/runtime/helpers/esm/extends";
/* eslint-disable no-param-reassign */
import { Form } from 'antd';
var isField = function isField(obj) {
if (!(obj instanceof Object)) return false;
return Object.keys(obj).length === 1 && 'name' in obj || 'value' in obj;
};
var smooth = function smooth(target, source, defaultValue) {
var _target = [].concat(target);
if (target.length > source.length) {
return _target.slice(0, source.length);
} else if (target.length === source.length) {
return _target;
} else {
var diff = source.length - target.length;
var diffEle = new Array(diff).fill(defaultValue);
_target.push.apply(_target, diffEle);
return _target;
}
};
export var mapPropsToFields = function mapPropsToFields(value) {
return value.reduce(function (flds, val, index) {
var keys = Object.keys(val);
keys.forEach(function (key) {
var _key = index + "." + key;
var _field = isField(val[key]) ? val[key] : {
value: val[key]
};
flds[_key] = Form.createFormField(_field);
});
return flds;
}, {});
};
export var toValue = function toValue(field) {
if (field === void 0) {
field = {};
}
return Object.keys(field).reduce(function (result, key) {
var prop = field[key];
if (isField(prop)) {
result[key] = field[key].value;
} else {
result[key] = prop;
}
return result;
}, {});
};
export var fields2Array = function fields2Array(fields) {
var allKeys = Object.keys(fields).sort(function (a, b) {
return Number(a) - Number(b);
});
var value = [];
allKeys.forEach(function (k) {
var field = fields[k];
var keys = Object.keys(field);
var _field = {};
keys.forEach(function (key) {
delete field[key].name;
_field[key] = field[key];
});
value.push(_field);
});
return value;
};
export var formatFields = function formatFields(fields) {
return fields.map(function (field) {
var keys = Object.keys(field);
var _field = {};
keys.forEach(function (key) {
_field[key] = isField(field[key]) ? field[key].value : field[key];
});
return _field;
});
};
export var mergeValue = function mergeValue(fields, value, initialRow) {
if (initialRow === void 0) {
initialRow = {};
}
if (!fields) return [];
var _fields = smooth(fields, value, initialRow);
return _fields.map(function (field, index) {
var keys = Object.keys(field);
var _field = {};
if (keys.length > 0) {
keys.forEach(function (key) {
if (isField(field[key])) {
_field[key] = _extends({}, field[key], {
value: value[index][key]
});
} else {
_field[key] = value[index][key];
}
});
} else {
_field = value[index];
}
return _field;
});
};
export var values2array = function values2array(values) {
values.length = Object.keys(values).length;
return Array.from(values);
};