Commit a8f9dc33767fdaab7079c0be292b04e75c685db7
1 parent
ac7b28d0
fix(order-page): 禁用一键审核功能
由于当前存在技术限制,无法实现一键审核功能。已将相关代码注释行修改以反映此情况,并防止潜在的错误操作。fix(order): 修复财务审核中流水号字段的错误 解决了财务审核功能中,添加流水号字段后导致的接口调用失败问题。现在,`checkNotes`字段被正确地包含在提交给`postServiceOrderFinanceCheckOrder`的payload中。之前,由于字段顺序错误,导致接口调用失败。
Showing
11 changed files
with
75 additions
and
536 deletions
src/pages/Invoice/Invoice/components/InvoiceVerificationModal.tsx
@@ -83,7 +83,7 @@ export default ({ invoiceId, setVisible, onClose }) => { | @@ -83,7 +83,7 @@ export default ({ invoiceId, setVisible, onClose }) => { | ||
83 | { | 83 | { |
84 | key: '3', | 84 | key: '3', |
85 | label: '状态', | 85 | label: '状态', |
86 | - children: enumValueToLabel(invoiceInfo?.status, INVOICE_STATUS), | 86 | + children: invoiceInfo?.statusText, |
87 | span: 4, | 87 | span: 4, |
88 | }, | 88 | }, |
89 | { | 89 | { |
@@ -220,10 +220,6 @@ export default ({ invoiceId, setVisible, onClose }) => { | @@ -220,10 +220,6 @@ export default ({ invoiceId, setVisible, onClose }) => { | ||
220 | width: 70, | 220 | width: 70, |
221 | render: (text, record) => { | 221 | render: (text, record) => { |
222 | let optBtns = []; | 222 | let optBtns = []; |
223 | - if (invoiceInfo?.status === 'VERIFIED') { | ||
224 | - return []; | ||
225 | - } | ||
226 | - | ||
227 | optBtns.push( | 223 | optBtns.push( |
228 | <ButtonConfirm | 224 | <ButtonConfirm |
229 | key="delete" | 225 | key="delete" |
@@ -357,7 +353,6 @@ export default ({ invoiceId, setVisible, onClose }) => { | @@ -357,7 +353,6 @@ export default ({ invoiceId, setVisible, onClose }) => { | ||
357 | onClick={() => { | 353 | onClick={() => { |
358 | setBankChooseModalVisible(true); | 354 | setBankChooseModalVisible(true); |
359 | }} | 355 | }} |
360 | - hidden={invoiceInfo?.status === 'VERIFIED'} | ||
361 | type="primary" | 356 | type="primary" |
362 | > | 357 | > |
363 | 添加 | 358 | 添加 |
src/pages/Invoice/Invoice/index.tsx
@@ -3,7 +3,7 @@ import EllipsisDiv from '@/components/Div/EllipsisDiv'; | @@ -3,7 +3,7 @@ import EllipsisDiv from '@/components/Div/EllipsisDiv'; | ||
3 | import AddInvoiceDrawerForm from '@/pages/Invoice/Invoice/components/AddInvoiceDrawerForm'; | 3 | import AddInvoiceDrawerForm from '@/pages/Invoice/Invoice/components/AddInvoiceDrawerForm'; |
4 | import BankImportModal from '@/pages/Invoice/Invoice/components/BankImportModal'; | 4 | import BankImportModal from '@/pages/Invoice/Invoice/components/BankImportModal'; |
5 | import InvoiceVerificationModal from '@/pages/Invoice/Invoice/components/InvoiceVerificationModal'; | 5 | import InvoiceVerificationModal from '@/pages/Invoice/Invoice/components/InvoiceVerificationModal'; |
6 | -import { INVOICE_COLUMNS, INVOICE_STATUS } from '@/pages/Invoice/constant'; | 6 | +import { INVOICE_COLUMNS } from '@/pages/Invoice/constant'; |
7 | import { INVOCING_STATUS, PAYEE_OPTIONS } from '@/pages/Order/constant'; | 7 | import { INVOCING_STATUS, PAYEE_OPTIONS } from '@/pages/Order/constant'; |
8 | import { | 8 | import { |
9 | postServiceInvoiceDeleteInvoice, | 9 | postServiceInvoiceDeleteInvoice, |
@@ -71,16 +71,6 @@ const InvoiceRecord = () => { | @@ -71,16 +71,6 @@ const InvoiceRecord = () => { | ||
71 | /> | 71 | /> |
72 | ); | 72 | ); |
73 | 73 | ||
74 | - case 'status': | ||
75 | - return ( | ||
76 | - <EllipsisDiv | ||
77 | - text={enumValueToLabel( | ||
78 | - getTableCellText(textValue), | ||
79 | - INVOICE_STATUS, | ||
80 | - )} | ||
81 | - /> | ||
82 | - ); | ||
83 | - | ||
84 | case 'payee': | 74 | case 'payee': |
85 | return ( | 75 | return ( |
86 | <EllipsisDiv | 76 | <EllipsisDiv |
@@ -107,7 +97,7 @@ const InvoiceRecord = () => { | @@ -107,7 +97,7 @@ const InvoiceRecord = () => { | ||
107 | width: 120, | 97 | width: 120, |
108 | render: (text, record) => { | 98 | render: (text, record) => { |
109 | let btns = []; | 99 | let btns = []; |
110 | - if (record.path?.includes('writeOff')) { | 100 | + if (record.paths?.includes('writeOff')) { |
111 | btns.push( | 101 | btns.push( |
112 | <a | 102 | <a |
113 | key="editable" | 103 | key="editable" |
@@ -122,7 +112,7 @@ const InvoiceRecord = () => { | @@ -122,7 +112,7 @@ const InvoiceRecord = () => { | ||
122 | ); | 112 | ); |
123 | } | 113 | } |
124 | 114 | ||
125 | - if (record.path?.includes('queryInvoiceDetails')) { | 115 | + if (record.paths?.includes('queryInvoiceDetails')) { |
126 | btns.push( | 116 | btns.push( |
127 | <Button | 117 | <Button |
128 | className="p-0" | 118 | className="p-0" |
@@ -130,7 +120,7 @@ const InvoiceRecord = () => { | @@ -130,7 +120,7 @@ const InvoiceRecord = () => { | ||
130 | type="link" | 120 | type="link" |
131 | onClick={() => { | 121 | onClick={() => { |
132 | setInvoiceVerificationVisible(true); | 122 | setInvoiceVerificationVisible(true); |
133 | - setInvoiceId(record.invoiceId); | 123 | + setInvoiceId(record.id); |
134 | }} | 124 | }} |
135 | > | 125 | > |
136 | 查看 | 126 | 查看 |
@@ -138,7 +128,7 @@ const InvoiceRecord = () => { | @@ -138,7 +128,7 @@ const InvoiceRecord = () => { | ||
138 | ); | 128 | ); |
139 | } | 129 | } |
140 | 130 | ||
141 | - if (record.path?.includes('deleteInvoice')) { | 131 | + if (record.paths?.includes('deleteInvoice')) { |
142 | btns.push( | 132 | btns.push( |
143 | <ButtonConfirm | 133 | <ButtonConfirm |
144 | key="delete" | 134 | key="delete" |
src/pages/Invoice/InvoiceRecord/components/InvoiceRecordDetailModal.tsx
@@ -21,7 +21,7 @@ import { | @@ -21,7 +21,7 @@ import { | ||
21 | import { Button, Divider, Form, Space, message } from 'antd'; | 21 | import { Button, Divider, Form, Space, message } from 'antd'; |
22 | import { useEffect, useRef, useState } from 'react'; | 22 | import { useEffect, useRef, useState } from 'react'; |
23 | 23 | ||
24 | -export default ({ id, setVisible }) => { | 24 | +export default ({ id, setVisible, reloadTable }) => { |
25 | const [readOnly, setReadOnly] = useState(true); | 25 | const [readOnly, setReadOnly] = useState(true); |
26 | const [detailTableData, setDetailTableData] = useState([]); | 26 | const [detailTableData, setDetailTableData] = useState([]); |
27 | const [payees, setPayees] = useState([]); | 27 | const [payees, setPayees] = useState([]); |
@@ -124,6 +124,7 @@ export default ({ id, setVisible }) => { | @@ -124,6 +124,7 @@ export default ({ id, setVisible }) => { | ||
124 | message.success('提交成功'); | 124 | message.success('提交成功'); |
125 | } | 125 | } |
126 | setVisible(false); | 126 | setVisible(false); |
127 | + reloadTable(); | ||
127 | return true; | 128 | return true; |
128 | }} | 129 | }} |
129 | > | 130 | > |
@@ -168,6 +169,7 @@ export default ({ id, setVisible }) => { | @@ -168,6 +169,7 @@ export default ({ id, setVisible }) => { | ||
168 | }, | 169 | }, |
169 | }); | 170 | }); |
170 | if (result.result === RESPONSE_CODE.SUCCESS) { | 171 | if (result.result === RESPONSE_CODE.SUCCESS) { |
172 | + reloadTable(); | ||
171 | message.success('提交成功'); | 173 | message.success('提交成功'); |
172 | } | 174 | } |
173 | return true; | 175 | return true; |
src/pages/Invoice/InvoiceRecord/index.tsx
@@ -239,7 +239,7 @@ const InvoiceRecord = () => { | @@ -239,7 +239,7 @@ const InvoiceRecord = () => { | ||
239 | }, | 239 | }, |
240 | { | 240 | { |
241 | title: '开票状态', | 241 | title: '开票状态', |
242 | - key: 'invoiceRecordStatus', | 242 | + key: 'status', |
243 | valueType: 'select', | 243 | valueType: 'select', |
244 | dataIndex: 'status', | 244 | dataIndex: 'status', |
245 | filters: true, | 245 | filters: true, |
@@ -474,6 +474,9 @@ const InvoiceRecord = () => { | @@ -474,6 +474,9 @@ const InvoiceRecord = () => { | ||
474 | key="detail" | 474 | key="detail" |
475 | id={invoiceRecord.id} | 475 | id={invoiceRecord.id} |
476 | setVisible={setInvoiceRecordDetailVisible} | 476 | setVisible={setInvoiceRecordDetailVisible} |
477 | + reloadTable={() => { | ||
478 | + processedRecordRef?.current?.reload(); | ||
479 | + }} | ||
477 | /> | 480 | /> |
478 | ) : ( | 481 | ) : ( |
479 | '' | 482 | '' |
src/pages/Invoice/InvoiceVerification/components/InvoiceVerificationModal.tsx
@@ -357,7 +357,6 @@ export default ({ invoiceId, setVisible, onClose }) => { | @@ -357,7 +357,6 @@ export default ({ invoiceId, setVisible, onClose }) => { | ||
357 | onClick={() => { | 357 | onClick={() => { |
358 | setBankChooseModalVisible(true); | 358 | setBankChooseModalVisible(true); |
359 | }} | 359 | }} |
360 | - hidden={invoiceInfo?.status === 'VERIFIED'} | ||
361 | type="primary" | 360 | type="primary" |
362 | > | 361 | > |
363 | 添加 | 362 | 添加 |
src/pages/Invoice/constant.tsx
@@ -55,14 +55,9 @@ export const INVOICE_COLUMNS = [ | @@ -55,14 +55,9 @@ export const INVOICE_COLUMNS = [ | ||
55 | }, | 55 | }, |
56 | { | 56 | { |
57 | title: '状态', | 57 | title: '状态', |
58 | - dataIndex: 'status', | 58 | + dataIndex: 'statusText', |
59 | valueType: 'text', | 59 | valueType: 'text', |
60 | - width: 100, | ||
61 | - valueEnum: enumToProTableEnumValue({ | ||
62 | - UNVERIFIED: '未核销', | ||
63 | - VERIFIED: '已核销', | ||
64 | - PARTIAL_VERIFICATION: '部分核销', | ||
65 | - }), | 60 | + width: 180, |
66 | }, | 61 | }, |
67 | { | 62 | { |
68 | title: '购买方', | 63 | title: '购买方', |
@@ -93,7 +88,14 @@ export const INVOICE_COLUMNS = [ | @@ -93,7 +88,14 @@ export const INVOICE_COLUMNS = [ | ||
93 | title: '金额', | 88 | title: '金额', |
94 | dataIndex: 'money', | 89 | dataIndex: 'money', |
95 | valueType: 'money', | 90 | valueType: 'money', |
96 | - hideInTable: true, | 91 | + hideInSearch: true, |
92 | + width: 100, | ||
93 | + }, | ||
94 | + { | ||
95 | + title: '开具类型', | ||
96 | + dataIndex: 'invoicingTypeText', | ||
97 | + valueType: 'invoicingTypeText', | ||
98 | + hideInSearch: true, | ||
97 | width: 100, | 99 | width: 100, |
98 | }, | 100 | }, |
99 | { | 101 | { |
@@ -156,21 +158,6 @@ export const BANK_STATEMENT_COLUMNS = [ | @@ -156,21 +158,6 @@ export const BANK_STATEMENT_COLUMNS = [ | ||
156 | editable: false, | 158 | editable: false, |
157 | }, | 159 | }, |
158 | { | 160 | { |
159 | - dataIndex: 'statusText', | ||
160 | - title: '状态', | ||
161 | - valueType: 'select', | ||
162 | - width: 100, | ||
163 | - editable: false, | ||
164 | - hideInSearch: true, | ||
165 | - }, | ||
166 | - { | ||
167 | - title: '状态', | ||
168 | - width: 80, | ||
169 | - dataIndex: 'status', | ||
170 | - hideInTable: true, | ||
171 | - valueEnum: convertToObjectWithTextAndStatus(BANKSTATEMENT_STATUS), | ||
172 | - }, | ||
173 | - { | ||
174 | dataIndex: 'serialNumber', | 161 | dataIndex: 'serialNumber', |
175 | title: '流水号', | 162 | title: '流水号', |
176 | valueType: 'text', | 163 | valueType: 'text', |
src/pages/Invoice/waitProcessRecord/components/InvoiceRecordDetailModal.tsx deleted
100644 → 0
1 | -import { RESPONSE_CODE } from '@/constants/enum'; | ||
2 | -import InvoiceDetailTable from '@/pages/Invoice/waitProcessRecord/components/InvoiceDetailTable'; | ||
3 | -import { | ||
4 | - postServiceConstGetPayeeEnum, | ||
5 | - postServiceConstInvoiceType, | ||
6 | - postServiceConstInvoicingType, | ||
7 | - postServiceInvoiceGetInvoiceRecord, | ||
8 | - postServiceInvoiceModifyRecord, | ||
9 | -} from '@/services'; | ||
10 | -import { enumToSelect } from '@/utils'; | ||
11 | -import { | ||
12 | - ModalForm, | ||
13 | - ProCard, | ||
14 | - ProForm, | ||
15 | - ProFormInstance, | ||
16 | - ProFormList, | ||
17 | - ProFormSelect, | ||
18 | - ProFormText, | ||
19 | - ProFormTextArea, | ||
20 | -} from '@ant-design/pro-components'; | ||
21 | -import { Button, Divider, Form, Space, message } from 'antd'; | ||
22 | -import { useEffect, useRef, useState } from 'react'; | ||
23 | - | ||
24 | -export default ({ id, setVisible }) => { | ||
25 | - const [readOnly, setReadOnly] = useState(true); | ||
26 | - const [detailTableData, setDetailTableData] = useState([]); | ||
27 | - const [payees, setPayees] = useState([]); | ||
28 | - const [payeeNameOptions, setPayeeNameOptions] = useState([]); | ||
29 | - const formRef = useRef<ProFormInstance>(); | ||
30 | - const [form] = Form.useForm(); | ||
31 | - | ||
32 | - useEffect(() => { | ||
33 | - console.log('id' + id); | ||
34 | - const getPayees = async () => { | ||
35 | - let res = await postServiceConstGetPayeeEnum(); | ||
36 | - setPayees(res.data); | ||
37 | - let payeeNameOptions = res.data.map((item) => { | ||
38 | - return { | ||
39 | - label: item.payeeName, | ||
40 | - value: item.payeeName, | ||
41 | - }; | ||
42 | - }); | ||
43 | - setPayeeNameOptions(payeeNameOptions); | ||
44 | - }; | ||
45 | - getPayees(); | ||
46 | - }, []); | ||
47 | - const getRecord = async (id) => { | ||
48 | - let ret = await postServiceInvoiceGetInvoiceRecord({ | ||
49 | - query: { | ||
50 | - id: id, | ||
51 | - }, | ||
52 | - }); | ||
53 | - console.log(ret.data); | ||
54 | - const updatedInvoiceDetails = ret.data.invoiceDetails?.map( | ||
55 | - (item, index) => ({ | ||
56 | - ...item, // 保留原有属性 | ||
57 | - tid: index + 1, // 添加tid属性,这里以T开头,后面跟索引+1,仅作示例,实际可根据需求生成tid | ||
58 | - }), | ||
59 | - ); | ||
60 | - setDetailTableData(updatedInvoiceDetails); | ||
61 | - }; | ||
62 | - useEffect(() => { | ||
63 | - getRecord(id); | ||
64 | - }, []); | ||
65 | - | ||
66 | - const updateDetails = (values) => { | ||
67 | - setDetailTableData(values); | ||
68 | - }; | ||
69 | - return ( | ||
70 | - <> | ||
71 | - <Space> | ||
72 | - <ModalForm | ||
73 | - open | ||
74 | - title="发票详情" | ||
75 | - formRef={formRef} | ||
76 | - request={async () => { | ||
77 | - let ret = await postServiceInvoiceGetInvoiceRecord({ | ||
78 | - query: { | ||
79 | - id: id, | ||
80 | - }, | ||
81 | - }); | ||
82 | - const data = ret.data; | ||
83 | - const orderIdMap = data.orderIdMap; | ||
84 | - const orderIdList = []; | ||
85 | - | ||
86 | - // 使用Object.entries()遍历属性 | ||
87 | - Object.entries(orderIdMap).forEach(([key, value]) => { | ||
88 | - const orderId = { | ||
89 | - mainId: key, | ||
90 | - subIds: value, | ||
91 | - }; | ||
92 | - orderIdList.push(orderId); | ||
93 | - }); | ||
94 | - return { | ||
95 | - ...data, | ||
96 | - orderIdList: orderIdList, | ||
97 | - }; | ||
98 | - }} | ||
99 | - submitter={{ | ||
100 | - render: () => { | ||
101 | - return [ | ||
102 | - <Button | ||
103 | - type={readOnly ? 'primary' : 'default'} | ||
104 | - key="ok" | ||
105 | - onClick={() => { | ||
106 | - setReadOnly(!readOnly); | ||
107 | - }} | ||
108 | - > | ||
109 | - {readOnly ? '编辑' : '取消编辑'} | ||
110 | - </Button>, | ||
111 | - <> | ||
112 | - {!readOnly && ( | ||
113 | - <Button | ||
114 | - type="primary" | ||
115 | - key="submit" | ||
116 | - onClick={async () => { | ||
117 | - const result = await postServiceInvoiceModifyRecord({ | ||
118 | - data: { | ||
119 | - ...form.getFieldsValue(), | ||
120 | - invoiceDetails: [...detailTableData], | ||
121 | - }, | ||
122 | - }); | ||
123 | - if (result.result === RESPONSE_CODE.SUCCESS) { | ||
124 | - message.success('提交成功'); | ||
125 | - } | ||
126 | - setVisible(false); | ||
127 | - return true; | ||
128 | - }} | ||
129 | - > | ||
130 | - 提交 | ||
131 | - </Button> | ||
132 | - )} | ||
133 | - </>, | ||
134 | - /*<Button | ||
135 | - type={'default'} | ||
136 | - key="ok" | ||
137 | - onClick={() => { | ||
138 | - setVisible(false) | ||
139 | - }} | ||
140 | - > | ||
141 | - 取消 | ||
142 | - </Button>,*/ | ||
143 | - ]; | ||
144 | - }, | ||
145 | - }} | ||
146 | - width={1200} | ||
147 | - form={form} | ||
148 | - autoFocusFirstInput | ||
149 | - modalProps={{ | ||
150 | - destroyOnClose: true, | ||
151 | - onCancel: () => { | ||
152 | - setVisible(false); | ||
153 | - }, | ||
154 | - }} | ||
155 | - grid={true} | ||
156 | - layout="horizontal" | ||
157 | - rowProps={{ | ||
158 | - gutter: [0, 0], | ||
159 | - }} | ||
160 | - submitTimeout={2000} | ||
161 | - onFinish={async (values) => { | ||
162 | - const result = await postServiceInvoiceModifyRecord({ | ||
163 | - data: { | ||
164 | - ...values, | ||
165 | - invoiceDetails: { | ||
166 | - ...detailTableData, | ||
167 | - }, | ||
168 | - }, | ||
169 | - }); | ||
170 | - if (result.result === RESPONSE_CODE.SUCCESS) { | ||
171 | - message.success('提交成功'); | ||
172 | - } | ||
173 | - return true; | ||
174 | - }} | ||
175 | - > | ||
176 | - <ProCard | ||
177 | - title="基础信息" | ||
178 | - bordered | ||
179 | - // | ||
180 | - headStyle={{}} | ||
181 | - headerBordered | ||
182 | - size={'small'} | ||
183 | - > | ||
184 | - <ProForm.Group> | ||
185 | - <ProFormText | ||
186 | - readonly | ||
187 | - name="id" | ||
188 | - label="订单批号" | ||
189 | - colProps={{ | ||
190 | - span: 5, | ||
191 | - }} | ||
192 | - tooltip="最长为 24 位" | ||
193 | - placeholder="请输入名称" | ||
194 | - /> | ||
195 | - | ||
196 | - <ProFormText | ||
197 | - readonly | ||
198 | - width="md" | ||
199 | - colProps={{ | ||
200 | - span: 5, | ||
201 | - }} | ||
202 | - name="createByName" | ||
203 | - label="销售代表" | ||
204 | - placeholder="请输入名称" | ||
205 | - /> | ||
206 | - <ProFormText | ||
207 | - readonly | ||
208 | - width="md" | ||
209 | - colProps={{ | ||
210 | - span: 5, | ||
211 | - }} | ||
212 | - name="createTime" | ||
213 | - label="申请时间" | ||
214 | - placeholder="请输入名称" | ||
215 | - /> | ||
216 | - <ProFormSelect | ||
217 | - name="type" | ||
218 | - label="发票类型" | ||
219 | - colProps={{ | ||
220 | - span: 5, | ||
221 | - }} | ||
222 | - readonly={readOnly} | ||
223 | - request={async () => { | ||
224 | - let invoiceTypeRet = await postServiceConstInvoiceType(); | ||
225 | - return enumToSelect(invoiceTypeRet.data); | ||
226 | - }} | ||
227 | - placeholder="Please select a country" | ||
228 | - rules={[ | ||
229 | - { required: true, message: 'Please select your country!' }, | ||
230 | - ]} | ||
231 | - /> | ||
232 | - <ProFormSelect | ||
233 | - name="invoicingType" | ||
234 | - readonly={readOnly} | ||
235 | - label="开具类型" | ||
236 | - colProps={{ | ||
237 | - span: 4, | ||
238 | - }} | ||
239 | - request={async () => { | ||
240 | - let invoicingTypeRet = await postServiceConstInvoicingType(); | ||
241 | - let options = enumToSelect(invoicingTypeRet.data); | ||
242 | - return options; | ||
243 | - }} | ||
244 | - placeholder="Please select a country" | ||
245 | - rules={[ | ||
246 | - { required: true, message: 'Please select your country!' }, | ||
247 | - ]} | ||
248 | - /> | ||
249 | - <ProFormList | ||
250 | - label="订单号" | ||
251 | - name="orderIdList" | ||
252 | - creatorButtonProps={false} | ||
253 | - itemRender={({}, { record }) => { | ||
254 | - console.log('record' + JSON.stringify(record)); | ||
255 | - return ( | ||
256 | - <Space> | ||
257 | - <Button | ||
258 | - key={record.mainId} | ||
259 | - className="pl-1 pr-0" | ||
260 | - type="link" | ||
261 | - target="_blank" | ||
262 | - href={'/order?id=' + record.mainId} | ||
263 | - > | ||
264 | - {record.mainId} | ||
265 | - </Button> | ||
266 | - ( | ||
267 | - {record.subIds.map((item) => { | ||
268 | - return ( | ||
269 | - <Button | ||
270 | - key={item} | ||
271 | - className="pl-1 pr-0" | ||
272 | - type="link" | ||
273 | - target="_blank" | ||
274 | - href={'/order?subOrderId=' + item} | ||
275 | - > | ||
276 | - {item} | ||
277 | - </Button> | ||
278 | - ); | ||
279 | - })} | ||
280 | - ) | ||
281 | - <Divider type="vertical" /> | ||
282 | - </Space> | ||
283 | - ); | ||
284 | - }} | ||
285 | - > | ||
286 | - <ProFormText allowClear={false} width="xs" name={['name']} /> | ||
287 | - </ProFormList> | ||
288 | - </ProForm.Group> | ||
289 | - </ProCard> | ||
290 | - <hr /> | ||
291 | - <ProCard title="购方信息" bordered headerBordered size={'small'}> | ||
292 | - <ProForm.Group> | ||
293 | - <ProFormText | ||
294 | - readonly={readOnly} | ||
295 | - width="md" | ||
296 | - colProps={{ | ||
297 | - span: 8, | ||
298 | - }} | ||
299 | - name="partyAName" | ||
300 | - label="购方名称" | ||
301 | - placeholder="请输入名称" | ||
302 | - /> | ||
303 | - <ProFormText | ||
304 | - readonly={readOnly} | ||
305 | - width="md" | ||
306 | - colProps={{ | ||
307 | - span: 8, | ||
308 | - }} | ||
309 | - name="partyATaxid" | ||
310 | - label="购方税号" | ||
311 | - placeholder="请输入名称" | ||
312 | - /> | ||
313 | - <ProFormText | ||
314 | - readonly={readOnly} | ||
315 | - width="md" | ||
316 | - colProps={{ | ||
317 | - span: 8, | ||
318 | - }} | ||
319 | - label="开户银行" | ||
320 | - name={'partyAOpenBank'} | ||
321 | - placeholder="请输入名称" | ||
322 | - /> | ||
323 | - <ProFormText | ||
324 | - readonly={readOnly} | ||
325 | - width="md" | ||
326 | - colProps={{ | ||
327 | - span: 8, | ||
328 | - }} | ||
329 | - name="partyABankAccount" | ||
330 | - label="银行账号" | ||
331 | - placeholder="请输入名称" | ||
332 | - /> | ||
333 | - <ProFormText | ||
334 | - readonly={readOnly} | ||
335 | - width="md" | ||
336 | - colProps={{ | ||
337 | - span: 8, | ||
338 | - }} | ||
339 | - name="partyAAddress" | ||
340 | - label="购方地址" | ||
341 | - placeholder="请输入名称" | ||
342 | - /> | ||
343 | - <ProFormText | ||
344 | - readonly={readOnly} | ||
345 | - width="md" | ||
346 | - colProps={{ | ||
347 | - span: 8, | ||
348 | - }} | ||
349 | - name="partyAPhoneNumber" | ||
350 | - label="电话" | ||
351 | - placeholder="请输入名称" | ||
352 | - /> | ||
353 | - </ProForm.Group> | ||
354 | - </ProCard> | ||
355 | - <hr /> | ||
356 | - <ProCard title="销方信息" bordered headerBordered size={'small'}> | ||
357 | - <ProForm.Group> | ||
358 | - <ProFormSelect | ||
359 | - readonly={readOnly} | ||
360 | - width="md" | ||
361 | - name="partyBName" | ||
362 | - options={payeeNameOptions} | ||
363 | - onChange={(value: any) => { | ||
364 | - let payee = payees.find((item: any) => { | ||
365 | - return item.payeeName === value; | ||
366 | - }); | ||
367 | - console.log(JSON.stringify(payee)); | ||
368 | - form.setFieldsValue({ | ||
369 | - partyBTaxid: payee.taxId, | ||
370 | - partyBBankAccount: payee.bankAccount, | ||
371 | - partyBOpenBank: payee.openBank, | ||
372 | - partyBAddress: payee.address, | ||
373 | - partyBPhoneNumber: payee.phoneNumber, | ||
374 | - }); | ||
375 | - }} | ||
376 | - label="销方名称" | ||
377 | - colProps={{ | ||
378 | - span: 8, | ||
379 | - }} | ||
380 | - placeholder="请输入名称" | ||
381 | - /> | ||
382 | - | ||
383 | - <ProFormText | ||
384 | - readonly | ||
385 | - width="md" | ||
386 | - name="partyBTaxid" | ||
387 | - label="销方税号" | ||
388 | - colProps={{ | ||
389 | - span: 8, | ||
390 | - }} | ||
391 | - placeholder="请输入名称" | ||
392 | - /> | ||
393 | - <ProFormText | ||
394 | - readonly | ||
395 | - width="md" | ||
396 | - name="partyBOpenBank" | ||
397 | - label="开户银行" | ||
398 | - colProps={{ | ||
399 | - span: 8, | ||
400 | - }} | ||
401 | - placeholder="请输入名称" | ||
402 | - /> | ||
403 | - <ProFormText | ||
404 | - readonly | ||
405 | - width="md" | ||
406 | - name="partyBBankAccount" | ||
407 | - label="银行账号" | ||
408 | - colProps={{ | ||
409 | - span: 8, | ||
410 | - }} | ||
411 | - placeholder="请输入名称" | ||
412 | - /> | ||
413 | - <ProFormText | ||
414 | - readonly | ||
415 | - width="md" | ||
416 | - colProps={{ | ||
417 | - span: 8, | ||
418 | - }} | ||
419 | - name="partyBAddress" | ||
420 | - label="销方地址" | ||
421 | - placeholder="请输入名称" | ||
422 | - /> | ||
423 | - <ProFormText | ||
424 | - readonly | ||
425 | - width="md" | ||
426 | - colProps={{ | ||
427 | - span: 8, | ||
428 | - }} | ||
429 | - name="partyBPhoneNumber" | ||
430 | - label="电话" | ||
431 | - placeholder="请输入名称" | ||
432 | - /> | ||
433 | - </ProForm.Group> | ||
434 | - </ProCard> | ||
435 | - <hr /> | ||
436 | - <ProCard title="发票明细" bordered headerBordered size={'small'}> | ||
437 | - <InvoiceDetailTable | ||
438 | - recordId={id} | ||
439 | - details={detailTableData} | ||
440 | - updateDetails={updateDetails} | ||
441 | - readOnly={readOnly} | ||
442 | - /> | ||
443 | - </ProCard> | ||
444 | - <hr /> | ||
445 | - <ProCard title="备注" bordered headerBordered size={'small'}> | ||
446 | - <ProFormTextArea | ||
447 | - readonly={readOnly} | ||
448 | - name="comment" | ||
449 | - placeholder="请输入备注" | ||
450 | - /> | ||
451 | - </ProCard> | ||
452 | - </ModalForm> | ||
453 | - </Space> | ||
454 | - </> | ||
455 | - ); | ||
456 | -}; |
src/pages/Invoice/waitProcessRecord/index.tsx
1 | +import InvoiceRecordDetailModal from '@/pages/Invoice/InvoiceRecord/components/InvoiceRecordDetailModal'; | ||
1 | import InvoiceModal from '@/pages/Invoice/waitProcessRecord/components/InvoiceModal'; | 2 | import InvoiceModal from '@/pages/Invoice/waitProcessRecord/components/InvoiceModal'; |
2 | -import InvoiceRecordDetailModal from '@/pages/Invoice/waitProcessRecord/components/InvoiceRecordDetailModal'; | ||
3 | import InvoicingModal from '@/pages/Invoice/waitProcessRecord/components/InvoicingModal'; | 3 | import InvoicingModal from '@/pages/Invoice/waitProcessRecord/components/InvoicingModal'; |
4 | import ManualInvoicingModal from '@/pages/Invoice/waitProcessRecord/components/ManualInvoicingModal'; | 4 | import ManualInvoicingModal from '@/pages/Invoice/waitProcessRecord/components/ManualInvoicingModal'; |
5 | import { PAYEE_OPTIONS } from '@/pages/Order/constant'; | 5 | import { PAYEE_OPTIONS } from '@/pages/Order/constant'; |
@@ -258,7 +258,7 @@ const InvoiceRecord = () => { | @@ -258,7 +258,7 @@ const InvoiceRecord = () => { | ||
258 | { | 258 | { |
259 | title: '开票状态', | 259 | title: '开票状态', |
260 | valueType: 'select', | 260 | valueType: 'select', |
261 | - key: 'waitProcessRecordStatus', | 261 | + key: 'status', |
262 | dataIndex: 'status', | 262 | dataIndex: 'status', |
263 | filters: true, | 263 | filters: true, |
264 | onFilter: true, | 264 | onFilter: true, |
@@ -423,6 +423,9 @@ const InvoiceRecord = () => { | @@ -423,6 +423,9 @@ const InvoiceRecord = () => { | ||
423 | key="detail" | 423 | key="detail" |
424 | id={invoiceRecord.id} | 424 | id={invoiceRecord.id} |
425 | setVisible={setInvoiceRecordDetailVisible} | 425 | setVisible={setInvoiceRecordDetailVisible} |
426 | + reloadTable={() => { | ||
427 | + waitDealrecordActionRef?.current?.reload(); | ||
428 | + }} | ||
426 | /> | 429 | /> |
427 | ) : ( | 430 | ) : ( |
428 | '' | 431 | '' |
src/pages/Order/components/CheckModal.tsx
@@ -10,6 +10,7 @@ import { | @@ -10,6 +10,7 @@ import { | ||
10 | } from '@/services'; | 10 | } from '@/services'; |
11 | import { | 11 | import { |
12 | ModalForm, | 12 | ModalForm, |
13 | + ProFormText, | ||
13 | ProFormTextArea, | 14 | ProFormTextArea, |
14 | ProList, | 15 | ProList, |
15 | } from '@ant-design/pro-components'; | 16 | } from '@ant-design/pro-components'; |
@@ -324,6 +325,7 @@ export default ({ | @@ -324,6 +325,7 @@ export default ({ | ||
324 | //财务审核 | 325 | //财务审核 |
325 | const data = await postServiceOrderFinanceCheckOrder({ | 326 | const data = await postServiceOrderFinanceCheckOrder({ |
326 | data: { | 327 | data: { |
328 | + ...values, | ||
327 | checkNotes: values.name, | 329 | checkNotes: values.name, |
328 | ids: subOrderIds, | 330 | ids: subOrderIds, |
329 | checkPassOrReject: isAgree, | 331 | checkPassOrReject: isAgree, |
@@ -586,6 +588,7 @@ export default ({ | @@ -586,6 +588,7 @@ export default ({ | ||
586 | let type = ''; | 588 | let type = ''; |
587 | type = computeType(); | 589 | type = computeType(); |
588 | doCheck({ | 590 | doCheck({ |
591 | + ...values, | ||
589 | pass: true, | 592 | pass: true, |
590 | subOrderIds: subOrderIds, | 593 | subOrderIds: subOrderIds, |
591 | type: type, | 594 | type: type, |
@@ -674,6 +677,12 @@ export default ({ | @@ -674,6 +677,12 @@ export default ({ | ||
674 | )} | 677 | )} |
675 | {checkType(CHECK_TYPE.FINALCIAL) ? ( | 678 | {checkType(CHECK_TYPE.FINALCIAL) ? ( |
676 | <> | 679 | <> |
680 | + <ProFormText | ||
681 | + width="md" | ||
682 | + name="bankStatementSerialNumbersText" | ||
683 | + label="流水号" | ||
684 | + placeholder={'多个流水号用逗号隔开'} | ||
685 | + /> | ||
677 | <div className="pb-4 text-xs decoration-gray-50"> | 686 | <div className="pb-4 text-xs decoration-gray-50"> |
678 | 可复制照片粘贴 | 687 | 可复制照片粘贴 |
679 | </div> | 688 | </div> |
src/pages/Order/components/OrderDrawer.tsx
@@ -11,7 +11,6 @@ import { | @@ -11,7 +11,6 @@ import { | ||
11 | postKingdeeRepMaterialUnit, | 11 | postKingdeeRepMaterialUnit, |
12 | postKingdeeRepMeasureUnit, | 12 | postKingdeeRepMeasureUnit, |
13 | postPrepaidPhoneAvailableList, | 13 | postPrepaidPhoneAvailableList, |
14 | - postResearchGroupsNameSet, | ||
15 | postServiceOrderAddOrder, | 14 | postServiceOrderAddOrder, |
16 | postServiceOrderAfterSalesQuerySnapshotOrder, | 15 | postServiceOrderAfterSalesQuerySnapshotOrder, |
17 | postServiceOrderApplyAfterSales, | 16 | postServiceOrderApplyAfterSales, |
@@ -1203,37 +1202,45 @@ export default ({ onClose, data, subOrders, orderOptType }) => { | @@ -1203,37 +1202,45 @@ export default ({ onClose, data, subOrders, orderOptType }) => { | ||
1203 | placeholder="请输入单位" | 1202 | placeholder="请输入单位" |
1204 | rules={[{ required: true, message: '单位必填' }]} | 1203 | rules={[{ required: true, message: '单位必填' }]} |
1205 | /> | 1204 | /> |
1206 | - <ProFormSelect | ||
1207 | - key={'institutionContactName'} | ||
1208 | - width="md" | ||
1209 | - showSearch | 1205 | + <ProFormText |
1206 | + width="lg" | ||
1207 | + key="institutionContactName" | ||
1210 | name="institutionContactName" | 1208 | name="institutionContactName" |
1211 | - rules={[{ required: true, message: '请输入课题组名称!' }]} | ||
1212 | - request={async (value) => { | ||
1213 | - const keywords = value.keyWords; | ||
1214 | - const res = await postResearchGroupsNameSet({ | ||
1215 | - data: { | ||
1216 | - groupName: keywords, | ||
1217 | - }, | ||
1218 | - }); | ||
1219 | - let options = res?.data?.map((c: any) => { | ||
1220 | - return { | ||
1221 | - label: c, | ||
1222 | - value: c, | ||
1223 | - key: c, | ||
1224 | - }; | ||
1225 | - }); | ||
1226 | - return options; | ||
1227 | - }} | ||
1228 | - fieldProps={{ | ||
1229 | - filterOption() { | ||
1230 | - return true; | ||
1231 | - }, | ||
1232 | - }} | ||
1233 | - debounceTime={1000} | ||
1234 | - label="课题组名称" | ||
1235 | - placeholder="请输入名称" | 1209 | + label="课题组" |
1210 | + placeholder="请输入课题组" | ||
1211 | + rules={[{ required: true, message: '课题组必填' }]} | ||
1236 | /> | 1212 | /> |
1213 | + {/*<ProFormSelect | ||
1214 | + key={'institutionContactName'} | ||
1215 | + width="md" | ||
1216 | + showSearch | ||
1217 | + name="institutionContactName" | ||
1218 | + rules={[{ required: true, message: '请输入课题组名称!' }]} | ||
1219 | + request={async (value) => { | ||
1220 | + const keywords = value.keyWords; | ||
1221 | + const res = await postResearchGroupsNameSet({ | ||
1222 | + data: { | ||
1223 | + groupName: keywords, | ||
1224 | + }, | ||
1225 | + }); | ||
1226 | + let options = res?.data?.map((c: any) => { | ||
1227 | + return { | ||
1228 | + label: c, | ||
1229 | + value: c, | ||
1230 | + key: c, | ||
1231 | + }; | ||
1232 | + }); | ||
1233 | + return options; | ||
1234 | + }} | ||
1235 | + fieldProps={{ | ||
1236 | + filterOption() { | ||
1237 | + return true; | ||
1238 | + }, | ||
1239 | + }} | ||
1240 | + debounceTime={1000} | ||
1241 | + label="课题组名称" | ||
1242 | + placeholder="请输入名称" | ||
1243 | + />*/} | ||
1237 | <div | 1244 | <div |
1238 | style={{ | 1245 | style={{ |
1239 | display: 'flex', | 1246 | display: 'flex', |
src/pages/Order/index.tsx
@@ -4206,7 +4206,7 @@ const OrderPage = () => { | @@ -4206,7 +4206,7 @@ const OrderPage = () => { | ||
4206 | onClick: () => {}, | 4206 | onClick: () => {}, |
4207 | }; | 4207 | }; |
4208 | 4208 | ||
4209 | - //导出按钮配置 | 4209 | + //一键审核按钮配置 |
4210 | const auditItems: MenuProps['items'] = [ | 4210 | const auditItems: MenuProps['items'] = [ |
4211 | { | 4211 | { |
4212 | label: '后置审核', | 4212 | label: '后置审核', |