loners-form
Version:
为工作而生,基于 antd 而生的可配置化表单
33 lines (27 loc) • 2.08 kB
JavaScript
import "antd/es/form/style";
import _Form from "antd/es/form";
import "antd/es/radio/style";
import _Radio from "antd/es/radio";
var _excluded = ["type", "fieldProps"];
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
import React from 'react';
import RangePickerGo from '../RangePickerGo';
import InputGo from '../InputGo';
import TextareaGo from '../TextareaGo';
import InputNumberGo from '../InputNumberGo';
import InputLoadingGo from '../InputLoadingGo';
import SelectGo from '../SelectGo';
import SwitchGo from '../SwitchGo';
var FORM_ITEM_MAP = new Map([['InputText', InputGo], ['Textarea', TextareaGo], ['InputNumber', InputNumberGo], ['InputLoading', InputLoadingGo], ['SimpleSelect', SelectGo], ['Switch', SwitchGo], ['RadioGroup', _Radio.Group], ['RangePicker', RangePickerGo]]);
function FormItem(_ref) {
var type = _ref.type,
fieldProps = _ref.fieldProps,
rawProps = _objectWithoutProperties(_ref, _excluded);
if (!type) return /*#__PURE__*/React.createElement(React.Fragment, null);
var formItemMap = FORM_ITEM_MAP;
var Component = formItemMap.get(type);
if (!Component) return /*#__PURE__*/React.createElement(React.Fragment, null);
return /*#__PURE__*/React.createElement(_Form.Item, rawProps, /*#__PURE__*/React.createElement(Component, fieldProps));
}
export default FormItem;