import React, { memo, useCallback } from 'react'; import { Button } from 'zarm'; import BaseForm from './BaseForm'; import styles from './index.less'; import { IFormConfig } from './schema'; import logo from 'editorAssets/03-表单.png'; const FormComponent = (props: IFormConfig & { isTpl: boolean }) => { const { title, bgColor, fontSize, titColor, btnColor, titWeight, btnTextColor, api, formControls, } = props; const formData: Record = {}; const handleChange = useCallback( (item, v) => { formData[item.label] = v; }, [formData], ); const handleSubmit = () => { // console.log(formData, '####') if (api) { fetch(api, { body: JSON.stringify(formData), cache: 'no-cache', headers: { 'content-type': 'application/json', }, method: 'POST', mode: 'cors', }); } }; const isEditorPage = window.location.pathname.indexOf('editor') > -1; return ( <> {props.isTpl && (
)} {!props.isTpl && (
{/* {title && (
{title}
)} */}
{formControls.map(item => { const FormItem = BaseForm[item.type]; return ( item?.disabled ? <> : handleChange(item, v)} {...item} key={item.id} /> ); })}
{/*
{formControls.map(item => { return
})}
*/}
)} ); }; export default memo(FormComponent);