import React, { useContext } from 'react'; import ArabicChinese from '@pansy/arabic-chinese-converter'; import { Typography, Form, Input, Radio, Checkbox } from 'antd'; import { FormItemProps } from 'antd/es/form/FormItem'; import { RadioChangeEvent } from 'antd/es/radio/interface'; import { TextLink } from '@sensoro/sensoro-design'; import Options from './options'; import { formilyConfig } from './constant'; import { FormilyContext, FieldData } from './context'; import styles from './index.less'; export interface FormilyItemProps { field: FieldData; nameFormItem?: FormItemProps; optionsFormItem?: FormItemProps; } const { Group } = Radio; const { Title } = Typography; const arabicChinese = new ArabicChinese(); const formLayout = { labelCol: { span: 2 }, wrapperCol: { span: 20 } }; const FormilyItem: React.FC = ({ field, nameFormItem = {}, optionsFormItem = {} }) => { const { formilyTypeSource, setFormilyTypeSource, formilyTypes, remove } = useContext( FormilyContext ); const options = formilyTypes.map((item) => { return { label: formilyConfig[item], value: item }; }); const handleTypeChange = (value: string, key: number) => { setFormilyTypeSource({ ...formilyTypeSource, [key]: value }); }; return (
字段{arabicChinese.encode(field.name + 1)}
{ remove?.(field.name); }} > 删除字段
{ handleTypeChange(e.target.value, field.key); }} /> {['selects', 'multiSelects'].includes(formilyTypeSource[field.key]) && ( )}
); }; export default FormilyItem;