ProcureCheckModal.tsx 2.16 KB
import { RESPONSE_CODE } from '@/constants/enum';
import {
  postServiceOrderProcureCheckOrder,
  postServiceOrderQuerySupplier,
} from '@/services';
import { ModalForm, ProFormSelect } from '@ant-design/pro-components';
import { Form, message } from 'antd';
export default ({ setCheckVisible, data, subOrders, onClose }) => {
  const [form] = Form.useForm<{ name: string; company: string }>();
  let subOrderIds: any[] = [];
  //是单条子订单审核
  if (subOrders === undefined) {
    subOrderIds = [data.id];
  } else {
    subOrderIds = subOrders.map((subOrder) => subOrder.id);
  }
  async function doCheck(body: object) {
    const data = await postServiceOrderProcureCheckOrder({
      data: body,
    });
    if (data.result === RESPONSE_CODE.SUCCESS) {
      message.success(data.message);
      onClose();
    }
  }

  return (
    <ModalForm<{
      name: string;
      company: string;
    }>
      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) => {
        let procureIsPrintAndSend = false;
        if (values.name === '采购自行发货') {
          procureIsPrintAndSend = true;
        }
        return doCheck({
          ids: subOrderIds,
          supplier: values.name,
          procureIsPrintAndSend: procureIsPrintAndSend,
        });
      }}
      onOpenChange={setCheckVisible}
    >
      <ProFormSelect
        key="key"
        label="供应商名称"
        width="lg"
        name="name"
        // options={options}
        placeholder="请选择供应商"
        rules={[{ required: true, message: '供应商必填' }]}
        request={async () => {
          const res = await postServiceOrderQuerySupplier();
          return res.data?.map((item) => {
            return { label: item, value: item };
          });
        }}
      />
    </ModalForm>
  );
};