Commit d8e0cc3b044a052fffd24aad24f530730719e7e2

Authored by zhongnanhuang
2 parents 1430dc10 deed1a0c

Merge branch 'znh231206' into 'develop'

1208



See merge request !12
.umirc.ts
@@ -13,9 +13,9 @@ export default defineConfig({ @@ -13,9 +13,9 @@ export default defineConfig({
13 }, 13 },
14 proxy: { 14 proxy: {
15 '/api/': { 15 '/api/': {
16 - target: 'http://localhost:8085/', 16 + // target: 'http://localhost:8085/',
17 // target: 'http://192.168.1.6:8085/', 17 // target: 'http://192.168.1.6:8085/',
18 - // target: 'http://39.108.227.113:8085/', 18 + target: 'http://39.108.227.113:8085/',
19 changeOrigin: true, 19 changeOrigin: true,
20 pathRewrite: { '^/api': '' }, 20 pathRewrite: { '^/api': '' },
21 }, 21 },
src/app.ts
@@ -12,7 +12,7 @@ import './style/global.css'; @@ -12,7 +12,7 @@ import './style/global.css';
12 // 更多信息见文档:https://umijs.org/docs/api/runtime-config#getinitialstate 12 // 更多信息见文档:https://umijs.org/docs/api/runtime-config#getinitialstate
13 export async function getInitialState(): Promise<{ name: string }> { 13 export async function getInitialState(): Promise<{ name: string }> {
14 // getUserInfo(); 14 // getUserInfo();
15 - return { name: '@umijs/max' }; 15 + return { name: '' };
16 } 16 }
17 17
18 export const layout = () => { 18 export const layout = () => {
src/pages/Order/components/AttachmentModal.tsx
1 import { getAliYunOSSFileNameFromUrl } from '@/utils'; 1 import { getAliYunOSSFileNameFromUrl } from '@/utils';
2 import { ModalForm, ProFormUploadDragger } from '@ant-design/pro-components'; 2 import { ModalForm, ProFormUploadDragger } from '@ant-design/pro-components';
3 -import { Button, Form } from 'antd'; 3 +import { Button, Empty, Form } from 'antd';
4 import { cloneDeep } from 'lodash'; 4 import { cloneDeep } from 'lodash';
5 import { useEffect, useState } from 'react'; 5 import { useEffect, useState } from 'react';
6 6
@@ -52,28 +52,32 @@ export default ({ data, onClose }) =&gt; { @@ -52,28 +52,32 @@ export default ({ data, onClose }) =&gt; {
52 }, 52 },
53 }} 53 }}
54 > 54 >
55 - <ProFormUploadDragger  
56 - name="listAnnex"  
57 - action="/api/service/order/fileProcess"  
58 - disabled  
59 - fieldProps={{  
60 - headers: { Authorization: localStorage.getItem('token') },  
61 - // onRemove: (file) => {  
62 - // const index = fileList[listMeta.index].indexOf(file);  
63 - // console.log(index);  
64 - // const newFileList = fileList.slice();  
65 - // newFileList.splice(index, 1);  
66 - // setFileList(newFileList);  
67 - // },  
68 - // beforeUpload: (file) => {  
69 - // fileList[listMeta.index] = [...fileList[listMeta.index], file as RcFile];  
70 - // setFileList(fileList);  
71 - // return true;  
72 - // },  
73 - fileList,  
74 - // defaultFileList: itemFileList  
75 - }}  
76 - /> 55 + {newListAnnex?.length <= 0 ? (
  56 + <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />
  57 + ) : (
  58 + <ProFormUploadDragger
  59 + name="listAnnex"
  60 + action="/api/service/order/fileProcess"
  61 + disabled
  62 + fieldProps={{
  63 + headers: { Authorization: localStorage.getItem('token') },
  64 + // onRemove: (file) => {
  65 + // const index = fileList[listMeta.index].indexOf(file);
  66 + // console.log(index);
  67 + // const newFileList = fileList.slice();
  68 + // newFileList.splice(index, 1);
  69 + // setFileList(newFileList);
  70 + // },
  71 + // beforeUpload: (file) => {
  72 + // fileList[listMeta.index] = [...fileList[listMeta.index], file as RcFile];
  73 + // setFileList(fileList);
  74 + // return true;
  75 + // },
  76 + fileList,
  77 + // defaultFileList: itemFileList
  78 + }}
  79 + />
  80 + )}
77 </ModalForm> 81 </ModalForm>
78 ); 82 );
79 }; 83 };
src/pages/Order/components/DeliverInfoDrawer.tsx 0 → 100644
  1 +import { Col, Drawer, Row } from 'antd';
  2 +
  3 +export default ({ data, onClose }) => {
  4 + console.log(data);
  5 + return (
  6 + <>
  7 + <Drawer
  8 + width={500}
  9 + title="基本信息"
  10 + placement="right"
  11 + onClose={onClose}
  12 + open
  13 + >
  14 + <Row gutter={[16, 24]}>
  15 + <Col span={6}>
  16 + <span className="text-[#333333]">收货人</span>
  17 + </Col>
  18 + <Col span={18}>{data.customerName}</Col>
  19 + <Col span={6}>
  20 + <span className="className='text-[#333333]'">联系方式</span>
  21 + </Col>
  22 + <Col span={18}>{data.customerContactNumber}</Col>
  23 +
  24 + <Col span={6}>
  25 + <span className="className='text-[#333333]'">收货地址</span>
  26 + </Col>
  27 + <Col span={18}>{data.customerShippingAddress}</Col>
  28 +
  29 + <Col span={6}>
  30 + <span className="className='text-[#333333]'">单位联系人</span>
  31 + </Col>
  32 + <Col span={18}>{data.institutionContactName}</Col>
  33 + <Col span={6}>
  34 + <span className="className='text-[#333333]'">单位名称</span>
  35 + </Col>
  36 + <Col span={18}>{data.institution}</Col>
  37 + <Col span={6}>
  38 + <span className="className='text-[#333333]'">开户银行</span>
  39 + </Col>
  40 + <Col span={18}>{data.bank}</Col>
  41 +
  42 + <Col span={6}>
  43 + <span className="className='text-[#333333]'">银行账号</span>
  44 + </Col>
  45 + <Col span={18}>{data.bankAccountNumber}</Col>
  46 + <Col span={6}>
  47 + <span className="className='text-[#333333]'">开票识别号</span>
  48 + </Col>
  49 + <Col span={18}>{data.invoiceIdentificationNumber}</Col>
  50 + </Row>
  51 + </Drawer>
  52 + </>
  53 + );
  54 +};
