ManualInvoicingModal.tsx 2.75 KB
import { RESPONSE_CODE } from '@/constants/enum';
import UploadC from '@/pages/Invoice/InvoiceRecord/components/UploadSingleImg';
import {
  postOrderErpOrderStagesUpload,
  postServiceInvoiceDealInvoicingResult,
} from '@/services';
import {
  ModalForm,
  ProFormDatePicker,
  ProFormText,
} from '@ant-design/pro-components';
import { Col, Form, Row, message } from 'antd';
import { RcFile } from 'antd/es/upload';
import { useEffect } from 'react';

export default ({ record }) => {
  useEffect(() => {
    console.log('invoicing');
  }, []);
  const [form] = Form.useForm();
  return (
    <ModalForm
      title="手动开票"
      trigger={<a type="primary">手动开票</a>}
      width={600}
      layout={'horizontal'}
      form={form}
      autoFocusFirstInput
      modalProps={{
        destroyOnClose: true,
        onCancel: () => console.log('run'),
      }}
      submitTimeout={2000}
      onFinish={async (values) => {
        const res = await postServiceInvoiceDealInvoicingResult({
          data: {
            ...values,
            isSuccess: true,
            invoiceRecordId: record.id,
            manual: true,
          },
        });
        if (res.result === RESPONSE_CODE.SUCCESS) {
          message.success('开票成功');
          return true;
        } else {
          message.error('开票失败');
        }
      }}
    >
      <ProFormText
        rules={[{ required: true, message: '此项为必填项' }]}
        width={'md'}
        name="invoiceNumber"
        label="发票号码"
      />
      <ProFormDatePicker
        rules={[{ required: true, message: '此项为必填项' }]}
        fieldProps={{
          format: 'YYYY-MM-DD',
        }}
        name="invoicingDate"
        label="开票日期"
      />
      <ProFormText
        rules={[{ required: true, message: '发票必须上传' }]}
        hidden
        name="url"
        label="發票地址"
      />
      <Row>
        <Col span={4}>上传发票</Col>
        <Col span={20}>
          <UploadC
            onFilesChange={async (newFileList) => {
              if (newFileList.length > 0) {
                const formData = new FormData();
                formData.append('file', newFileList[0].originFileObj as RcFile);
                const res = await postOrderErpOrderStagesUpload({
                  data: formData,
                  headers: {
                    'Content-Type':
                      'multipart/form-data; boundary=----WebKitFormBoundarynl6gT1BKdPWIejNq',
                  },
                });
                const url = res.data;
                form.setFieldValue('url', url);
              } else {
                form.setFieldValue('url', null);
              }
            }}
          ></UploadC>
        </Col>
      </Row>
    </ModalForm>
  );
};