modal.tsx 2.15 KB
import { getOrderErpOrderZoNingSelectProvinceAll } from '@/services';
import { PlusOutlined } from '@ant-design/icons';
import {
  ModalForm,
  ProForm,
  ProFormSelect,
  ProFormText,
} from '@ant-design/pro-components';
import { Button, Form, message } from 'antd';
import { zoningItem } from './constant';

const waitTime = (time: number = 100) => {
  return new Promise((resolve) => {
    setTimeout(() => {
      resolve(true);
    }, time);
  });
};

export default () => {
  const [form] = Form.useForm<zoningItem>();
  return (
    <ModalForm<{
      name: string;
      company: string;
    }>
      title="新增区域"
      trigger={
        <Button type="primary">
          <PlusOutlined />
          新增区域
        </Button>
      }
      form={form}
      autoFocusFirstInput
      modalProps={{
        destroyOnClose: true,
        onCancel: () => console.log('run'),
      }}
      submitTimeout={2000}
      onFinish={async (values) => {
        await waitTime(2000);
        console.log(values.name);
        message.success('提交成功');
        return true;
      }}
    >
      <ProForm.Group>
        <ProFormText
          width="md"
          name="zoning"
          label="区域名称"
          placeholder="请输入"
        />
      </ProForm.Group>
      <ProForm.Group>
        <ProFormSelect
          request={async () => {
            const provinceList =
              await getOrderErpOrderZoNingSelectProvinceAll();
            if (provinceList) {
              return provinceList.data.map((item) => ({
                value: { pId: item.pId, province: item.province },
                label: item.province,
              }));
            }
            return [];
          }}
          width="xs"
          name="orderProvinceVoList"
          label="合同约定生效方式"
        />
      </ProForm.Group>
      <ProForm.Group>
        <ProFormSelect
          width="xs"
          options={[
            {
              value: 'time',
              label: '履行完终止',
            },
          ]}
          name="orderUserVoList"
          label="合同约定失效效方式"
        />
      </ProForm.Group>
    </ModalForm>
  );
};