checkModal.tsx 2.26 KB
import { postOrderErpOrderStagesCheckOrderStages } from '@/services';
import { ModalForm, ProFormTextArea } from '@ant-design/pro-components';
import { Button, Form, Space, message } from 'antd';

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

export default ({ id, toReload }) => {
  const [form] = Form.useForm<{ mark: string }>();

  return (
    <Space>
      <ModalForm<{
        mark: string;
      }>
        title="账单审核"
        width={460}
        form={form}
        trigger={<a>审核</a>}
        modalProps={{
          okText: '通过',
          cancelText: '驳回',
          destroyOnClose: true,
        }}
        submitter={{
          render: (props, defaultDoms) => {
            let myDoms = [];
            myDoms.push(
              <Button
                key="驳回"
                onClick={async () => {
                  const res = await postOrderErpOrderStagesCheckOrderStages({
                    data: {
                      id: id,
                      isPass: false,
                      mark: form.getFieldValue('mark'),
                    },
                  });
                  await waitTime(2000);
                  if (res.message === '成功') {
                    message.success('操作成功');
                  }
                  toReload();
                  return;
                }}
              >
                驳回
              </Button>,
            );
            myDoms.push(defaultDoms[1]);
            return myDoms;
          },
        }}
        onFinish={async (values) => {
          const res = await postOrderErpOrderStagesCheckOrderStages({
            data: {
              id: id,
              isPass: true,
              mark: values.mark,
            },
          });
          await waitTime(2000);
          if (res.message === '成功') {
            message.success('操作成功');
          }
          toReload();
          return true;
        }}
      >
        <ProFormTextArea
          width="lg"
          name="mark"
          label="备注"
          tooltip="请特别注意订单总金额与订单金额。"
          placeholder="请输入名称"
        />
      </ModalForm>
    </Space>
  );
};