UNPKG

@uiw-admin/components

Version:
74 lines (73 loc) 2.33 kB
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; }