import React, { ReactText } from 'react'; import { Button } from 'antd'; import { baseFormDateTpl, baseFormMyRadioTpl, baseFormMyCheckboxTpl, baseFormMySelectTpl, baseFormNumberTpl, baseFormTextAreaTpl, baseFormTextTpl, baseFormTextTipTpl, baseFormUnionType, } from 'editorComponents/PanelComponents/FormEditor/types'; // 维护表单控件, 提高form渲染性能 type TBaseForm = { [key in baseFormUnionType]: any; }; const BaseForm: TBaseForm = { Text: (props: baseFormTextTpl & { onChange: (v: string | undefined) => void }) => { const { label, onChange } = props; return ( ); }, Textarea: (props: baseFormTextAreaTpl & { onChange: (v: string | undefined) => void }) => { const { label, onChange } = props; return ( ); }, Number: (props: baseFormNumberTpl & { onChange: (v: string | undefined | number) => void }) => { const { label, onChange } = props; return ( ); }, MyRadio: (props: baseFormMyRadioTpl & { onChange: (v: string | undefined | number) => void }) => { const { label, onChange } = props; return ( ); }, MyCheckbox: ( props: baseFormMyCheckboxTpl & { onChange: (v: Array | undefined) => void }, ) => { const { label, onChange } = props; return (
); }, Date: (props: baseFormDateTpl & { onChange: (v: Date) => void }) => { const { label, onChange } = props; return ( ); }, MySelect: ( props: baseFormMySelectTpl & { onChange: ((v: Record) => void) | undefined }, ) => { const { label, onChange } = props; return ( ); }, MyTextTip: (props: baseFormTextTipTpl) => { const { label } = props; return ( ); }, }; export default BaseForm;