TableCheckModal.tsx 2.73 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, isShow }) => {
  const [form] = Form.useForm<{ mark: string }>();

  return (
    <Space>
      <ModalForm<{
        mark: string;
      }>
        title="账单审核"
        width={460}
        form={form}
        trigger={
          <Button type="primary" disabled={isShow}>
            批量审核
          </Button>
        }
        modalProps={{
          okText: '通过',
          cancelText: '驳回',
          destroyOnClose: true,
        }}
        submitter={{
          render: (props, defaultDoms) => {
            let myDoms = [];
            myDoms.push(
              <Button
                key="驳回"
                onClick={async () => {
                  if (id?.length === 0) {
                    message.error('没有可审核的订单');
                    toReload();
                  } else {
                    const res = await postOrderErpOrderStagesCheckOrderStages({
                      data: {
                        ids: 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) => {
          if (id?.length === 0) {
            message.error('没有可审核的订单');
            return true;
          } else {
            const res = await postOrderErpOrderStagesCheckOrderStages({
              data: {
                ids: 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>
  );
};