ERPTurbo_Admin/shared/components/src/FormItem/ProFormUploadMaterial/index.tsx
2025-11-03 10:21:56 +08:00

55 lines
1.4 KiB
TypeScript

import {
ActionType,
ProFormDependency,
ProFormField,
ProFormItemProps,
ProTableProps,
} from '@ant-design/pro-components';
import { UploadMaterial } from '@chageable/components';
import React, { MutableRefObject } from 'react';
interface ProFormUploadMaterialProps extends ProFormItemProps {
fieldProps: {
maxCount: number;
onChange?: (fileList: any[]) => void;
fileList?: any[];
request: ProTableProps<any, any>['request'];
toolBarRender?: ProTableProps<any, any>['toolBarRender'];
actionRef?: MutableRefObject<ActionType | undefined>;
};
}
const ProFormUploadMaterial: React.FC<ProFormUploadMaterialProps> = ({
fieldProps,
...rest
}) => {
return (
<ProFormDependency name={[rest.name]}>
{(data, form) => (
<ProFormField {...rest}>
<UploadMaterial
onChange={(fileList) => {
form.setFieldValue(
rest.name,
fileList?.map((file: any) => file.url),
);
}}
fileList={data[rest.name]?.map((url: string, index: number) => {
return {
uid: index.toString(),
name: url,
// @ts-ignore
status: 'success',
thumbUrl: url,
url: url,
};
})}
{...fieldProps}
/>
</ProFormField>
)}
</ProFormDependency>
);
};
export default ProFormUploadMaterial;