import React, { useEffect, useState } from 'react'; import { Button, Form, Input, Modal, Select } from 'antd'; import { SENSITIVE_LEVEL_OPTIONS } from '../constant'; import { formLayout } from '@/components/FormHelper/utils'; import SqlEditor from '@/components/SqlEditor'; import InfoTagList from './InfoTagList'; import { ISemantic } from '../data'; import { createDimension, updateDimension } from '../service'; // import DimensionValueSettingModal from './DimensionValueSettingModal'; import { message } from 'antd'; export type CreateFormProps = { domainId: number; dimensionItem?: ISemantic.IDimensionItem; onCancel: () => void; bindModalVisible: boolean; dataSourceList: any[]; onSubmit: (values?: any) => void; }; const FormItem = Form.Item; const { Option } = Select; const { TextArea } = Input; const DimensionInfoModal: React.FC = ({ domainId, onCancel, bindModalVisible, dimensionItem, dataSourceList, onSubmit: handleUpdate, }) => { const isEdit = !!dimensionItem?.id; const [dimensionValueSettingList, setDimensionValueSettingList] = useState< ISemantic.IDimensionValueSettingItem[] >([]); const [form] = Form.useForm(); const { setFieldsValue, resetFields } = form; // const [dimensionValueSettingModalVisible, setDimensionValueSettingModalVisible] = // useState(false); const handleSubmit = async ( isSilenceSubmit = false, dimValueMaps?: ISemantic.IDimensionValueSettingItem[], ) => { const fieldsValue = await form.validateFields(); await saveDimension( { ...fieldsValue, dimValueMaps: dimValueMaps || dimensionValueSettingList, }, isSilenceSubmit, ); }; const saveDimension = async (fieldsValue: any, isSilenceSubmit = false) => { const queryParams = { domainId, type: 'categorical', ...fieldsValue, }; let saveDimensionQuery = createDimension; if (queryParams.id) { saveDimensionQuery = updateDimension; } const { code, msg } = await saveDimensionQuery(queryParams); if (code === 200) { if (!isSilenceSubmit) { message.success('编辑维度成功'); handleUpdate(fieldsValue); } return; } message.error(msg); }; const setFormVal = () => { setFieldsValue(dimensionItem); }; useEffect(() => { if (dimensionItem) { setFormVal(); if (Array.isArray(dimensionItem.dimValueMaps)) { setDimensionValueSettingList(dimensionItem.dimValueMaps); } else { setDimensionValueSettingList([]); } } else { resetFields(); } if (!isEdit && Array.isArray(dataSourceList) && dataSourceList[0]?.id) { setFieldsValue({ datasourceId: dataSourceList[0].id }); } }, [dimensionItem, dataSourceList]); const renderFooter = () => { return ( <> ); }; const renderContent = () => { return ( <>