import { Input, Cell, DateSelect, Radio, Select } from 'zarm'; import styles from './baseForm.less'; import React from 'react'; import { baseFormDateTpl, baseFormMyRadioTpl, baseFormMySelectTpl, baseFormNumberTpl, baseFormTextAreaTpl, baseFormTextTpl, baseFormUnionType, } from '@/components/PanelComponents/FormEditor/types'; // 维护表单控件, 提高form渲染性能 type TBaseForm = { [key in baseFormUnionType]: any; }; const BaseForm: TBaseForm = { Text: (props: baseFormTextTpl & { onChange: (v: string | undefined) => void }) => { const { label, placeholder, onChange } = props; return ( ); }, Textarea: (props: baseFormTextAreaTpl & { onChange: (v: string | undefined) => void }) => { const { label, placeholder, onChange } = props; return ( ); }, Number: (props: baseFormNumberTpl & { onChange: (v: string | undefined | number) => void }) => { const { label, placeholder, onChange } = props; return ( ); }, MyRadio: (props: baseFormMyRadioTpl & { onChange: (v: string | undefined | number) => void }) => { const { label, options, onChange } = props; return (
{label}
{options.map((item, i) => { return ( {item.label} ); })}
); }, Date: (props: baseFormDateTpl & { onChange: (v: Date) => void }) => { const { label, placeholder, onChange } = props; return ( ); }, MySelect: ( props: baseFormMySelectTpl & { onChange: ((v: Record) => void) | undefined }, ) => { const { label, options, onChange } = props; return (