/* eslint-disable react/jsx-no-comment-textnodes */ import * as React from 'react'; import { FastForm, FastRow, FastCol } from "components/ui"; import FormItem from "components/business/Form/FormItem"; import Input from "components/business/Form/FormItem/Input"; import Select from "components/business/Form/FormItem/Select"; import Radio from "components/business/Form/FormItem/Radio"; import Switch from "components/business/Form/FormItem/Switch"; import Checkbox from "components/business/Form/FormItem/Checkbox"; import DatePicker from "components/business/Form/FormItem/DatePicker"; import TreeSelect from "components/business/Form/FormItem/TreeSelect"; import Tags from "components/business/Form/FormItem/Tags"; import AutoComplete from "components/business/Form/FormItem/AutoComplete"; import UploadImg from "components/business/Form/FormItem/UploadImg"; import UploadFile from "components/business/Form/FormItem/UploadFile"; import Cascader from "components/business/Form/FormItem/Cascader"; import DateRangePicker from "components/business/Form/FormItem/DateRangePicker"; import { findLabel } from "utils/tool"; import useForm from "./useForm"; import { FormTypes } from "./types"; const COMP_MAP = { span: AutoComplete, suggest: AutoComplete, input: Input, multinput: Input, inputnumber: Input, select: Select, multselect: Select, tags: Tags, radio: Radio, switch: Switch, checkbox: Checkbox, datepicker: DatePicker, treeselect: TreeSelect, multtreeselect: TreeSelect, uploadimage: UploadImg, uploadfile: UploadFile, multuploadimage: UploadImg, cascader: Cascader, multcascader: Cascader, daterangepicker: DateRangePicker, }; const INITIAL_ITEM_CONFIG = { labelLayout: 8, contentLayout: 16, }; function Form(props: FormTypes.FormProps) { const { formInstance, initialValues, formList, actionList, values, dict, setValues, createActionBtns, } = useForm(props); const createSonField = () => { const result = []; for (let i = 0; i < formList.length; i += 1) { const item = { ...INITIAL_ITEM_CONFIG, ...formList[i], }; const COMP = COMP_MAP[item.type]; if (item.type === "separate") { result.push(