uploadModel.tsx 1.81 KB
import { postOrderErpOrderStagesImport } from '@/services/request';
import { VerticalAlignBottomOutlined } from '@ant-design/icons';
import { ModalForm } from '@ant-design/pro-components';
import { Button, Form, message } from 'antd';
import { RcFile } from 'antd/es/upload';
import { useState } from 'react';
import App from './uploadApp';

// const waitTime = (time: number = 100) => {
//   return new Promise((resolve) => {
//     setTimeout(() => {
//       resolve(true);
//     }, time);
//   });
// };

export default ({ toReload }) => {
  const [form] = Form.useForm<{ name: string; company: string }>();
  const [uploadFile, setUploadFile] = useState({});
  // function setUploadFileWay(value) {
  //   setUploadFile(value)
  // }
  return (
    <ModalForm<{
      name: string;
      company: string;
    }>
      title="导入数据表单"
      trigger={
        <Button
          type="primary"
          onClick={() => {
            setUploadFile({});
          }}
        >
          <VerticalAlignBottomOutlined />
          导入
        </Button>
      }
      form={form}
      autoFocusFirstInput
      modalProps={{
        destroyOnClose: true,
      }}
      submitTimeout={2000}
      onFinish={async () => {
        if (!(uploadFile instanceof File)) {
          return false;
        }
        const formData = new FormData();
        formData.append('file', uploadFile as RcFile);
        const res = await postOrderErpOrderStagesImport({
          data: formData,
          headers: {
            'Content-Type':
              'multipart/form-data; boundary=----WebKitFormBoundarynl6gT1BKdPWIejNq',
          },
        });
        if (res) {
          message.success('提交成功');
          toReload();
          return true;
        }
      }}
    >
      <App uploadFile={setUploadFile}></App>
    </ModalForm>
  );
};