ReissueModal_old.tsx 3.22 KB
import { RESPONSE_CODE } from '@/constants/enum';
import {
  postServiceInvoiceFindInvoiceOld,
  postServiceInvoiceReissueOld,
  postServiceOrderFindServiceOrder,
} from '@/services';
import {
  ModalForm,
  ProFormSelect,
  ProFormText,
  ProFormTextArea,
} from '@ant-design/pro-components';
import { Form } from 'antd';
import { useEffect, useState } from 'react';

export default ({ setVisible, mainOrder, onClose }) => {
  const [invoiceSelectList, setInvoiceSelectList] = useState([]);
  const [mainOrders, setMainOrders] = useState('');
  const [submitting, setSubmitting] = useState(false);

  const [form] = Form.useForm<{ invoiceId: string; notes: string }>();

  let getInvoiceSelectList = async () => {
    console.log(mainOrder);
    const res = await postServiceInvoiceFindInvoiceOld({
      data: {
        mainOrderId: mainOrder.id,
        reissueStatusNe: 'REISSUEING',
      },
    });
    setInvoiceSelectList([]);
    if (res && res.result === RESPONSE_CODE.SUCCESS) {
      let temInvoiceSelectList = [];
      res.data.forEach((item) => {
        temInvoiceSelectList.push({
          label: item.invoiceNumber,
          value: item.id,
        });
      });
      setInvoiceSelectList(temInvoiceSelectList);
    }
  };
  useEffect(() => {
    getInvoiceSelectList();
  }, []);
  return (
    <ModalForm
      title="重新开票(旧)"
      form={form}
      width={500}
      open
      autoFocusFirstInput
      initialValues={{}}
      modalProps={{
        okText: '确认',
        cancelText: '取消',
        destroyOnClose: true,
        onCancel: () => {
          setVisible(false);
        },
      }}
      submitting={submitting}
      onFinish={async (values) => {
        setSubmitting(true);
        postServiceInvoiceReissueOld({
          data: values,
        });
        setVisible(false);
        onClose();
      }}
      submitTimeout={2000}
    >
      <ProFormSelect
        width="lg"
        name="invoiceId"
        label="选择要重新开的发票"
        options={invoiceSelectList}
        onChange={async (value) => {
          console.log(value);
          let result = await postServiceOrderFindServiceOrder({
            data: {
              invoiceId: value,
            },
          });
          if (result && result.result === RESPONSE_CODE.SUCCESS) {
            //对data里面每个元素的id用,进行拼接
            let map = result.data.map((item) => item.id);
            let str = map.join(',');
            setMainOrders(str);
          }
        }}
      />
      <ProFormText
        width="lg"
        name="purchaser"
        label="抬头名称"
        key="purchaser"
        placeholder="请输入抬头名称"
        rules={[{ required: true, message: '抬头名称必填' }]}
      />
      <ProFormText
        width="md"
        name="关联订单"
        label="发票关联订单号"
        readonly={true}
        value={mainOrders}
      />
      <ProFormTextArea
        width="lg"
        name="notes"
        rules={[
          {
            required: true, // 设置为必填
            message: '必须填写重新开票原因', // 当未填写时显示的提示信息
          },
        ]}
        placeholder="请填写订单重新开票的原因"
      />
    </ModalForm>
  );
};