@uiw-admin/components
Version:
74 lines (73 loc) • 2.33 kB
JavaScript
import _objectWithoutPropertiesLoose from "@babel/runtime/helpers/objectWithoutPropertiesLoose";
import _extends from "@babel/runtime/helpers/extends";
var _excluded = ["hide", "widgetProps", "key", "widget", "label", "initialValue", "required"];
import { Input, InputNumber, Switch, Textarea, DateInput, TimePicker, MonthPicker, SearchSelect, Rate } from 'uiw';
import Radio from '../../ProTable/widgets/Radio';
import Select from '../../ProTable/widgets/Select';
import CheckBox from './CheckBox';
import SelectMultiple from './SelectMultiple';
import Upload from './Upload';
import SearchTree from './SearchTree';
import { isRequired } from '../utils';
/**
*
* @param readOnly 是否是只读模式 boolean
* @param formDatas 表单项 FormItemsProps[]
* @returns fields Record<string, FormFieldsProps<{}>>
*/
import { jsx as _jsx } from "react/jsx-runtime";
export function getFormFields(readOnly, formDatas, customWidgetsList) {
if (formDatas === void 0) {
formDatas = [];
}
if (customWidgetsList === void 0) {
customWidgetsList = {};
}
var widgetsList = _extends({
input: Input,
inputNumber: InputNumber,
radio: Radio,
checkbox: CheckBox,
switch: Switch,
select: Select,
searchSelect: SearchSelect,
selectMultiple: SelectMultiple,
textarea: Textarea,
dateInput: DateInput,
timePicker: TimePicker,
monthPicker: MonthPicker,
upload: Upload,
rate: Rate,
searchTree: SearchTree
}, customWidgetsList);
var fields = {};
formDatas.forEach(col => {
if (!readOnly) delete col.readSpan;
if (col) {
var {
hide = false,
widgetProps,
key,
widget,
label,
initialValue
} = col,
otherProps = _objectWithoutPropertiesLoose(col, _excluded);
if (!hide) {
var name = key;
var Widget = widgetsList[widget];
var is = isRequired((otherProps == null ? void 0 : otherProps.rules) || []);
fields[name] = _extends({
label: is ? /*#__PURE__*/_jsx("span", {
className: "w-proform-label",
children: label
}) : label,
children: /*#__PURE__*/_jsx(Widget, _extends({}, widgetProps))
}, otherProps, {
initialValue
});
}
}
});
return fields;
}