import React, { useEffect } from 'react'; import { ModalForm, ProForm, ProFormDigit, ProFormRadio, ProFormSelect, ProFormText, ProDescriptions, } from '@ant-design/pro-components'; import { Form } from 'antd'; import { DictValueEnumObj } from '@/components/DictTag'; import { FormattedMessage } from '@@/exports'; import { getCmsIndustryTree } from '@/services/classify/industry'; import { values } from 'lodash'; interface IndustryDetail extends API.ClassifyIndustry.IndustryRow { parentName: string; } export type ListFormProps = { onCancel: (flag?: boolean, formVars?: unknown) => void; onSubmit: (values: API.ClassifyIndustry.IndustryRow) => Promise; open: boolean; values?: Partial; // industryStatusEnum: DictOptionType[]; industryStatusEnum: DictValueEnumObj; mode?: 'view' | 'edit' | 'create'; }; const listEdit: React.FC = (props) => { const [form] = Form.useForm(); const { industryStatusEnum, mode = props.values ? 'edit' : 'create',values } = props; useEffect(() => { form.resetFields(); if (values) { form.setFieldsValue(values); } }, [form,values?.industryId]); const getSafeDetailData = ( data?: Partial ): IndustryDetail => { return{ industryId: data?.industryId ?? 0, industryName: data?.industryName ?? '', orderNum: data?.orderNum ?? 0, parentId: data?.parentId ?? 0, parentName: (data as any)?.parentName ?? '无', // 或通过 parentId 映射 status: data?.status ?? '0',} }; const handleCancel = () => { props.onCancel(); form.resetFields(); }; const handleFinish = async (values: Record) => { props.onSubmit(values as API.ClassifyIndustry.IndustryRow); }; // check if (mode === 'view') { return ( handleCancel(), footer: null, }} submitter={false} > column={1} dataSource={getSafeDetailData(values)} loading={!values} > ); } return ( handleCancel(), }} submitTimeout={2000} onFinish={handleFinish} // readonly > ); }; export default listEdit;