import React from 'react'; import { Form, Input, Row, Col, Select, InputNumber, Tooltip, Checkbox } from 'antd'; import { QuestionCircleOutlined } from '@easyv/react-icons'; import { StateInfo, PoiPannelStateConfig, FileInfo, FileTypeEnum, ObjectPropsSyncChange, } from '@easytwin/core'; import { ColorInput, InputMessage, ProIuputNumber, CollapseBox, LockIcon } from '@/components'; import { FileCard } from '@/pages/FileManage/components'; import LIneValuesForm from './LIneValuesForm'; export interface PoiPannelFormProp { isGroup: boolean; dataSource: StateInfo['config']; onChange: (data: PoiPannelStateConfig) => void; } type FormValuesChangeType = Omit & { imgFileId: FileInfo; }; const PoiPannelForm: React.FC = function ({ isGroup, dataSource, onChange }) { const [form] = Form.useForm(); React.useEffect(() => { form.setFieldsValue(dataSource); }, [form, dataSource]); return (
{ const { imgFileId } = changedValue; const newData: PoiPannelStateConfig = { ...(dataSource as PoiPannelStateConfig), ...changedValue, imgFileId: (dataSource as PoiPannelStateConfig).imgFileId, }; if (imgFileId) { newData.imgFileId = imgFileId.id; newData.imgFileUrl = imgFileId.url; } onChange( ObjectPropsSyncChange(dataSource as PoiPannelStateConfig, newData, 'lockedSize', [ 'width', 'height', ]), ); }}> {isGroup && ( <> {/* 背景图 */} {/* 尺寸 */} {/* 内间距 */} } titleClassName="!bg-bgColorTransparent !px-0 !mb-1"> {/* 标签样式 */} {/* 值样式 */} )} {/* 内容行 */} {/* 顶层渲染 */}
); }; export default PoiPannelForm;