ProcureConvertModal.tsx 2.53 KB
import { RESPONSE_CODE } from '@/constants/enum';
import {
  postServiceOrderProcureConvertProcure,
  postServiceOrderProcureConvertWarehouseKeeper,
  postServiceOrderProvideProcurementRoles,
} from '@/services';
import {
  ModalForm,
  ProFormSelect,
  ProFormTextArea,
} from '@ant-design/pro-components';
import { Form, message } from 'antd';
export default ({ setVisible, subOrders, onClose }) => {
  const [form] = Form.useForm<{
    procureName: string;
    procureConvertNotes: string;
  }>();

  let subOrderIds: any[] = subOrders?.map((subOrder) => subOrder.id);

  return (
    <ModalForm<{
      procureName: string;
      procureConvertNotes: string;
    }>
      width={500}
      open
      title="采购转发"
      form={form}
      autoFocusFirstInput
      modalProps={{
        okText: '确认',
        cancelText: '取消',
        destroyOnClose: true,
        onCancel: () => {
          setVisible(false);
        },
      }}
      submitter={{
        render: (props, defaultDoms) => {
          return defaultDoms;
        },
      }}
      submitTimeout={2000}
      onFinish={async (values) => {
        let data;
        if (values.procureName === '仓库') {
          //转给仓库
          data = await postServiceOrderProcureConvertWarehouseKeeper({
            data: {
              subIds: subOrderIds,
              checkNotes: values.procureConvertNotes,
            },
          });
        } else {
          data = await postServiceOrderProcureConvertProcure({
            data: {
              procureName: values.procureName,
              procureConvertNotes: values.procureConvertNotes,
              subIds: subOrderIds,
            },
          });
        }

        if (data.result === RESPONSE_CODE.SUCCESS) {
          message.success(data.message);
          onClose();
        }
      }}
      onOpenChange={setVisible}
    >
      <ProFormSelect
        key="key"
        label="采购名称"
        width="lg"
        name="procureName"
        // options={options}
        placeholder="请选择采购"
        rules={[{ required: true, message: '采购必填' }]}
        request={async () => {
          const res = await postServiceOrderProvideProcurementRoles();
          let options = res.data?.map((item) => {
            return { label: item, value: item };
          });
          return options;
        }}
      />

      <ProFormTextArea
        key="key"
        label="转发备注"
        width="lg"
        name="procureConvertNotes"
        placeholder="请填写转发备注"
      />
    </ModalForm>
  );
};