ApplyForInvoicingModal.tsx 1.94 KB
import { RESPONSE_CODE } from '@/constants/enum';
import { postServiceOrderApplyInvoicing } from '@/services';
import {
  ModalForm,
  ProFormTextArea,
  ProFormUploadDragger,
} from '@ant-design/pro-components';
import { Form, message } from 'antd';
export default ({ setCheckVisible, subOrders, onClose }) => {
  const [form] = Form.useForm<{
    applyInvoicingNotes: string;
    filePaths: any;
    subIds: any[];
  }>();
  let subOrderIds = subOrders?.map((subOrder) => subOrder.id);

  return (
    <ModalForm<{
      applyInvoicingNotes: string;
      filePaths: any;
      subIds: any[];
    }>
      width={500}
      open
      title="申请开票"
      form={form}
      autoFocusFirstInput
      modalProps={{
        okText: '确认',
        cancelText: '取消',
        destroyOnClose: true,
        onCancel: () => {
          setCheckVisible(false);
        },
      }}
      submitter={{
        render: (props, defaultDoms) => {
          return defaultDoms;
        },
      }}
      submitTimeout={2000}
      onFinish={async (values) => {
        values.subIds = subOrderIds;
        //附件处理
        values.filePaths = values.filePaths?.map((item) => {
          return { url: item.response.data[0] };
        });

        const res = await postServiceOrderApplyInvoicing({ data: values });
        if ((res.result = RESPONSE_CODE.SUCCESS)) {
          message.success(res.message);
          onClose();
        }
      }}
      onOpenChange={setCheckVisible}
    >
      <div>如果需要合并订单,请将需要合并的订单id写在备注中。</div>
      <ProFormTextArea
        width="lg"
        name="applyInvoicingNotes"
        placeholder="请输入备注"
      />
      <ProFormUploadDragger
        key="2"
        label="附件"
        name="filePaths"
        action="/api/service/order/fileProcess"
        fieldProps={{
          headers: { Authorization: localStorage.getItem('token') },
        }}
      />
    </ModalForm>
  );
};