InvoicingDrawerForm.tsx 4.27 KB
import {
  DrawerForm,
  ProFormList,
  ProFormMoney,
  ProFormSelect,
  ProFormText,
  ProFormUploadDragger,
} from '@ant-design/pro-components';
import { Form, message } from 'antd';

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

export default ({ subOrders, onClose }) => {
  const [form] = Form.useForm<{ name: string; company: string }>();

  return (
    <DrawerForm<{
      name: string;
      company: string;
    }>
      title="申请开票"
      resize={{
        onResize() {
          console.log('resize!');
        },
        maxWidth: window.innerWidth * 0.8,
        minWidth: 300,
      }}
      form={form}
      /*trigger={
                <Button type="primary">
                    <PlusOutlined />
                    新建表单
                </Button>
            }*/
      open={true}
      autoFocusFirstInput
      drawerProps={{
        destroyOnClose: true,
      }}
      submitTimeout={2000}
      onFinish={async (values) => {
        await waitTime(2000);
        console.log(values);
        console.log(subOrders);
        message.success('提交成功');
        onClose();
        // 不返回不会关闭弹框
        return true;
      }}
    >
      <ProFormText
        style={{ padding: 0 }}
        width="md"
        name="name"
        label="开票订单"
      />
      <ProFormList
        name="subOrders"
        creatorButtonProps={{
          creatorButtonText: '新建',
          icon: false,
          type: 'link',
          style: { width: 'unset' },
        }}
        min={1}
        copyIconProps={false}
        deleteIconProps={{ tooltipText: '删除' }}
        itemRender={({ listDom, action }) => (
          <div
            style={{
              display: 'inline-flex',
              marginInlineEnd: 25,
            }}
          >
            {listDom}
            {action}
          </div>
        )}
      >
        <ProFormText allowClear={false} width="xs" name={['name']} />
      </ProFormList>
      <ProFormText
        rules={[
          {
            required: true,
          },
        ]}
        width="md"
        name="company"
        label="购方名称"
        placeholder="请输入名称"
      />
      <ProFormText
        rules={[
          {
            required: true,
          },
        ]}
        width="md"
        name="company"
        label="购方税号"
        placeholder="请输入名称"
      />
      <ProFormText
        rules={[
          {
            required: true,
          },
        ]}
        width="md"
        name="company"
        label="开户银行"
        placeholder="请输入名称"
      />
      <ProFormText
        rules={[
          {
            required: true,
          },
        ]}
        width="md"
        name="company"
        label="开户行账号"
        placeholder="请输入名称"
      />
      <ProFormMoney
        label="开票金额"
        name="amount2"
        locale="en-GB"
        initialValue={22.22}
      />
      <ProFormSelect
        name="select"
        label="开具类型"
        valueEnum={{
          open: '未解决',
          closed: '已解决',
        }}
        placeholder="Please select a country"
        rules={[{ required: true, message: 'Please select your country!' }]}
      />
      <ProFormSelect
        name="select"
        label="开票类型"
        valueEnum={{
          open: '未解决',
          closed: '已解决',
        }}
        placeholder="Please select a country"
        rules={[{ required: true, message: 'Please select your country!' }]}
      />
      <ProFormSelect
        name="select"
        label="开票收款单位"
        valueEnum={{
          open: '未解决',
          closed: '已解决',
        }}
        placeholder="Please select a country"
        rules={[{ required: true, message: 'Please select your country!' }]}
      />
      <ProFormSelect
        name="select"
        label="是否加急"
        valueEnum={{
          open: '未解决',
          closed: '已解决',
        }}
        placeholder="Please select a country"
        rules={[{ required: true, message: 'Please select your country!' }]}
      />
      <ProFormUploadDragger name="drag-pic" label="拖拽上传" />
    </DrawerForm>
  );
};