ShippingWarehouseChangeModal.tsx 1.88 KB
import { RESPONSE_CODE } from '@/constants/enum';
import { postServiceOrderShippingWarehouseChange } from '@/services';
import { enumToSelect } from '@/utils';
import { ModalForm, ProFormSelect } from '@ant-design/pro-components';
import { Form, message } from 'antd';
import { SHIPPING_WAREHOUSE_OPTIONS } from '../constant';

export default ({
  setVisible,
  subOrderIds,
  originShippingWarehouse,
  onClose,
}) => {
  const [form] = Form.useForm<{ shippingWarehouse: string }>();

  let newOriginShippingWarehouse = originShippingWarehouse;
  if (
    originShippingWarehouse === null ||
    originShippingWarehouse === undefined
  ) {
    newOriginShippingWarehouse = 'DALANG_WAREHOUSE';
  }
  return (
    <>
      <ModalForm<{
        shippingWarehouse: string;
      }>
        width={500}
        open
        title="修改发货仓库"
        form={form}
        autoFocusFirstInput
        modalProps={{
          okText: '保存',
          cancelText: '取消',
          destroyOnClose: true,
          onCancel: () => {
            setVisible(false);
          },
        }}
        onFinish={async (values) => {
          let res = await postServiceOrderShippingWarehouseChange({
            data: {
              ...values,
              ids: subOrderIds,
            },
          });

          if (res && res.result === RESPONSE_CODE.SUCCESS) {
            message.success(res.message);
          }
          onClose();
        }}
        onOpenChange={setVisible}
      >
        <ProFormSelect
          key={'shippingWarehouse'}
          placeholder="请选择发货仓库"
          name="shippingWarehouse"
          width="lg"
          label="发货仓库"
          rules={[{ required: true, message: '发货仓库必填' }]}
          initialValue={newOriginShippingWarehouse}
          options={enumToSelect(SHIPPING_WAREHOUSE_OPTIONS)}
        />
        ,
      </ModalForm>
    </>
  );
};