FinancialMergeDrawer.tsx 4.04 KB
import { RESPONSE_CODE } from '@/constants/enum';
import { enumToSelect } from '@/utils';
import {
  DrawerForm,
  ProFormDatePicker,
  ProFormDigit,
  ProFormSelect,
  ProFormText,
  ProFormTextArea,
} from '@ant-design/pro-components';
import { Form, message } from 'antd';
import { PAYEE_OPTIONS } from '../constant';

export default ({ dataList, setVisible, onClose }) => {
  // let subOrderIds = 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) => {
        console.log(values);
        let res;
        let body = values;
        body.subIds = subIds;
        body.mainOrderId = mainOrder.id;
        body.mainorderOrSubOrderInvoicing = isMainOrder;
        if (isEdit) {
          res = await postServiceOrderEditOrder({ data: body });
        } else {
          res = await postServiceOrderInvoicing({ data: body });
        }
        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="收款时间"
      />
      <ProFormText
        width="lg"
        key="invoiceNumber"
        name="invoiceNumber"
        label="发票号码"
        rules={[{ required: true, message: '发票号码必填' }]}
      />
      <ProFormSelect
        key="payee"
        placeholder="选择收款单位"
        name="payee"
        width="lg"
        label="收款单位"
        options={enumToSelect(PAYEE_OPTIONS)}
        rules={[{ required: true, message: '收款单位必填' }]}
      />

      <ProFormDigit
        key="money"
        name="money"
        width="lg"
        label="金额"
        rules={[{ required: true, message: '金额必填' }]}
      />
      <ProFormSelect
        placeholder="是否完全开票"
        name="afterInvoicingStatus"
        width="lg"
        label="是否完全开票"
        options={[
          { label: '完全开票', value: 'COMPLETE_INVOICING' },
          { label: '部分开票', value: 'PARTIAL_INVOICING' },
        ]}
        initialValue={'COMPLETE_INVOICING'}
      />
      <ProFormTextArea width="lg" name="invoicingNotes" label="备注" />
    </DrawerForm>
  );
};