FinancialMergeDrawer.tsx 3.21 KB
// import { PlusOutlined } from '@ant-design/icons';
import { RESPONSE_CODE } from '@/constants/enum';
import { postServiceOrderMergeInvoicing } from '@/services';
import {
  DrawerForm,
  ProFormDatePicker,
  ProFormSelect,
  ProFormText,
  ProFormTextArea,
} from '@ant-design/pro-components';
import { Form, message } from 'antd';

export default ({ dataList, setVisible, onClose }) => {
  let mainOrderIds = dataList?.map((item) => {
    return item.id;
  });
  let firstMainOrder = dataList[0];
  let bank = firstMainOrder?.bank;
  let bankAccountNumber = firstMainOrder?.bankAccountNumber;
  let invoiceIdentificationNumber = firstMainOrder?.invoiceIdentificationNumber;

  const [form] = Form.useForm<{
    invoicingTime: string;
    financialReceiptIssuanceTime: string;
    invoicingNotes: string;
    afterInvoicingStatus: string;
    collectMoneyTime: string;
  }>();
  return (
    <DrawerForm
      open
      title="合并开票"
      resize={{
        onResize() {
          console.log('resize!');
        },
        maxWidth: window.innerWidth * 0.8,
        minWidth: 400,
      }}
      form={form}
      autoFocusFirstInput
      drawerProps={{
        destroyOnClose: true,
      }}
      submitTimeout={2000}
      onFinish={async (values) => {
        let res = await postServiceOrderMergeInvoicing({
          data: {
            ...values,
            mainOrderIds: mainOrderIds,
          },
        });

        if (res.result === RESPONSE_CODE.SUCCESS) {
          message.success(res.message);
          onClose();
        }
      }}
      onOpenChange={(val) => {
        return !val && setVisible();
      }}
    >
      <ProFormText
        width="lg"
        name="invoiceIdentificationNumber"
        label="开票信息"
        placeholder="请输入开票信息"
        initialValue={invoiceIdentificationNumber}
        disabled
      />
      <ProFormText
        width="lg"
        name="bank"
        label="开户银行"
        placeholder="请输入开户银行"
        initialValue={bank}
        disabled
      />
      <ProFormText
        width="lg"
        name="bankAccountNumber"
        label="开户银行账号"
        placeholder="请输入开户银行账号"
        initialValue={bankAccountNumber}
        disabled
      />

      <ProFormDatePicker
        key="invoicingTime"
        width="lg"
        name="invoicingTime"
        label="开票时间"
        rules={[{ required: true, message: '这是必填项' }]}
      />
      <ProFormDatePicker
        key="financialReceiptIssuanceTime"
        width="lg"
        name="financialReceiptIssuanceTime"
        label="开收据时间"
      />
      <ProFormDatePicker
        key="collectMoneyTime"
        width="lg"
        name="collectMoneyTime"
        label="收款时间"
      />

      <ProFormSelect
        placeholder="是否完全开票"
        name="afterInvoicingStatus"
        width="lg"
        label="是否完全开票"
        options={[
          { label: '完全开票', value: 'COMPLETE_INVOICING' },
          { label: '部分开票', value: 'PARTIAL_INVOICING' },
        ]}
        initialValue={'COMPLETE_INVOICING'}
        disabled
      />
      <ProFormTextArea width="lg" name="invoicingNotes" label="备注" />
    </DrawerForm>
  );
};