src/pages/Order/components/HistoryModal.tsx
1 import { postServiceOrderQueryHistoryOrderRecord } from '@/services'; 1 import { postServiceOrderQueryHistoryOrderRecord } from '@/services';
2 -import { Button, Modal, Timeline } from 'antd'; 2 +import { enumValueToLabel, formatDateTime } from '@/utils';
  3 +import { Button, Col, Empty, Flex, Modal, Row } from 'antd';
  4 +import { useEffect, useState } from 'react';
  5 +import { HISTORY_OPT_TYPE, ORDER_STATUS_OPTIONS } from '../constant';
3 6
4 export default ({ subOrders, onClose }) => { 7 export default ({ subOrders, onClose }) => {
5 let subOrderIds = subOrders?.map((subOrder: any) => { 8 let subOrderIds = subOrders?.map((subOrder: any) => {
6 return subOrder.id; 9 return subOrder.id;
7 }); 10 });
  11 + const [data, setData] = useState([]);
  12 + let i = 1;
8 13
9 const handleOk = () => { 14 const handleOk = () => {
10 onClose(); 15 onClose();
@@ -14,9 +19,13 @@ export default ({ subOrders, onClose }) =&gt; { @@ -14,9 +19,13 @@ export default ({ subOrders, onClose }) =&gt; {
14 let res = await postServiceOrderQueryHistoryOrderRecord({ 19 let res = await postServiceOrderQueryHistoryOrderRecord({
15 data: { ids: subOrderIds }, 20 data: { ids: subOrderIds },
16 }); 21 });
17 - console.log(res); 22 + setData(res.data);
  23 + console.log(data);
18 }; 24 };
19 - getHistory(); 25 +
  26 + useEffect(() => {
  27 + getHistory();
  28 + }, []);
20 29
21 const handleCancel = () => { 30 const handleCancel = () => {
22 onClose(); 31 onClose();
@@ -35,23 +44,59 @@ export default ({ subOrders, onClose }) =&gt; { @@ -35,23 +44,59 @@ export default ({ subOrders, onClose }) =&gt; {
35 </> 44 </>
36 )} 45 )}
37 > 46 >
38 - <Timeline  
39 - className="pt-10"  
40 - items={[  
41 - {  
42 - children: 'Create a services site 2015-09-01',  
43 - },  
44 - {  
45 - children: 'Solve initial network problems 2015-09-01',  
46 - },  
47 - {  
48 - children: 'Technical testing 2015-09-01',  
49 - },  
50 - {  
51 - children: 'Network problems being solved 2015-09-01',  
52 - },  
53 - ]}  
54 - /> 47 + <Row>
  48 + {data.map((item) => {
  49 + return (
  50 + <Col span={24} key="key">
  51 + <Flex vertical>
  52 + <span className="py-2 text-[#5E5E5E]">{'商品' + i++}</span>
  53 + <Flex vertical>
  54 + {item.historySubOrderRecordDto?.map((history) => {
  55 + return (
  56 + <div className="py-1" key="key">
  57 + <span className="pr-2 text-[#5E5E5E]">
  58 + {formatDateTime(history.createTime)}
  59 + </span>
  60 + <span className="text-[#3b83e5]">
  61 + {history.createByName}
  62 + </span>
  63 + 进行了
  64 + <span className="text-[#3b83e5]">
  65 + {HISTORY_OPT_TYPE.get(history.record)}
  66 + </span>
  67 + ,
  68 + {enumValueToLabel(
  69 + history.status,
  70 + ORDER_STATUS_OPTIONS,
  71 + ) === undefined
  72 + ? '子订单开票状态为'
  73 + : '子订单状态为'}
  74 + :
  75 + <span className="text-[#3b83e5]">
  76 + {enumValueToLabel(
  77 + history.status,
  78 + ORDER_STATUS_OPTIONS,
  79 + ) === undefined
  80 + ? '已开票'
  81 + : enumValueToLabel(
  82 + history.status,
  83 + ORDER_STATUS_OPTIONS,
  84 + )}
  85 + </span>
  86 + </div>
  87 + );
  88 + })}
  89 + </Flex>
  90 + </Flex>
  91 + </Col>
  92 + );
  93 + })}
  94 + </Row>
  95 + {data?.length <= 0 ? (
  96 + <Empty image={Empty.PRESENTED_IMAGE_SIMPLE} />
  97 + ) : (
  98 + ''
  99 + )}
55 </Modal> 100 </Modal>
56 </> 101 </>
57 ); 102 );
src/pages/Order/constant.ts
@@ -98,6 +98,18 @@ export const SALES_CODE_OPTIONS = [ @@ -98,6 +98,18 @@ export const SALES_CODE_OPTIONS = [
98 { label: 'JJ', value: 'JJ' }, 98 { label: 'JJ', value: 'JJ' },
99 ]; 99 ];
100 100
  101 +export const HISTORY_OPT_TYPE = new Map<string, string>([
  102 + ['DELETE', '作废'],
  103 + ['UPDATE', '编辑'],
  104 + ['ADD', '创建'],
  105 + ['SEND', '发货'],
  106 + ['CHECK', '审核'],
  107 + ['CONFIRM_RECEIPT', '确认收货'],
  108 + ['PRINT_ORDER', '打印'],
  109 + ['INVOICING', '财务开票'],
  110 + ['EDIT_ORDER', '财务编辑'],
  111 +]);
  112 +
101 export const MAIN_ORDER_COLUMNS = [ 113 export const MAIN_ORDER_COLUMNS = [
102 { 114 {
103 title: '订单列表', 115 title: '订单列表',
src/pages/Order/index.less
1 // 嵌套表格去掉左方多余部分 1 // 嵌套表格去掉左方多余部分
2 -.ant-table .ant-table-middle { 2 +.order-page-container .ant-table .ant-table-middle {
3 margin-inline: 0 !important; 3 margin-inline: 0 !important;
4 } 4 }
5 5
6 -td { 6 +.order-page-container td {
7 font-family: 'San Francisco', 'Helvetica Neue', Helvetica, Arial, 7 font-family: 'San Francisco', 'Helvetica Neue', Helvetica, Arial,
8 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', 'Heiti SC', 8 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', 'Heiti SC',
9 'WenQuanYi Micro Hei', sans-serif; 9 'WenQuanYi Micro Hei', sans-serif;
@@ -15,9 +15,9 @@ td { @@ -15,9 +15,9 @@ td {
15 padding: 0 !important; 15 padding: 0 !important;
16 } 16 }
17 17
18 -table:hover,  
19 -tr:hover,  
20 -thead:hover { 18 +.order-page-container table:hover,
  19 +.order-page-container tr:hover,
  20 +.order-page-container thead:hover {
21 background: none !important; 21 background: none !important;
22 } 22 }
23 23
@@ -25,7 +25,7 @@ thead:hover { @@ -25,7 +25,7 @@ thead:hover {
25 background: none !important; 25 background: none !important;
26 } 26 }
27 27
28 -.ant-pro-card { 28 +.order-page-container .ant-pro-card {
29 background-color: transparent; 29 background-color: transparent;
30 } 30 }
31 31
@@ -33,15 +33,26 @@ thead:hover { @@ -33,15 +33,26 @@ thead:hover {
33 padding: 10px 0 0; 33 padding: 10px 0 0;
34 } 34 }
35 35
  36 +.order-page-container .ant-pagination {
  37 + background-color: #fff !important;
  38 + padding: 10px;
  39 + border-radius: 8px;
  40 +}
  41 +
  42 +.order-page-container .ant-pro-table .ant-form {
  43 + background-color: #fff;
  44 + border-radius: 8px;
  45 +}
  46 +
36 #main-table .ant-table-tbody { 47 #main-table .ant-table-tbody {
37 background-color: #f5f5f5; 48 background-color: #f5f5f5;
38 } 49 }
39 50
40 -.ant-pro-card-body { 51 +.order-page-container .ant-pro-card-body {
41 padding: 0 !important; 52 padding: 0 !important;
42 } 53 }
43 54
44 -.ant-table-thead .ant-table-cell { 55 +.order-page-container .ant-table-thead .ant-table-cell {
45 background-color: #fff !important; 56 background-color: #fff !important;
46 border-radius: 8px !important; 57 border-radius: 8px !important;
47 } 58 }
src/pages/Order/index.tsx
@@ -8,6 +8,7 @@ import { orderExport } from &#39;@/services/order&#39;; @@ -8,6 +8,7 @@ import { orderExport } from &#39;@/services/order&#39;;
8 import { enumValueToLabel, formatDateTime } from '@/utils'; 8 import { enumValueToLabel, formatDateTime } from '@/utils';
9 import { 9 import {
10 ClockCircleTwoTone, 10 ClockCircleTwoTone,
  11 + ContainerTwoTone,
11 CopyTwoTone, 12 CopyTwoTone,
12 DownOutlined, 13 DownOutlined,
13 EditTwoTone, 14 EditTwoTone,
@@ -37,6 +38,7 @@ import OrderPrintModal from &#39;../OrderPrint/OrderPrintModal&#39;; @@ -37,6 +38,7 @@ import OrderPrintModal from &#39;../OrderPrint/OrderPrintModal&#39;;
37 import AttachmentModal from './components/AttachmentModal'; 38 import AttachmentModal from './components/AttachmentModal';
38 import CheckModal from './components/CheckModal'; 39 import CheckModal from './components/CheckModal';
39 import ConfirmReceiptModal from './components/ConfirmReceiptModal'; 40 import ConfirmReceiptModal from './components/ConfirmReceiptModal';
  41 +import DeliverInfoDrawer from './components/DeliverInfoDrawer';
40 import DeliverModal from './components/DeliverModal'; 42 import DeliverModal from './components/DeliverModal';
41 import FinancialDrawer from './components/FinancialDrawer'; 43 import FinancialDrawer from './components/FinancialDrawer';
42 import HistoryModal from './components/HistoryModal'; 44 import HistoryModal from './components/HistoryModal';
@@ -77,6 +79,8 @@ const OrderPage = () =&gt; { @@ -77,6 +79,8 @@ const OrderPage = () =&gt; {
77 const [confirmReceiptVisible, setConfirmReceiptVisible] = 79 const [confirmReceiptVisible, setConfirmReceiptVisible] =
78 useState<boolean>(false); 80 useState<boolean>(false);
79 const [deliverVisible, setDeliverVisible] = useState<boolean>(false); 81 const [deliverVisible, setDeliverVisible] = useState<boolean>(false);
  82 + const [deliverInfoDrawerVisible, setDeliverInfoDrawerVisible] =
  83 + useState<boolean>(false);
80 const [orderOptType, setOrderOptType] = useState<string>(''); 84 const [orderOptType, setOrderOptType] = useState<string>('');
81 const [isFinalcialEdit, setIsFinalcialEdit] = useState<boolean>(false); 85 const [isFinalcialEdit, setIsFinalcialEdit] = useState<boolean>(false);
82 const [expandedRowKeys, setExpandedRowKeys] = useState<Key[]>([]); 86 const [expandedRowKeys, setExpandedRowKeys] = useState<Key[]>([]);
@@ -198,11 +202,14 @@ const OrderPage = () =&gt; { @@ -198,11 +202,14 @@ const OrderPage = () =&gt; {
198 </span> 202 </span>
199 </div> 203 </div>
200 <div className="whitespace-no-wrap overflow-hidden overflow-ellipsis"> 204 <div className="whitespace-no-wrap overflow-hidden overflow-ellipsis">
201 - <span className="text-gray-500">参数:{optRecord.parameters}</span> 205 + <span className="text-[#8C8C8C]">参数:{optRecord.parameters}</span>
202 </div> 206 </div>
203 <Flex title={optRecord.notes}> 207 <Flex title={optRecord.notes}>
204 <div className="max-w-[90%] whitespace-no-wrap overflow-hidden overflow-ellipsis"> 208 <div className="max-w-[90%] whitespace-no-wrap overflow-hidden overflow-ellipsis">
205 - <span className="text-gray-500">备注:{optRecord.notes}</span> 209 + <span className="text-[#8C8C8C]">
  210 + 备注:
  211 + {optRecord.notes === undefined ? '暂无备注' : optRecord.notes}
  212 + </span>
206 </div> 213 </div>
207 <EditTwoTone 214 <EditTwoTone
208 onClick={() => { 215 onClick={() => {
@@ -215,15 +222,15 @@ const OrderPage = () =&gt; { @@ -215,15 +222,15 @@ const OrderPage = () =&gt; {
215 </Flex> 222 </Flex>
216 <Flex className="w-[16%]" vertical gap="small"> 223 <Flex className="w-[16%]" vertical gap="small">
217 <div className="whitespace-no-wrap overflow-hidden overflow-ellipsis"> 224 <div className="whitespace-no-wrap overflow-hidden overflow-ellipsis">
218 - <span className="text-gray-500">单价:</span> 225 + <span className="text-[#8C8C8C]">单价:</span>
219 <span className="text-slate-700">¥{optRecord.productPrice}</span> 226 <span className="text-slate-700">¥{optRecord.productPrice}</span>
220 </div> 227 </div>
221 <div className="whitespace-no-wrap overflow-hidden overflow-ellipsis"> 228 <div className="whitespace-no-wrap overflow-hidden overflow-ellipsis">
222 - <span className="text-gray-500">数量:</span> 229 + <span className="text-[#8C8C8C]">数量:</span>
223 <span className="text-slate-700">x{optRecord.quantity}</span> 230 <span className="text-slate-700">x{optRecord.quantity}</span>
224 </div> 231 </div>
225 <div className="whitespace-no-wrap overflow-hidden overflow-ellipsis"> 232 <div className="whitespace-no-wrap overflow-hidden overflow-ellipsis">
226 - <span className="text-gray-500">合计:</span> 233 + <span className="text-[#8C8C8C]">合计:</span>
227 <span className="text-slate-700"> 234 <span className="text-slate-700">
228 ¥{optRecord.subOrderPayment} 235 ¥{optRecord.subOrderPayment}
229 </span> 236 </span>
@@ -306,6 +313,26 @@ const OrderPage = () =&gt; { @@ -306,6 +313,26 @@ const OrderPage = () =&gt; {
306 '' 313 ''
307 )} 314 )}
308 315
  316 + {optRecord.subPath.includes('orderCancel') ? (
  317 + <ButtonConfirm
  318 + className="p-0"
  319 + title="确认作废?"
  320 + text="作废"
  321 + onConfirm={async () => {
  322 + let body = { ids: [optRecord.id], checkIsMainOrderId: false };
  323 + const data = await postServiceOrderOrderCancel({
  324 + data: body,
  325 + });
  326 + if (data.result === RESPONSE_CODE.SUCCESS) {
  327 + message.success(data.message);
  328 + refreshTable();
  329 + }
  330 + }}
  331 + />
  332 + ) : (
  333 + ''
  334 + )}
  335 +
309 {optRecord.subPath.includes('modifySendInformation') ? ( 336 {optRecord.subPath.includes('modifySendInformation') ? (
310 <Button 337 <Button
311 className="p-0" 338 className="p-0"
@@ -498,7 +525,7 @@ const OrderPage = () =&gt; { @@ -498,7 +525,7 @@ const OrderPage = () =&gt; {
498 > 525 >
499 <Space split={<Divider type="vertical" />}> 526 <Space split={<Divider type="vertical" />}>
500 <div> 527 <div>
501 - <span className="text-gray-500">订单号:</span> 528 + <span className="text-[#8C8C8C]">订单号:</span>
502 <span className="text-slate-700">{record.id}</span> 529 <span className="text-slate-700">{record.id}</span>
503 </div> 530 </div>
504 <span>{formatDateTime(record.createTime)}</span> 531 <span>{formatDateTime(record.createTime)}</span>
@@ -506,17 +533,24 @@ const OrderPage = () =&gt; { @@ -506,17 +533,24 @@ const OrderPage = () =&gt; {
506 </Checkbox> 533 </Checkbox>
507 <Space split={<Divider type="vertical" />}> 534 <Space split={<Divider type="vertical" />}>
508 <div> 535 <div>
509 - <span className="text-gray-500">代表:</span> 536 + <span className="text-[#8C8C8C]">代表:</span>
510 <span className="text-slate-700">{record.salesCode}</span> 537 <span className="text-slate-700">{record.salesCode}</span>
511 </div> 538 </div>
512 <span> 539 <span>
513 - <span className="text-gray-500">单位:</span> 540 + <span className="text-[#8C8C8C]">单位:</span>
514 <span className="text-slate-700">{record.institution}</span> 541 <span className="text-slate-700">{record.institution}</span>
515 </span> 542 </span>
516 <span> 543 <span>
517 - <span className="text-gray-500">联系人:</span> 544 + <span className="text-[#8C8C8C]">联系人:</span>
518 <span className="text-slate-700"> 545 <span className="text-slate-700">
519 - {record.institutionContactName} 546 + {record.institutionContactName + ' '}
  547 + <ContainerTwoTone
  548 + className="hover:curcor-pointer"
  549 + onClick={() => {
  550 + setDeliverInfoDrawerVisible(true);
  551 + setOrderRow(record);
  552 + }}
  553 + />
520 </span> 554 </span>
521 </span> 555 </span>
522 </Space> 556 </Space>
@@ -525,8 +559,10 @@ const OrderPage = () =&gt; { @@ -525,8 +559,10 @@ const OrderPage = () =&gt; {
525 <Flex className="pl-6" align="center"> 559 <Flex className="pl-6" align="center">
526 <div title={record.notes}> 560 <div title={record.notes}>
527 <div className="max-w-md whitespace-no-wrap overflow-hidden overflow-ellipsis"> 561 <div className="max-w-md whitespace-no-wrap overflow-hidden overflow-ellipsis">
528 - <span className="text-gray-500">备注:</span>  
529 - <span className="ml-2">{record.notes}</span> 562 + <span className="text-[#8C8C8C]">备注:</span>
  563 + <span className="ml-2">
  564 + {record.notes === undefined ? '暂无备注' : record.notes}
  565 + </span>
530 </div> 566 </div>
531 </div> 567 </div>
532 <EditTwoTone 568 <EditTwoTone
@@ -543,7 +579,7 @@ const OrderPage = () =&gt; { @@ -543,7 +579,7 @@ const OrderPage = () =&gt; {
543 <Flex justify="flex-end"> 579 <Flex justify="flex-end">
544 <Flex wrap="wrap" gap="middle" align="center"> 580 <Flex wrap="wrap" gap="middle" align="center">
545 <div> 581 <div>
546 - <span className="text-gray-500">总金额:¥</span> 582 + <span className="text-[#8C8C8C]">总金额:¥</span>
547 <span className="text-lg font-medium"> 583 <span className="text-lg font-medium">
548 {record.totalPayment} 584 {record.totalPayment}
549 </span> 585 </span>
@@ -764,7 +800,7 @@ const OrderPage = () =&gt; { @@ -764,7 +800,7 @@ const OrderPage = () =&gt; {
764 '' 800 ''
765 )} 801 )}
766 802
767 - {record.mainPath.includes('OrderCancel') ? ( 803 + {record.mainPath.includes('orderCancel') ? (
768 <ButtonConfirm 804 <ButtonConfirm
769 className="p-0" 805 className="p-0"
770 title="确认作废?" 806 title="确认作废?"
@@ -925,6 +961,7 @@ const OrderPage = () =&gt; { @@ -925,6 +961,7 @@ const OrderPage = () =&gt; {
925 961
926 return ( 962 return (
927 <PageContainer 963 <PageContainer
  964 + className="order-page-container"
928 header={{ 965 header={{
929 title: '订单管理', 966 title: '订单管理',
930 extra: [ 967 extra: [
@@ -1154,6 +1191,16 @@ const OrderPage = () =&gt; { @@ -1154,6 +1191,16 @@ const OrderPage = () =&gt; {
1154 /> 1191 />
1155 )} 1192 )}
1156 1193
  1194 + {deliverInfoDrawerVisible && (
  1195 + <DeliverInfoDrawer
  1196 + data={orderRow}
  1197 + onClose={() => {
  1198 + setDeliverInfoDrawerVisible(false);
  1199 + setOrderRow({});
  1200 + }}
  1201 + />
  1202 + )}
  1203 +
1157 {contextHolder} 1204 {contextHolder}
1158 </PageContainer> 1205 </PageContainer>
1159 ); 1206 );