Blame view

src/pages/Invoice/waitProcessRecord/components/ManualInvoicingModal.tsx 3.83 KB
1
import { RESPONSE_CODE } from '@/constants/enum';
2
import UploadC from '@/pages/Invoice/waitProcessRecord/components/UploadSingleImg';
3
4
5
6
import {
  postOrderErpOrderStagesUpload,
  postServiceInvoiceDealInvoicingResult,
} from '@/services';
7
8
9
10
11
12
13
import {
  ModalForm,
  ProFormDatePicker,
  ProFormText,
} from '@ant-design/pro-components';
import { Col, Form, Row, message } from 'antd';
import { RcFile } from 'antd/es/upload';
14
import { useEffect } from 'react';
15
16
export default ({ record }) => {
17
18
19
20
  useEffect(() => {
    console.log('invoicing');
  }, []);
  const [form] = Form.useForm();
21
  return (
22
    <ModalForm
23
24
      title="手动开票"
      trigger={<a type="primary">手动开票</a>}
25
      width={600}
26
27
28
29
30
31
32
33
34
      layout={'horizontal'}
      form={form}
      autoFocusFirstInput
      modalProps={{
        destroyOnClose: true,
        onCancel: () => console.log('run'),
      }}
      submitTimeout={2000}
      onFinish={async (values) => {
35
36
37
38
39
40
        const res = await postServiceInvoiceDealInvoicingResult({
          data: {
            ...values,
            isSuccess: true,
            invoiceRecordId: record.id,
            manual: true,
41
            invoiceDetailDtoList: record.invoiceDetails,
42
43
44
45
46
47
48
49
          },
        });
        if (res.result === RESPONSE_CODE.SUCCESS) {
          message.success('开票成功');
          return true;
        } else {
          message.error('开票失败');
        }
50
51
      }}
    >
52
      {/*<ProFormText
53
54
55
56
        rules={[{ required: true, message: '此项为必填项' }]}
        width={'md'}
        name="invoicingPerson"
        label="开票人"
57
      />*/}
58
59
60
61
62
63
      <ProFormText
        rules={[{ required: true, message: '此项为必填项' }]}
        width={'md'}
        name="invoiceNumber"
        label="发票号码"
      />
64
      <ProFormDatePicker
65
        rules={[{ required: true, message: '此项为必填项' }]}
66
        fieldProps={{
67
          format: 'YYYY-MM-DD',
68
69
70
71
        }}
        name="invoicingDate"
        label="开票日期"
      />
72
73
74
75
76
77
      <ProFormText
        rules={[{ required: true, message: '发票必须上传' }]}
        hidden
        name="url"
        label="發票地址"
      />
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
      <Row>
        <Col span={4}>上传发票</Col>
        <Col span={20}>
          <UploadC
            onFilesChange={async (newFileList) => {
              if (newFileList.length > 0) {
                const formData = new FormData();
                formData.append('file', newFileList[0].originFileObj as RcFile);
                const res = await postOrderErpOrderStagesUpload({
                  data: formData,
                  headers: {
                    'Content-Type':
                      'multipart/form-data; boundary=----WebKitFormBoundarynl6gT1BKdPWIejNq',
                  },
                });
                const url = res.data;
                form.setFieldValue('url', url);
              } else {
                form.setFieldValue('url', null);
              }
            }}
          ></UploadC>
        </Col>
      </Row>
102
      {/*<ProFormList
103
        name="invoiceDetailDtoList"
104
105
106
        label="明细"
        creatorButtonProps={false}
        copyIconProps={false}
107
        itemRender={({ listDom }, { index }) => (
108
109
110
111
112
113
114
115
116
117
118
          <ProCard
            bordered
            style={{ marginBlockEnd: 8 }}
            title={`明细${index + 1}`}
            bodyStyle={{ paddingBlockEnd: 0 }}
          >
            {listDom}
          </ProCard>
        )}
        creatorRecord={{ name: '', items: [{ name: '' }] }}
        initialValue={record.invoiceDetails}
119
120
121
122
123
124
125
126
127
      >
        <ProFormText
          name="projectName"
          label="名称"
          placeholder="请输入名称"
          readonly
        />
        <ProFormDigit label="税率" name="taxRate" min={0} max={100} />
        <ProFormMoney label="税额" name="taxPrice" locale="zh-CN" min={0} />
128
      </ProFormList>*/}
129
130
131
    </ModalForm>
  );
};