Commit 19e4d1a16036d533bb50fb37aef943e609030178
Merge branch 'feature-installment2' into 'dev'
Feature installment2 See merge request !57
Showing
14 changed files
with
509 additions
and
110 deletions
src/pages/Invoice/Invoice/index.tsx
@@ -52,6 +52,11 @@ const InvoiceRecord = () => { | @@ -52,6 +52,11 @@ const InvoiceRecord = () => { | ||
52 | let dataIndex = item.dataIndex; | 52 | let dataIndex = item.dataIndex; |
53 | let dataType = item.valueType; | 53 | let dataType = item.valueType; |
54 | 54 | ||
55 | + // 如果是mainOrderIds列并且已经有自己的render函数,不要覆盖 | ||
56 | + if (dataIndex === 'mainOrderIds' && item.render) { | ||
57 | + return newItem; | ||
58 | + } | ||
59 | + | ||
55 | newItem.render = (text, record) => { | 60 | newItem.render = (text, record) => { |
56 | let textValue = record[dataIndex]; | 61 | let textValue = record[dataIndex]; |
57 | 62 | ||
@@ -108,16 +113,17 @@ const InvoiceRecord = () => { | @@ -108,16 +113,17 @@ const InvoiceRecord = () => { | ||
108 | if (record.paths?.includes('edit')) { | 113 | if (record.paths?.includes('edit')) { |
109 | btns.push( | 114 | btns.push( |
110 | <a | 115 | <a |
116 | + className="p-0" | ||
111 | key="editable" | 117 | key="editable" |
112 | onClick={() => { | 118 | onClick={() => { |
113 | action?.startEditable?.(record.id); | 119 | action?.startEditable?.(record.id); |
114 | }} | 120 | }} |
121 | + style={{ marginRight: 8, whiteSpace: 'nowrap' }} | ||
115 | > | 122 | > |
116 | 编辑 | 123 | 编辑 |
117 | </a>, | 124 | </a>, |
118 | ); | 125 | ); |
119 | } | 126 | } |
120 | - | ||
121 | if (record.paths?.includes('writeOff') && !record.writeOffId) { | 127 | if (record.paths?.includes('writeOff') && !record.writeOffId) { |
122 | btns.push( | 128 | btns.push( |
123 | <InvoiceWriteOffModal | 129 | <InvoiceWriteOffModal |
src/pages/Invoice/constant.tsx
1 | +import EllipsisDiv from '@/components/Div/EllipsisDiv'; | ||
1 | import { enumToProTableEnumValue } from '@/utils'; | 2 | import { enumToProTableEnumValue } from '@/utils'; |
2 | import { PAYEE_OPTIONS } from '../Order/constant'; | 3 | import { PAYEE_OPTIONS } from '../Order/constant'; |
3 | 4 | ||
@@ -45,6 +46,53 @@ export const INVOICE_COLUMNS = [ | @@ -45,6 +46,53 @@ export const INVOICE_COLUMNS = [ | ||
45 | width: 100, | 46 | width: 100, |
46 | }, | 47 | }, |
47 | { | 48 | { |
49 | + dataIndex: 'mainOrderIds', | ||
50 | + title: '主订单id', | ||
51 | + valueType: 'text', | ||
52 | + width: 160, | ||
53 | + hideInTable: false, | ||
54 | + hideInSearch: true, | ||
55 | + readonly: true, | ||
56 | + render: (text: any, record: any) => { | ||
57 | + if (!record.mainOrderIds || record.mainOrderIds.length === 0) { | ||
58 | + return '-'; | ||
59 | + } | ||
60 | + | ||
61 | + let content = ''; | ||
62 | + | ||
63 | + // 直接从text参数中处理,可能是已处理过的数组 | ||
64 | + if (text && Array.isArray(text)) { | ||
65 | + content = text.join(', '); | ||
66 | + } | ||
67 | + // 如果record.mainOrderIds是数组,直接join | ||
68 | + else if (Array.isArray(record.mainOrderIds)) { | ||
69 | + content = record.mainOrderIds.join(', '); | ||
70 | + } | ||
71 | + // 如果是字符串,检查是否为JSON格式的数组 | ||
72 | + else if (typeof record.mainOrderIds === 'string') { | ||
73 | + try { | ||
74 | + // 尝试解析JSON | ||
75 | + const parsedData = JSON.parse(record.mainOrderIds); | ||
76 | + if (Array.isArray(parsedData)) { | ||
77 | + content = parsedData.join(', '); | ||
78 | + } else { | ||
79 | + content = record.mainOrderIds; | ||
80 | + } | ||
81 | + } catch (e) { | ||
82 | + // 不是JSON格式,使用原始字符串 | ||
83 | + content = record.mainOrderIds; | ||
84 | + } | ||
85 | + } | ||
86 | + // 其他情况直接返回原值 | ||
87 | + else { | ||
88 | + content = String(record.mainOrderIds); | ||
89 | + } | ||
90 | + | ||
91 | + // 使用EllipsisDiv组件显示带省略号的内容 | ||
92 | + return <EllipsisDiv text={content} />; | ||
93 | + }, | ||
94 | + }, | ||
95 | + { | ||
48 | dataIndex: 'mainOrderId', | 96 | dataIndex: 'mainOrderId', |
49 | title: '主订单id', | 97 | title: '主订单id', |
50 | valueType: 'text', | 98 | valueType: 'text', |
@@ -65,7 +113,7 @@ export const INVOICE_COLUMNS = [ | @@ -65,7 +113,7 @@ export const INVOICE_COLUMNS = [ | ||
65 | title: '状态', | 113 | title: '状态', |
66 | dataIndex: 'statusText', | 114 | dataIndex: 'statusText', |
67 | valueType: 'text', | 115 | valueType: 'text', |
68 | - width: 180, | 116 | + width: 100, |
69 | readonly: true, | 117 | readonly: true, |
70 | hideInSearch: true, | 118 | hideInSearch: true, |
71 | }, | 119 | }, |
@@ -73,7 +121,7 @@ export const INVOICE_COLUMNS = [ | @@ -73,7 +121,7 @@ export const INVOICE_COLUMNS = [ | ||
73 | title: '状态', | 121 | title: '状态', |
74 | dataIndex: 'writeOffIdIsNull', | 122 | dataIndex: 'writeOffIdIsNull', |
75 | valueType: 'select', | 123 | valueType: 'select', |
76 | - width: 100, | 124 | + width: 80, |
77 | valueEnum: { | 125 | valueEnum: { |
78 | true: { | 126 | true: { |
79 | text: '未核销', | 127 | text: '未核销', |
src/pages/Order/Order/index.tsx
@@ -120,7 +120,7 @@ const OrderPage = () => { | @@ -120,7 +120,7 @@ const OrderPage = () => { | ||
120 | <div className="order-page-container"> | 120 | <div className="order-page-container"> |
121 | <div id="resizeDiv"></div> | 121 | <div id="resizeDiv"></div> |
122 | <div id="resizeDiv"></div> | 122 | <div id="resizeDiv"></div> |
123 | - {roleCode !== 'SALES_MANAGER' && ( | 123 | + {roleCode === 'SALES_MANAGER' && ( |
124 | <Modal | 124 | <Modal |
125 | title="订单预警提醒" | 125 | title="订单预警提醒" |
126 | open={open} | 126 | open={open} |
src/pages/Order/OrderList/CheckModal.tsx
@@ -707,12 +707,6 @@ export default ({ | @@ -707,12 +707,6 @@ export default ({ | ||
707 | </Image.PreviewGroup> | 707 | </Image.PreviewGroup> |
708 | </div> | 708 | </div> |
709 | </Col> | 709 | </Col> |
710 | - <Col span={24}> | ||
711 | - <div className="mb-2"> | ||
712 | - <span className="font-semibold">备注:</span> | ||
713 | - <span>{data?.installmentComment || '-'}</span> | ||
714 | - </div> | ||
715 | - </Col> | ||
716 | </Row> | 710 | </Row> |
717 | <Divider></Divider> | 711 | <Divider></Divider> |
718 | </> | 712 | </> |
src/pages/Order/OrderList/HirePurchaseUploadPayBillModal.tsx
@@ -5,7 +5,7 @@ import { | @@ -5,7 +5,7 @@ import { | ||
5 | } from '@/services'; | 5 | } from '@/services'; |
6 | import { transImageFile } from '@/utils'; | 6 | import { transImageFile } from '@/utils'; |
7 | import { PlusOutlined } from '@ant-design/icons'; | 7 | import { PlusOutlined } from '@ant-design/icons'; |
8 | -import { Button, Form, Input, Modal, Radio, Upload, message } from 'antd'; | 8 | +import { Button, Form, Input, Modal, Upload, message } from 'antd'; |
9 | import { RcFile } from 'antd/lib/upload'; | 9 | import { RcFile } from 'antd/lib/upload'; |
10 | import { UploadFile, UploadProps } from 'antd/lib/upload/interface'; | 10 | import { UploadFile, UploadProps } from 'antd/lib/upload/interface'; |
11 | import { cloneDeep } from 'lodash'; | 11 | import { cloneDeep } from 'lodash'; |
@@ -41,7 +41,7 @@ const HirePurchaseUploadPayBillModal: React.FC< | @@ -41,7 +41,7 @@ const HirePurchaseUploadPayBillModal: React.FC< | ||
41 | const remainingMoney = totalPayment - installedMoney; | 41 | const remainingMoney = totalPayment - installedMoney; |
42 | const [form] = Form.useForm(); | 42 | const [form] = Form.useForm(); |
43 | const [fileList, setFileList] = useState<UploadFile[]>([]); | 43 | const [fileList, setFileList] = useState<UploadFile[]>([]); |
44 | - const [paymentType, setPaymentType] = useState<string>('INSTALLMENT'); | 44 | + const [paymentType] = useState<string>('INSTALLMENT'); |
45 | const [previewOpen, setPreviewOpen] = useState(false); | 45 | const [previewOpen, setPreviewOpen] = useState(false); |
46 | const [previewImage, setPreviewImage] = useState(''); | 46 | const [previewImage, setPreviewImage] = useState(''); |
47 | const [previewTitle, setPreviewTitle] = useState(''); | 47 | const [previewTitle, setPreviewTitle] = useState(''); |
@@ -65,17 +65,17 @@ const HirePurchaseUploadPayBillModal: React.FC< | @@ -65,17 +65,17 @@ const HirePurchaseUploadPayBillModal: React.FC< | ||
65 | </div> | 65 | </div> |
66 | ); | 66 | ); |
67 | 67 | ||
68 | - const handleTypeChange = (e: any) => { | ||
69 | - const newType = e.target.value; | ||
70 | - setPaymentType(newType); | 68 | + // const handleTypeChange = (e: any) => { |
69 | + // const newType = e.target.value; | ||
70 | + // setPaymentType(newType); | ||
71 | 71 | ||
72 | - // 如果选择全部回款,自动填入待回款金额 | ||
73 | - if (newType === 'FULL') { | ||
74 | - form.setFieldsValue({ | ||
75 | - amount: remainingMoney.toFixed(2), | ||
76 | - }); | ||
77 | - } | ||
78 | - }; | 72 | + // // 如果选择全部回款,自动填入待回款金额 |
73 | + // if (newType === 'FULL') { | ||
74 | + // form.setFieldsValue({ | ||
75 | + // amount: remainingMoney.toFixed(2), | ||
76 | + // }); | ||
77 | + // } | ||
78 | + // }; | ||
79 | 79 | ||
80 | // 验证回款金额不能超过待回款金额 | 80 | // 验证回款金额不能超过待回款金额 |
81 | const validateAmount = (_: any, value: string) => { | 81 | const validateAmount = (_: any, value: string) => { |
@@ -332,18 +332,6 @@ const HirePurchaseUploadPayBillModal: React.FC< | @@ -332,18 +332,6 @@ const HirePurchaseUploadPayBillModal: React.FC< | ||
332 | <span>{remainingMoney.toFixed(2)}元</span> | 332 | <span>{remainingMoney.toFixed(2)}元</span> |
333 | </div> | 333 | </div> |
334 | </div> | 334 | </div> |
335 | - | ||
336 | - <Form.Item | ||
337 | - label="回款类型" | ||
338 | - name="paymentType" | ||
339 | - initialValue={paymentType} | ||
340 | - > | ||
341 | - <Radio.Group onChange={handleTypeChange}> | ||
342 | - <Radio value="INSTALLMENT">分期回款</Radio> | ||
343 | - <Radio value="FULL">全部回款</Radio> | ||
344 | - </Radio.Group> | ||
345 | - </Form.Item> | ||
346 | - | ||
347 | <Form.Item | 335 | <Form.Item |
348 | label="回款金额" | 336 | label="回款金额" |
349 | name="amount" | 337 | name="amount" |
@@ -371,10 +359,6 @@ const HirePurchaseUploadPayBillModal: React.FC< | @@ -371,10 +359,6 @@ const HirePurchaseUploadPayBillModal: React.FC< | ||
371 | : ''} | 359 | : ''} |
372 | </Upload> | 360 | </Upload> |
373 | </Form.Item> | 361 | </Form.Item> |
374 | - | ||
375 | - <Form.Item label="备注" name="remarks"> | ||
376 | - <Input.TextArea rows={4} placeholder="请输入备注信息" /> | ||
377 | - </Form.Item> | ||
378 | </Form> | 362 | </Form> |
379 | </Modal> | 363 | </Modal> |
380 | 364 |
src/pages/Order/OrderList/OrderList.tsx
@@ -2,6 +2,7 @@ import ButtonConfirm from '@/components/ButtomConfirm'; | @@ -2,6 +2,7 @@ import ButtonConfirm from '@/components/ButtomConfirm'; | ||
2 | import { RESPONSE_CODE } from '@/constants/enum'; | 2 | import { RESPONSE_CODE } from '@/constants/enum'; |
3 | import ImportExpressBillModal from '@/pages/Order/OrderList/ImportExpressBillModal'; | 3 | import ImportExpressBillModal from '@/pages/Order/OrderList/ImportExpressBillModal'; |
4 | import InvoicingDrawerForm from '@/pages/Order/OrderList/InvoicingDrawerForm'; | 4 | import InvoicingDrawerForm from '@/pages/Order/OrderList/InvoicingDrawerForm'; |
5 | +import PaymentRecordModal from '@/pages/Order/OrderList/PaymentRecordModal'; | ||
5 | import ReissueModal from '@/pages/Order/OrderList/ReissueModal'; | 6 | import ReissueModal from '@/pages/Order/OrderList/ReissueModal'; |
6 | import ReissueModal_old from '@/pages/Order/OrderList/ReissueModal_old'; | 7 | import ReissueModal_old from '@/pages/Order/OrderList/ReissueModal_old'; |
7 | import { | 8 | import { |
@@ -151,6 +152,8 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) => { | @@ -151,6 +152,8 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) => { | ||
151 | hirePurchaseUploadPayBillModalVisible, | 152 | hirePurchaseUploadPayBillModalVisible, |
152 | setHirePurchaseUploadPayBillModalVisible, | 153 | setHirePurchaseUploadPayBillModalVisible, |
153 | ] = useState<boolean>(false); | 154 | ] = useState<boolean>(false); |
155 | + const [paymentRecordModalVisible, setPaymentRecordModalVisible] = | ||
156 | + useState<boolean>(false); | ||
154 | const [ | 157 | const [ |
155 | feedbackRegistrationModalVisible, | 158 | feedbackRegistrationModalVisible, |
156 | setFeedbackRegistrationModalVisible, | 159 | setFeedbackRegistrationModalVisible, |
@@ -1454,20 +1457,6 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) => { | @@ -1454,20 +1457,6 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) => { | ||
1454 | }} | 1457 | }} |
1455 | /> | 1458 | /> |
1456 | )} | 1459 | )} |
1457 | - {optRecord.paths?.includes('uploadPaymentReceiptBill') ? ( | ||
1458 | - <Button | ||
1459 | - className="p-0" | ||
1460 | - type="link" | ||
1461 | - onClick={() => { | ||
1462 | - createOptObject(optRecord.id, record.id); | ||
1463 | - setUploadPayBillModalVisible(true); | ||
1464 | - }} | ||
1465 | - > | ||
1466 | - 回款 | ||
1467 | - </Button> | ||
1468 | - ) : ( | ||
1469 | - '' | ||
1470 | - )} | ||
1471 | 1460 | ||
1472 | {optRecord.paths?.includes('confirmReissue_old') ? ( | 1461 | {optRecord.paths?.includes('confirmReissue_old') ? ( |
1473 | <Button | 1462 | <Button |
@@ -1536,22 +1525,6 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) => { | @@ -1536,22 +1525,6 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) => { | ||
1536 | '' | 1525 | '' |
1537 | )} | 1526 | )} |
1538 | 1527 | ||
1539 | - {optRecord.paths?.includes('auditPaymentReceipt') ? ( | ||
1540 | - <Button | ||
1541 | - className="p-0" | ||
1542 | - type="link" | ||
1543 | - onClick={() => { | ||
1544 | - createOptObject(optRecord.id, record.id); | ||
1545 | - setCheckVisible(true); | ||
1546 | - setOrderCheckType(CHECK_TYPE.PAYMENT_RECEIPTS_AUDIT); | ||
1547 | - }} | ||
1548 | - > | ||
1549 | - 回款审核 | ||
1550 | - </Button> | ||
1551 | - ) : ( | ||
1552 | - '' | ||
1553 | - )} | ||
1554 | - | ||
1555 | {optRecord.paths?.includes('modifiedAuditRequest') ? ( | 1528 | {optRecord.paths?.includes('modifiedAuditRequest') ? ( |
1556 | <Button | 1529 | <Button |
1557 | className="p-0" | 1530 | className="p-0" |
@@ -2986,6 +2959,21 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) => { | @@ -2986,6 +2959,21 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) => { | ||
2986 | '' | 2959 | '' |
2987 | )} | 2960 | )} |
2988 | 2961 | ||
2962 | + {record.paths?.includes('refundHistory') ? ( | ||
2963 | + <Button | ||
2964 | + className="p-0" | ||
2965 | + type="link" | ||
2966 | + onClick={() => { | ||
2967 | + createOptObject(record.id, record.id); | ||
2968 | + setPaymentRecordModalVisible(true); | ||
2969 | + }} | ||
2970 | + > | ||
2971 | + 付款记录 | ||
2972 | + </Button> | ||
2973 | + ) : ( | ||
2974 | + '' | ||
2975 | + )} | ||
2976 | + | ||
2989 | {/* 输出日志以检查权限和支付方式 */} | 2977 | {/* 输出日志以检查权限和支付方式 */} |
2990 | {console.log('Order info:', record.id, record.paths)} | 2978 | {console.log('Order info:', record.id, record.paths)} |
2991 | {record.paths?.includes('auditPartialPaymentReceipt') ? ( | 2979 | {record.paths?.includes('auditPartialPaymentReceipt') ? ( |
@@ -4379,6 +4367,13 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) => { | @@ -4379,6 +4367,13 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) => { | ||
4379 | refreshTable(); | 4367 | refreshTable(); |
4380 | }} | 4368 | }} |
4381 | defaultValue={0} | 4369 | defaultValue={0} |
4370 | + style={{ | ||
4371 | + display: 'flex', | ||
4372 | + flexDirection: 'row', | ||
4373 | + alignItems: 'center', | ||
4374 | + gap: 8, | ||
4375 | + whiteSpace: 'nowrap', | ||
4376 | + }} | ||
4382 | > | 4377 | > |
4383 | {radios} | 4378 | {radios} |
4384 | </Radio.Group> | 4379 | </Radio.Group> |
@@ -5366,6 +5361,17 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) => { | @@ -5366,6 +5361,17 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) => { | ||
5366 | /> | 5361 | /> |
5367 | )} | 5362 | )} |
5368 | 5363 | ||
5364 | + {paymentRecordModalVisible && currentOptMainId && ( | ||
5365 | + <PaymentRecordModal | ||
5366 | + visible={paymentRecordModalVisible} | ||
5367 | + mainOrderId={currentOptMainId} | ||
5368 | + onClose={() => { | ||
5369 | + setPaymentRecordModalVisible(false); | ||
5370 | + clearOptObject(); | ||
5371 | + }} | ||
5372 | + /> | ||
5373 | + )} | ||
5374 | + | ||
5369 | {feedbackRegistrationModalVisible && ( | 5375 | {feedbackRegistrationModalVisible && ( |
5370 | <FeedbackRegistrationModal | 5376 | <FeedbackRegistrationModal |
5371 | setVisible={(val: boolean) => { | 5377 | setVisible={(val: boolean) => { |
src/pages/Order/OrderList/PaymentRecordModal.tsx
0 → 100644
1 | +import { postServiceOrderRefundHistory } from '@/services'; | ||
2 | +import { Button, Empty, Image, Modal } from 'antd'; | ||
3 | +import React, { useEffect, useState } from 'react'; | ||
4 | + | ||
5 | +interface PaymentRecordModalProps { | ||
6 | + visible: boolean; | ||
7 | + mainOrderId: number; | ||
8 | + onClose: () => void; | ||
9 | +} | ||
10 | + | ||
11 | +interface PaymentRecord { | ||
12 | + id: number; | ||
13 | + mainOrderId: number; | ||
14 | + refundMoney: number; | ||
15 | + createTime: string; | ||
16 | + annex: string; | ||
17 | + isAudit: number; | ||
18 | + isDel: number; | ||
19 | + updateTime: string | null; | ||
20 | + paymentReceiptAnnexPartial: string | null; | ||
21 | +} | ||
22 | + | ||
23 | +const PaymentRecordModal: React.FC<PaymentRecordModalProps> = ({ | ||
24 | + visible, | ||
25 | + mainOrderId, | ||
26 | + onClose, | ||
27 | +}) => { | ||
28 | + const [paymentRecords, setPaymentRecords] = useState<PaymentRecord[]>([]); | ||
29 | + | ||
30 | + const fetchPaymentRecords = async () => { | ||
31 | + if (!mainOrderId) return; | ||
32 | + | ||
33 | + try { | ||
34 | + const response = await postServiceOrderRefundHistory({ | ||
35 | + data: { mainOrderId }, | ||
36 | + }); | ||
37 | + | ||
38 | + if (response.result === 0 && response.data) { | ||
39 | + setPaymentRecords(response.data); | ||
40 | + } else { | ||
41 | + setPaymentRecords([]); | ||
42 | + } | ||
43 | + } catch (error) { | ||
44 | + console.error('Failed to fetch payment records:', error); | ||
45 | + setPaymentRecords([]); | ||
46 | + } | ||
47 | + }; | ||
48 | + | ||
49 | + useEffect(() => { | ||
50 | + if (visible && mainOrderId) { | ||
51 | + fetchPaymentRecords(); | ||
52 | + } | ||
53 | + }, [visible, mainOrderId]); | ||
54 | + | ||
55 | + const parseAnnex = (annexString: string): string[] => { | ||
56 | + try { | ||
57 | + const parsed = JSON.parse(annexString); | ||
58 | + return parsed.map((item: { url: string }) => item.url); | ||
59 | + } catch (e) { | ||
60 | + console.error('Failed to parse annex:', e); | ||
61 | + return []; | ||
62 | + } | ||
63 | + }; | ||
64 | + | ||
65 | + return ( | ||
66 | + <Modal | ||
67 | + title="付款记录" | ||
68 | + open={visible} | ||
69 | + onCancel={onClose} | ||
70 | + footer={[ | ||
71 | + <Button key="close" onClick={onClose}> | ||
72 | + 关闭 | ||
73 | + </Button>, | ||
74 | + ]} | ||
75 | + width={500} | ||
76 | + > | ||
77 | + <div className="payment-record-container"> | ||
78 | + {paymentRecords.length > 0 ? ( | ||
79 | + paymentRecords.map((record, index) => { | ||
80 | + const imageUrls = record.annex ? parseAnnex(record.annex) : []; | ||
81 | + | ||
82 | + return ( | ||
83 | + <div key={record.id} className="payment-record-item"> | ||
84 | + <div className="payment-record-header"> | ||
85 | + {index < paymentRecords.length - 1 && ( | ||
86 | + <div className="payment-record-line" /> | ||
87 | + )} | ||
88 | + <div className="payment-record-circle" /> | ||
89 | + </div> | ||
90 | + <div className="payment-record-content"> | ||
91 | + <div className="payment-record-info"> | ||
92 | + <p> | ||
93 | + <strong>提交时间:</strong> {record.createTime} | ||
94 | + </p> | ||
95 | + <p> | ||
96 | + <strong>付款金额:</strong>{' '} | ||
97 | + {record.refundMoney.toFixed(2)} | ||
98 | + </p> | ||
99 | + {imageUrls.length > 0 && ( | ||
100 | + <p> | ||
101 | + <strong>付款凭证:</strong> | ||
102 | + </p> | ||
103 | + )} | ||
104 | + </div> | ||
105 | + {imageUrls.length > 0 && ( | ||
106 | + <div className="payment-record-images"> | ||
107 | + <Image.PreviewGroup> | ||
108 | + {imageUrls.map((url, imgIndex) => ( | ||
109 | + <Image | ||
110 | + key={imgIndex} | ||
111 | + width={120} | ||
112 | + src={url} | ||
113 | + className="payment-record-image" | ||
114 | + /> | ||
115 | + ))} | ||
116 | + </Image.PreviewGroup> | ||
117 | + </div> | ||
118 | + )} | ||
119 | + </div> | ||
120 | + </div> | ||
121 | + ); | ||
122 | + }) | ||
123 | + ) : ( | ||
124 | + <Empty description="暂无付款记录" className="payment-record-empty" /> | ||
125 | + )} | ||
126 | + </div> | ||
127 | + </Modal> | ||
128 | + ); | ||
129 | +}; | ||
130 | + | ||
131 | +export default PaymentRecordModal; |
src/pages/Order/OrderList/UploadPayBillModal.tsx
@@ -216,10 +216,24 @@ export default ({ setVisible, subOrders, mainOrder, onClose }) => { | @@ -216,10 +216,24 @@ export default ({ setVisible, subOrders, mainOrder, onClose }) => { | ||
216 | }} | 216 | }} |
217 | onOpenChange={setVisible} | 217 | onOpenChange={setVisible} |
218 | > | 218 | > |
219 | - <div className="pb-4 text-xs decoration-gray-50">可复制照片粘贴</div> | ||
220 | - <Upload {...props}> | ||
221 | - {fileList.length < COMFIR_RECEIPT_IMAGES_NUMBER ? uploadButton : ''} | ||
222 | - </Upload> | 219 | + <div className="pb-4 text-base font-medium"> |
220 | + 付款金额:¥{mainOrder?.totalPayment?.toLocaleString() || '0.00'} | ||
221 | + </div> | ||
222 | + <div className="flex items-start pb-4 text-base font-medium"> | ||
223 | + <div>付款凭证:</div> | ||
224 | + | ||
225 | + <div className="flex flex-col items-start ml-2"> | ||
226 | + <div className="mb-1 text-xs decoration-gray-50"> | ||
227 | + 可复制照片粘贴 | ||
228 | + </div> | ||
229 | + | ||
230 | + <Upload {...props}> | ||
231 | + {fileList.length < COMFIR_RECEIPT_IMAGES_NUMBER | ||
232 | + ? uploadButton | ||
233 | + : null} | ||
234 | + </Upload> | ||
235 | + </div> | ||
236 | + </div> | ||
223 | </ModalForm> | 237 | </ModalForm> |
224 | 238 | ||
225 | <Modal | 239 | <Modal |
src/pages/Order/OrderList/index.css
@@ -2,6 +2,14 @@ | @@ -2,6 +2,14 @@ | ||
2 | margin-inline: 0 !important; | 2 | margin-inline: 0 !important; |
3 | } | 3 | } |
4 | 4 | ||
5 | +.order-page-container .ant-table-cell { | ||
6 | + word-break: break-word; | ||
7 | + white-space: normal !important; | ||
8 | + overflow: hidden; | ||
9 | + max-width: 500px; | ||
10 | + box-sizing: border-box; | ||
11 | +} | ||
12 | + | ||
5 | .order-page-container td { | 13 | .order-page-container td { |
6 | font-family: 'San Francisco', 'Helvetica Neue', Helvetica, Arial, | 14 | font-family: 'San Francisco', 'Helvetica Neue', Helvetica, Arial, |
7 | 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', 'Heiti SC', | 15 | 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', 'Heiti SC', |
@@ -53,6 +61,8 @@ | @@ -53,6 +61,8 @@ | ||
53 | .order-page-container .ant-table-thead .ant-table-cell { | 61 | .order-page-container .ant-table-thead .ant-table-cell { |
54 | background-color: #fff !important; | 62 | background-color: #fff !important; |
55 | border-radius: 8px !important; | 63 | border-radius: 8px !important; |
64 | + overflow: hidden; | ||
65 | + white-space: normal !important; | ||
56 | } | 66 | } |
57 | 67 | ||
58 | #sub-table tbody td { | 68 | #sub-table tbody td { |
@@ -98,3 +108,78 @@ | @@ -98,3 +108,78 @@ | ||
98 | 108 | ||
99 | /* 设置行与行之间分割线的颜色 */ | 109 | /* 设置行与行之间分割线的颜色 */ |
100 | } | 110 | } |
111 | + | ||
112 | +/* 付款记录样式 */ | ||
113 | +.payment-record-container { | ||
114 | + padding: 10px 0; | ||
115 | +} | ||
116 | + | ||
117 | +.payment-record-item { | ||
118 | + position: relative; | ||
119 | + display: flex; | ||
120 | + margin-bottom: 16px; | ||
121 | +} | ||
122 | + | ||
123 | +.payment-record-header { | ||
124 | + position: relative; | ||
125 | + width: 24px; | ||
126 | + margin-right: 12px; | ||
127 | +} | ||
128 | + | ||
129 | +.payment-record-line { | ||
130 | + position: absolute; | ||
131 | + top: 0; | ||
132 | + bottom: 0; | ||
133 | + left: 50%; | ||
134 | + width: 1px; | ||
135 | + background-color: #e8e8e8; | ||
136 | + transform: translateX(-50%); | ||
137 | + z-index: 1; | ||
138 | +} | ||
139 | + | ||
140 | +.payment-record-circle { | ||
141 | + position: absolute; | ||
142 | + top: 12px; | ||
143 | + left: 50%; | ||
144 | + width: 12px; | ||
145 | + height: 12px; | ||
146 | + background-color: #d4b106; | ||
147 | + border-radius: 50%; | ||
148 | + transform: translateX(-50%); | ||
149 | + z-index: 2; | ||
150 | +} | ||
151 | + | ||
152 | +.payment-record-content { | ||
153 | + flex: 1; | ||
154 | + background-color: #f5f5f5; | ||
155 | + border-radius: 8px; | ||
156 | + padding: 12px 16px; | ||
157 | +} | ||
158 | + | ||
159 | +.payment-record-info p { | ||
160 | + margin-bottom: 8px; | ||
161 | +} | ||
162 | + | ||
163 | +.payment-record-images { | ||
164 | + display: flex; | ||
165 | + flex-wrap: wrap; | ||
166 | + gap: 8px; | ||
167 | + margin-top: 8px; | ||
168 | +} | ||
169 | + | ||
170 | +.payment-record-image { | ||
171 | + border: 1px solid #e8e8e8; | ||
172 | + border-radius: 4px; | ||
173 | +} | ||
174 | + | ||
175 | +.payment-record-divider { | ||
176 | + height: 1px; | ||
177 | + background-color: #e8e8e8; | ||
178 | + margin: 16px 0; | ||
179 | +} | ||
180 | + | ||
181 | +.payment-record-empty { | ||
182 | + text-align: center; | ||
183 | + color: #999; | ||
184 | + padding: 20px 0; | ||
185 | +} |
src/pages/Order/OrderList/index.less
@@ -106,3 +106,78 @@ | @@ -106,3 +106,78 @@ | ||
106 | // .order-tooltip .ant-tooltip-inner{ | 106 | // .order-tooltip .ant-tooltip-inner{ |
107 | // color: black !important; | 107 | // color: black !important; |
108 | // } | 108 | // } |
109 | + | ||
110 | +/* 付款记录样式 */ | ||
111 | +.payment-record-container { | ||
112 | + padding: 10px 0; | ||
113 | +} | ||
114 | + | ||
115 | +.payment-record-item { | ||
116 | + position: relative; | ||
117 | + display: flex; | ||
118 | + margin-bottom: 16px; | ||
119 | +} | ||
120 | + | ||
121 | +.payment-record-header { | ||
122 | + position: relative; | ||
123 | + width: 24px; | ||
124 | + margin-right: 12px; | ||
125 | +} | ||
126 | + | ||
127 | +.payment-record-line { | ||
128 | + position: absolute; | ||
129 | + top: 0; | ||
130 | + bottom: 0; | ||
131 | + left: 50%; | ||
132 | + width: 1px; | ||
133 | + background-color: #e8e8e8; | ||
134 | + transform: translateX(-50%); | ||
135 | + z-index: 1; | ||
136 | +} | ||
137 | + | ||
138 | +.payment-record-circle { | ||
139 | + position: absolute; | ||
140 | + top: 12px; | ||
141 | + left: 50%; | ||
142 | + width: 12px; | ||
143 | + height: 12px; | ||
144 | + background-color: #d4b106; | ||
145 | + border-radius: 50%; | ||
146 | + transform: translateX(-50%); | ||
147 | + z-index: 2; | ||
148 | +} | ||
149 | + | ||
150 | +.payment-record-content { | ||
151 | + flex: 1; | ||
152 | + background-color: #f5f5f5; | ||
153 | + border-radius: 8px; | ||
154 | + padding: 12px 16px; | ||
155 | +} | ||
156 | + | ||
157 | +.payment-record-info p { | ||
158 | + margin-bottom: 8px; | ||
159 | +} | ||
160 | + | ||
161 | +.payment-record-images { | ||
162 | + display: flex; | ||
163 | + flex-wrap: wrap; | ||
164 | + gap: 8px; | ||
165 | + margin-top: 8px; | ||
166 | +} | ||
167 | + | ||
168 | +.payment-record-image { | ||
169 | + border: 1px solid #e8e8e8; | ||
170 | + border-radius: 4px; | ||
171 | +} | ||
172 | + | ||
173 | +.payment-record-divider { | ||
174 | + height: 1px; | ||
175 | + background-color: #e8e8e8; | ||
176 | + margin: 16px 0; | ||
177 | +} | ||
178 | + | ||
179 | +.payment-record-empty { | ||
180 | + text-align: center; | ||
181 | + color: #999; | ||
182 | + padding: 20px 0; | ||
183 | +} |
src/pages/OrderReport/index.tsx
@@ -181,7 +181,6 @@ const OrderReportPage = () => { | @@ -181,7 +181,6 @@ const OrderReportPage = () => { | ||
181 | }, [selectedMonth, selectedYear]); | 181 | }, [selectedMonth, selectedYear]); |
182 | 182 | ||
183 | useEffect(() => { | 183 | useEffect(() => { |
184 | - loadData(); | ||
185 | getSalesCodeOptions(); | 184 | getSalesCodeOptions(); |
186 | }, []); | 185 | }, []); |
187 | 186 |
src/pages/ResearchGroup/ResearchGroup/constant.tsx
@@ -20,7 +20,6 @@ export const RESEARCH_GROUP_COLUMNS = [ | @@ -20,7 +20,6 @@ export const RESEARCH_GROUP_COLUMNS = [ | ||
20 | key: 'id', | 20 | key: 'id', |
21 | valueType: 'index', | 21 | valueType: 'index', |
22 | hideInSearch: true, | 22 | hideInSearch: true, |
23 | - hideInTable: true, | ||
24 | }, | 23 | }, |
25 | { | 24 | { |
26 | title: '课题组名称', | 25 | title: '课题组名称', |
src/services/definition.ts
@@ -1601,7 +1601,6 @@ export interface InstallmentPaymentDTO { | @@ -1601,7 +1601,6 @@ export interface InstallmentPaymentDTO { | ||
1601 | /** | 1601 | /** |
1602 | * @description | 1602 | * @description |
1603 | * 分期付款金额 | 1603 | * 分期付款金额 |
1604 | - * @format int64 | ||
1605 | */ | 1604 | */ |
1606 | installmentMoney?: number; | 1605 | installmentMoney?: number; |
1607 | /** | 1606 | /** |
@@ -4401,6 +4400,7 @@ export interface SubOrder { | @@ -4401,6 +4400,7 @@ export interface SubOrder { | ||
4401 | paymentChannel?: string; | 4400 | paymentChannel?: string; |
4402 | paymentMethod?: string; | 4401 | paymentMethod?: string; |
4403 | paymentReceiptAnnex?: string; | 4402 | paymentReceiptAnnex?: string; |
4403 | + paymentReceiptAnnexPartial?: string; | ||
4404 | paymentReceiptNotes?: string; | 4404 | paymentReceiptNotes?: string; |
4405 | paymentReceiptStatus?: string; | 4405 | paymentReceiptStatus?: string; |
4406 | paymentStatus?: string; | 4406 | paymentStatus?: string; |
src/services/request.ts
@@ -75,6 +75,7 @@ import type { | @@ -75,6 +75,7 @@ import type { | ||
75 | MeasureUnitListRes, | 75 | MeasureUnitListRes, |
76 | MergeIntegralDto, | 76 | MergeIntegralDto, |
77 | MessageQueryDTO, | 77 | MessageQueryDTO, |
78 | + ModelAndView, | ||
78 | OrderAddVO, | 79 | OrderAddVO, |
79 | OrderAuditLogQueryVO, | 80 | OrderAuditLogQueryVO, |
80 | OrderBaseInfoQueryVO, | 81 | OrderBaseInfoQueryVO, |
@@ -4267,9 +4268,7 @@ export interface GetErrorResponse { | @@ -4267,9 +4268,7 @@ export interface GetErrorResponse { | ||
4267 | * @description | 4268 | * @description |
4268 | * OK | 4269 | * OK |
4269 | */ | 4270 | */ |
4270 | - 200: { | ||
4271 | - [propertyName: string]: any; | ||
4272 | - }; | 4271 | + 200: ModelAndView; |
4273 | /** | 4272 | /** |
4274 | * @description | 4273 | * @description |
4275 | * Unauthorized | 4274 | * Unauthorized |
@@ -4290,9 +4289,9 @@ export interface GetErrorResponse { | @@ -4290,9 +4289,9 @@ export interface GetErrorResponse { | ||
4290 | export type GetErrorResponseSuccess = GetErrorResponse[200]; | 4289 | export type GetErrorResponseSuccess = GetErrorResponse[200]; |
4291 | /** | 4290 | /** |
4292 | * @description | 4291 | * @description |
4293 | - * error | 4292 | + * errorHtml |
4294 | * @tags basic-error-controller | 4293 | * @tags basic-error-controller |
4295 | - * @produces * | 4294 | + * @produces text/html |
4296 | */ | 4295 | */ |
4297 | export const getError = /* #__PURE__ */ (() => { | 4296 | export const getError = /* #__PURE__ */ (() => { |
4298 | const method = 'get'; | 4297 | const method = 'get'; |
@@ -4316,9 +4315,7 @@ export interface PutErrorResponse { | @@ -4316,9 +4315,7 @@ export interface PutErrorResponse { | ||
4316 | * @description | 4315 | * @description |
4317 | * OK | 4316 | * OK |
4318 | */ | 4317 | */ |
4319 | - 200: { | ||
4320 | - [propertyName: string]: any; | ||
4321 | - }; | 4318 | + 200: ModelAndView; |
4322 | /** | 4319 | /** |
4323 | * @description | 4320 | * @description |
4324 | * Created | 4321 | * Created |
@@ -4344,9 +4341,9 @@ export interface PutErrorResponse { | @@ -4344,9 +4341,9 @@ export interface PutErrorResponse { | ||
4344 | export type PutErrorResponseSuccess = PutErrorResponse[200]; | 4341 | export type PutErrorResponseSuccess = PutErrorResponse[200]; |
4345 | /** | 4342 | /** |
4346 | * @description | 4343 | * @description |
4347 | - * error | 4344 | + * errorHtml |
4348 | * @tags basic-error-controller | 4345 | * @tags basic-error-controller |
4349 | - * @produces * | 4346 | + * @produces text/html |
4350 | * @consumes application/json | 4347 | * @consumes application/json |
4351 | */ | 4348 | */ |
4352 | export const putError = /* #__PURE__ */ (() => { | 4349 | export const putError = /* #__PURE__ */ (() => { |
@@ -4371,9 +4368,7 @@ export interface PostErrorResponse { | @@ -4371,9 +4368,7 @@ export interface PostErrorResponse { | ||
4371 | * @description | 4368 | * @description |
4372 | * OK | 4369 | * OK |
4373 | */ | 4370 | */ |
4374 | - 200: { | ||
4375 | - [propertyName: string]: any; | ||
4376 | - }; | 4371 | + 200: ModelAndView; |
4377 | /** | 4372 | /** |
4378 | * @description | 4373 | * @description |
4379 | * Created | 4374 | * Created |
@@ -4399,9 +4394,9 @@ export interface PostErrorResponse { | @@ -4399,9 +4394,9 @@ export interface PostErrorResponse { | ||
4399 | export type PostErrorResponseSuccess = PostErrorResponse[200]; | 4394 | export type PostErrorResponseSuccess = PostErrorResponse[200]; |
4400 | /** | 4395 | /** |
4401 | * @description | 4396 | * @description |
4402 | - * error | 4397 | + * errorHtml |
4403 | * @tags basic-error-controller | 4398 | * @tags basic-error-controller |
4404 | - * @produces * | 4399 | + * @produces text/html |
4405 | * @consumes application/json | 4400 | * @consumes application/json |
4406 | */ | 4401 | */ |
4407 | export const postError = /* #__PURE__ */ (() => { | 4402 | export const postError = /* #__PURE__ */ (() => { |
@@ -4426,9 +4421,7 @@ export interface DeleteErrorResponse { | @@ -4426,9 +4421,7 @@ export interface DeleteErrorResponse { | ||
4426 | * @description | 4421 | * @description |
4427 | * OK | 4422 | * OK |
4428 | */ | 4423 | */ |
4429 | - 200: { | ||
4430 | - [propertyName: string]: any; | ||
4431 | - }; | 4424 | + 200: ModelAndView; |
4432 | /** | 4425 | /** |
4433 | * @description | 4426 | * @description |
4434 | * No Content | 4427 | * No Content |
@@ -4449,9 +4442,9 @@ export interface DeleteErrorResponse { | @@ -4449,9 +4442,9 @@ export interface DeleteErrorResponse { | ||
4449 | export type DeleteErrorResponseSuccess = DeleteErrorResponse[200]; | 4442 | export type DeleteErrorResponseSuccess = DeleteErrorResponse[200]; |
4450 | /** | 4443 | /** |
4451 | * @description | 4444 | * @description |
4452 | - * error | 4445 | + * errorHtml |
4453 | * @tags basic-error-controller | 4446 | * @tags basic-error-controller |
4454 | - * @produces * | 4447 | + * @produces text/html |
4455 | */ | 4448 | */ |
4456 | export const deleteError = /* #__PURE__ */ (() => { | 4449 | export const deleteError = /* #__PURE__ */ (() => { |
4457 | const method = 'delete'; | 4450 | const method = 'delete'; |
@@ -4475,9 +4468,7 @@ export interface OptionsErrorResponse { | @@ -4475,9 +4468,7 @@ export interface OptionsErrorResponse { | ||
4475 | * @description | 4468 | * @description |
4476 | * OK | 4469 | * OK |
4477 | */ | 4470 | */ |
4478 | - 200: { | ||
4479 | - [propertyName: string]: any; | ||
4480 | - }; | 4471 | + 200: ModelAndView; |
4481 | /** | 4472 | /** |
4482 | * @description | 4473 | * @description |
4483 | * No Content | 4474 | * No Content |
@@ -4498,9 +4489,9 @@ export interface OptionsErrorResponse { | @@ -4498,9 +4489,9 @@ export interface OptionsErrorResponse { | ||
4498 | export type OptionsErrorResponseSuccess = OptionsErrorResponse[200]; | 4489 | export type OptionsErrorResponseSuccess = OptionsErrorResponse[200]; |
4499 | /** | 4490 | /** |
4500 | * @description | 4491 | * @description |
4501 | - * error | 4492 | + * errorHtml |
4502 | * @tags basic-error-controller | 4493 | * @tags basic-error-controller |
4503 | - * @produces * | 4494 | + * @produces text/html |
4504 | * @consumes application/json | 4495 | * @consumes application/json |
4505 | */ | 4496 | */ |
4506 | export const optionsError = /* #__PURE__ */ (() => { | 4497 | export const optionsError = /* #__PURE__ */ (() => { |
@@ -4525,9 +4516,7 @@ export interface HeadErrorResponse { | @@ -4525,9 +4516,7 @@ export interface HeadErrorResponse { | ||
4525 | * @description | 4516 | * @description |
4526 | * OK | 4517 | * OK |
4527 | */ | 4518 | */ |
4528 | - 200: { | ||
4529 | - [propertyName: string]: any; | ||
4530 | - }; | 4519 | + 200: ModelAndView; |
4531 | /** | 4520 | /** |
4532 | * @description | 4521 | * @description |
4533 | * No Content | 4522 | * No Content |
@@ -4548,9 +4537,9 @@ export interface HeadErrorResponse { | @@ -4548,9 +4537,9 @@ export interface HeadErrorResponse { | ||
4548 | export type HeadErrorResponseSuccess = HeadErrorResponse[200]; | 4537 | export type HeadErrorResponseSuccess = HeadErrorResponse[200]; |
4549 | /** | 4538 | /** |
4550 | * @description | 4539 | * @description |
4551 | - * error | 4540 | + * errorHtml |
4552 | * @tags basic-error-controller | 4541 | * @tags basic-error-controller |
4553 | - * @produces * | 4542 | + * @produces text/html |
4554 | * @consumes application/json | 4543 | * @consumes application/json |
4555 | */ | 4544 | */ |
4556 | export const headError = /* #__PURE__ */ (() => { | 4545 | export const headError = /* #__PURE__ */ (() => { |
@@ -4575,9 +4564,7 @@ export interface PatchErrorResponse { | @@ -4575,9 +4564,7 @@ export interface PatchErrorResponse { | ||
4575 | * @description | 4564 | * @description |
4576 | * OK | 4565 | * OK |
4577 | */ | 4566 | */ |
4578 | - 200: { | ||
4579 | - [propertyName: string]: any; | ||
4580 | - }; | 4567 | + 200: ModelAndView; |
4581 | /** | 4568 | /** |
4582 | * @description | 4569 | * @description |
4583 | * No Content | 4570 | * No Content |
@@ -4598,9 +4585,9 @@ export interface PatchErrorResponse { | @@ -4598,9 +4585,9 @@ export interface PatchErrorResponse { | ||
4598 | export type PatchErrorResponseSuccess = PatchErrorResponse[200]; | 4585 | export type PatchErrorResponseSuccess = PatchErrorResponse[200]; |
4599 | /** | 4586 | /** |
4600 | * @description | 4587 | * @description |
4601 | - * error | 4588 | + * errorHtml |
4602 | * @tags basic-error-controller | 4589 | * @tags basic-error-controller |
4603 | - * @produces * | 4590 | + * @produces text/html |
4604 | * @consumes application/json | 4591 | * @consumes application/json |
4605 | */ | 4592 | */ |
4606 | export const patchError = /* #__PURE__ */ (() => { | 4593 | export const patchError = /* #__PURE__ */ (() => { |
@@ -25903,6 +25890,77 @@ export const postServiceOrderQuerySupplier = /* #__PURE__ */ (() => { | @@ -25903,6 +25890,77 @@ export const postServiceOrderQuerySupplier = /* #__PURE__ */ (() => { | ||
25903 | return request; | 25890 | return request; |
25904 | })(); | 25891 | })(); |
25905 | 25892 | ||
25893 | +/** @description request parameter type for postServiceOrderRefundHistory */ | ||
25894 | +export interface PostServiceOrderRefundHistoryOption { | ||
25895 | + /** | ||
25896 | + * @description | ||
25897 | + * mainOrderId | ||
25898 | + */ | ||
25899 | + body: { | ||
25900 | + /** | ||
25901 | + @description | ||
25902 | + mainOrderId */ | ||
25903 | + mainOrderId: number; | ||
25904 | + }; | ||
25905 | +} | ||
25906 | + | ||
25907 | +/** @description response type for postServiceOrderRefundHistory */ | ||
25908 | +export interface PostServiceOrderRefundHistoryResponse { | ||
25909 | + /** | ||
25910 | + * @description | ||
25911 | + * OK | ||
25912 | + */ | ||
25913 | + 200: ServerResult; | ||
25914 | + /** | ||
25915 | + * @description | ||
25916 | + * Created | ||
25917 | + */ | ||
25918 | + 201: any; | ||
25919 | + /** | ||
25920 | + * @description | ||
25921 | + * Unauthorized | ||
25922 | + */ | ||
25923 | + 401: any; | ||
25924 | + /** | ||
25925 | + * @description | ||
25926 | + * Forbidden | ||
25927 | + */ | ||
25928 | + 403: any; | ||
25929 | + /** | ||
25930 | + * @description | ||
25931 | + * Not Found | ||
25932 | + */ | ||
25933 | + 404: any; | ||
25934 | +} | ||
25935 | + | ||
25936 | +export type PostServiceOrderRefundHistoryResponseSuccess = | ||
25937 | + PostServiceOrderRefundHistoryResponse[200]; | ||
25938 | +/** | ||
25939 | + * @description | ||
25940 | + * 根据主订单ID查询退款历史记录 | ||
25941 | + * @tags 内部订单 | ||
25942 | + * @produces * | ||
25943 | + * @consumes application/json | ||
25944 | + */ | ||
25945 | +export const postServiceOrderRefundHistory = /* #__PURE__ */ (() => { | ||
25946 | + const method = 'post'; | ||
25947 | + const url = '/service/order/refundHistory'; | ||
25948 | + function request( | ||
25949 | + option: PostServiceOrderRefundHistoryOption, | ||
25950 | + ): Promise<PostServiceOrderRefundHistoryResponseSuccess> { | ||
25951 | + return requester(request.url, { | ||
25952 | + method: request.method, | ||
25953 | + ...option, | ||
25954 | + }) as unknown as Promise<PostServiceOrderRefundHistoryResponseSuccess>; | ||
25955 | + } | ||
25956 | + | ||
25957 | + /** http method */ | ||
25958 | + request.method = method; | ||
25959 | + /** request url */ | ||
25960 | + request.url = url; | ||
25961 | + return request; | ||
25962 | +})(); | ||
25963 | + | ||
25906 | /** @description request parameter type for postServiceOrderRemindShipping */ | 25964 | /** @description request parameter type for postServiceOrderRemindShipping */ |
25907 | export interface PostServiceOrderRemindShippingOption { | 25965 | export interface PostServiceOrderRemindShippingOption { |
25908 | /** | 25966 | /** |