Commit 523b3b7d7d858ab009f00001f1d7de56f78eeb41

Authored by zhongnanhuang
1 parent 7293ba72

feat: update

.umirc.ts
@@ -13,7 +13,8 @@ export default defineConfig({ @@ -13,7 +13,8 @@ export default defineConfig({
13 }, 13 },
14 proxy: { 14 proxy: {
15 '/service/': { 15 '/service/': {
16 - target: 'http://39.108.227.113:8085/', 16 + target: 'http://localhost:8085/',
  17 + // target: 'http://39.108.227.113:8085/',
17 changeOrigin: true, 18 changeOrigin: true,
18 // pathRewrite: { '^/api': '' }, 19 // pathRewrite: { '^/api': '' },
19 }, 20 },
src/app.ts
@@ -91,7 +91,7 @@ export const request: RequestConfig = { @@ -91,7 +91,7 @@ export const request: RequestConfig = {
91 // 不再需要异步处理读取返回体内容,可直接在data中读出,部分字段可在 config 中找到 91 // 不再需要异步处理读取返回体内容,可直接在data中读出,部分字段可在 config 中找到
92 const { data = {} as any } = response; 92 const { data = {} as any } = response;
93 if (data.result !== RESPONSE_CODE.SUCCESS) { 93 if (data.result !== RESPONSE_CODE.SUCCESS) {
94 - message.error('服务器错误,请稍后再试!'); 94 + message.error(data.message);
95 } 95 }
96 // do something 96 // do something
97 return response; 97 return response;
src/pages/Order/components/CheckModal.tsx
  1 +import { RESPONSE_CODE } from '@/constants/enum';
1 import { postServiceOrderCheckOrder } from '@/services'; 2 import { postServiceOrderCheckOrder } from '@/services';
2 import { ModalForm, ProFormTextArea } from '@ant-design/pro-components'; 3 import { ModalForm, ProFormTextArea } from '@ant-design/pro-components';
3 import { Button, Form, message } from 'antd'; 4 import { Button, Form, message } from 'antd';
@@ -12,13 +13,11 @@ export default ({ setCheckVisible, data, onClose }) => { @@ -12,13 +13,11 @@ export default ({ setCheckVisible, data, onClose }) => {
12 subOrderIds = subOrderList.map((subOrder) => subOrder.id); 13 subOrderIds = subOrderList.map((subOrder) => subOrder.id);
13 } 14 }
14 async function doCheck(body: object) { 15 async function doCheck(body: object) {
15 - const res = await postServiceOrderCheckOrder({ 16 + const data = await postServiceOrderCheckOrder({
16 data: body, 17 data: body,
17 }); 18 });
18 - if (res.result === 0) {  
19 - message.success(res.message);  
20 - } else {  
21 - message.error(res.message); 19 + if (data.result === RESPONSE_CODE.SUCCESS) {
  20 + message.success(data.message);
22 } 21 }
23 onClose(); 22 onClose();
24 return true; 23 return true;
src/pages/Order/components/DeliverModal.tsx
  1 +import { RESPONSE_CODE } from '@/constants/enum';
  2 +import { postServiceOrderSendProduct } from '@/services';
1 import { enumToSelect } from '@/utils'; 3 import { enumToSelect } from '@/utils';
2 import { 4 import {
3 ProColumns, 5 ProColumns,
@@ -6,7 +8,7 @@ import { @@ -6,7 +8,7 @@ import {
6 ProFormText, 8 ProFormText,
7 ProTable, 9 ProTable,
8 } from '@ant-design/pro-components'; 10 } from '@ant-design/pro-components';
9 -import { Button, InputNumber, Modal } from 'antd'; 11 +import { Button, Input, InputNumber, Modal, Select, message } from 'antd';
10 import { cloneDeep } from 'lodash'; 12 import { cloneDeep } from 'lodash';
11 import { useEffect, useRef, useState } from 'react'; 13 import { useEffect, useRef, useState } from 'react';
12 import { LOGISTICS_STATUS_OPTIONS } from '../constant'; 14 import { LOGISTICS_STATUS_OPTIONS } from '../constant';
@@ -19,49 +21,67 @@ const DeliverModal = ({ data: propsData, onClose }) => { @@ -19,49 +21,67 @@ const DeliverModal = ({ data: propsData, onClose }) => {
19 setData(propsData); 21 setData(propsData);
20 }, [propsData]); 22 }, [propsData]);
21 23
22 - const handleChange = (key: string, index: number) => (e) => {  
23 - const newData = cloneDeep(data);  
24 - newData[index][key] = e.target.value;  
25 - setData(newData);  
26 - }; 24 + // const handleChange = (key: string, index: number) => (e) => {
  25 + // const newData = cloneDeep(data);
  26 + // newData[index][key] = e.target.value;
  27 + // setData(newData);
  28 + // };
27 const columns: ProColumns<any>[] = [ 29 const columns: ProColumns<any>[] = [
28 { 30 {
  31 + title: 'ID',
  32 + width: 80,
  33 + dataIndex: 'id',
  34 + render: (_, record) => <Input value={record.id} disabled />,
  35 + },
  36 + {
29 title: '商品编号', 37 title: '商品编号',
30 width: 80, 38 width: 80,
31 - dataIndex: 'name', 39 + dataIndex: 'productCode',
  40 + render: (_, record) => <Input value={record.productCode} disabled />,
32 }, 41 },
33 { 42 {
34 title: '商品名称', 43 title: '商品名称',
35 - dataIndex: 'containers', 44 + dataIndex: 'productName',
36 align: 'right', 45 align: 'right',
  46 + width: 80,
  47 + render: (_, record) => <Input value={record.productName} disabled />,
  48 + },
  49 + {
  50 + title: '商品参数',
  51 + dataIndex: 'parameters',
  52 + align: 'right',
  53 + width: 80,
  54 + render: (_, record) => <Input value={record.parameters} disabled />,
37 }, 55 },
38 { 56 {
39 title: '商品数量', 57 title: '商品数量',
40 width: 80, 58 width: 80,
41 dataIndex: 'status', 59 dataIndex: 'status',
  60 + render: (_, record) => <InputNumber value={record.quantity} disabled />,
42 }, 61 },
43 { 62 {
44 title: '物流方式', 63 title: '物流方式',
45 - width: 180, 64 + width: 150,
46 key: 'logisticsMethod', 65 key: 'logisticsMethod',
47 - render: () => (  
48 - <ProFormSelect 66 + render: (_, record) => (
  67 + <Select
49 placeholder="请输入物流方式" 68 placeholder="请输入物流方式"
50 - name="logisticsMethod"  
51 - width="lg"  
52 - label="物流方式" 69 + value={record.logisticsMethod}
53 options={enumToSelect(LOGISTICS_STATUS_OPTIONS)} 70 options={enumToSelect(LOGISTICS_STATUS_OPTIONS)}
  71 + onChange={(value) => (record.logisticsMethod = value)} //修改时更改record数据
54 /> 72 />
55 ), 73 ),
56 }, 74 },
57 { 75 {
58 title: '物流单号', 76 title: '物流单号',
59 - width: 180, 77 + width: 150,
60 key: 'serialNumber', 78 key: 'serialNumber',
61 - render: (_, record, index) => (  
62 - <InputNumber  
63 - value={record.productCode}  
64 - onChange={handleChange('productCode', index)} 79 + render: (_, record) => (
  80 + <Input
  81 + placeholder="请输入物流单号"
  82 + value={record.serialNumber}
  83 + onChange={(event) => (record.serialNumber = event.target.value)}
  84 + // onChange={handleChange('productCode', index)}
65 /> 85 />
66 ), 86 ),
67 }, 87 },
@@ -72,9 +92,23 @@ const DeliverModal = ({ data: propsData, onClose }) =&gt; { @@ -72,9 +92,23 @@ const DeliverModal = ({ data: propsData, onClose }) =&gt; {
72 open 92 open
73 width={800} 93 width={800}
74 title="发货" 94 title="发货"
75 - onOk={() => {  
76 - console.log(data);  
77 - onClose(); 95 + onOk={async () => {
  96 + //请求体封装
  97 + let list = data.map((item) => {
  98 + return {
  99 + id: item.id,
  100 + logisticsMethod: item.logisticsMethod,
  101 + serialNumber: item.serialNumber,
  102 + };
  103 + });
  104 + let body = { id: data[0].mainOrderId, list: list };
  105 + console.log(body);
  106 + //发货请求
  107 + const res = await postServiceOrderSendProduct({ data: body });
  108 + if (res.result === RESPONSE_CODE.SUCCESS) {
  109 + message.success(res.message);
  110 + onClose();
  111 + }
78 }} 112 }}
79 onCancel={() => { 113 onCancel={() => {
80 onClose(); 114 onClose();
@@ -87,8 +121,14 @@ const DeliverModal = ({ data: propsData, onClose }) =&gt; { @@ -87,8 +121,14 @@ const DeliverModal = ({ data: propsData, onClose }) =&gt; {
87 className="mb-8" 121 className="mb-8"
88 formRef={form} 122 formRef={form}
89 > 123 >
90 - <ProFormText name="paymentChannel" label="物流方式"></ProFormText>  
91 - <ProFormText name="productCode" label="物流单号"></ProFormText> 124 + <ProFormSelect
  125 + placeholder="请输入物流方式"
  126 + name="logisticsMethod"
  127 + width="sm"
  128 + label="物流方式"
  129 + options={enumToSelect(LOGISTICS_STATUS_OPTIONS)}
  130 + />
  131 + <ProFormText name="serialNumber" label="物流单号"></ProFormText>
92 <Button 132 <Button
93 type="primary" 133 type="primary"
94 onClick={() => { 134 onClick={() => {
@@ -96,8 +136,8 @@ const DeliverModal = ({ data: propsData, onClose }) =&gt; { @@ -96,8 +136,8 @@ const DeliverModal = ({ data: propsData, onClose }) =&gt; {
96 let newData = cloneDeep(data); 136 let newData = cloneDeep(data);
97 newData = newData.map((item) => ({ 137 newData = newData.map((item) => ({
98 ...item, 138 ...item,
99 - paymentChannel: values.paymentChannel,  
100 - productCode: values.productCode, // 物流单号? 139 + logisticsMethod: values.logisticsMethod,
  140 + serialNumber: values.serialNumber, // 物流单号?
101 })); 141 }));
102 setData(newData); 142 setData(newData);
103 }} 143 }}
@@ -108,7 +148,7 @@ const DeliverModal = ({ data: propsData, onClose }) =&gt; { @@ -108,7 +148,7 @@ const DeliverModal = ({ data: propsData, onClose }) =&gt; {
108 <ProTable<any> 148 <ProTable<any>
109 className="px-0" 149 className="px-0"
110 dataSource={data} 150 dataSource={data}
111 - rowKey="key" 151 + rowKey="id"
112 pagination={false} 152 pagination={false}
113 columns={columns} 153 columns={columns}
114 search={false} 154 search={false}
src/pages/Order/components/OrderDrawer.tsx
  1 +import { RESPONSE_CODE } from '@/constants/enum';
1 import { 2 import {
2 postServiceOrderAddOrder, 3 postServiceOrderAddOrder,
3 postServiceOrderQueryProductInformation, 4 postServiceOrderQueryProductInformation,
@@ -145,8 +146,10 @@ export default ({ onClose, data }) =&gt; { @@ -145,8 +146,10 @@ export default ({ onClose, data }) =&gt; {
145 }} 146 }}
146 submitTimeout={2000} 147 submitTimeout={2000}
147 onFinish={async (values) => { 148 onFinish={async (values) => {
148 - await postServiceOrderAddOrder({ data: values });  
149 - message.success('提交成功'); 149 + const data = await postServiceOrderAddOrder({ data: values });
  150 + if (data.result === RESPONSE_CODE.SUCCESS) {
  151 + message.success(data.message);
  152 + }
150 // 不返回不会关闭弹框 153 // 不返回不会关闭弹框
151 onClose(); 154 onClose();
152 return true; 155 return true;
@@ -361,9 +364,8 @@ export default ({ onClose, data }) =&gt; { @@ -361,9 +364,8 @@ export default ({ onClose, data }) =&gt; {
361 }, 364 },
362 ]} 365 ]}
363 actionGuard={{ 366 actionGuard={{
364 - beforeAddRow: async (defaultValue, insertIndex) => { 367 + beforeAddRow: async () => {
365 return new Promise((resolve) => { 368 return new Promise((resolve) => {
366 - console.log(defaultValue, insertIndex);  
367 rowNumber.current = 1; 369 rowNumber.current = 1;
368 setTimeout(() => resolve(true), 1000); 370 setTimeout(() => resolve(true), 1000);
369 }); 371 });
@@ -371,7 +373,7 @@ export default ({ onClose, data }) =&gt; { @@ -371,7 +373,7 @@ export default ({ onClose, data }) =&gt; {
371 beforeRemoveRow: async (index) => { 373 beforeRemoveRow: async (index) => {
372 return new Promise((resolve) => { 374 return new Promise((resolve) => {
373 if (index === 0) { 375 if (index === 0) {
374 - message.error('这行不能删'); 376 + message.error('第一行数据不能删除');
375 resolve(false); 377 resolve(false);
376 return; 378 return;
377 } 379 }
src/pages/Order/index.tsx
1 import ButtonConfirm from '@/components/ButtomConfirm'; 1 import ButtonConfirm from '@/components/ButtomConfirm';
2 -import { postServiceOrderQueryServiceOrder } from '@/services'; 2 +import { RESPONSE_CODE } from '@/constants/enum';
  3 +import {
  4 + postServiceOrderExport,
  5 + postServiceOrderOrderCancel,
  6 + postServiceOrderPrintOrder,
  7 + postServiceOrderQueryServiceOrder,
  8 +} from '@/services';
  9 +import { orderExport } from '@/services/order';
3 import { enumValueToLabel } from '@/utils'; 10 import { enumValueToLabel } from '@/utils';
  11 +import { DownOutlined } from '@ant-design/icons';
4 import { 12 import {
5 PageContainer, 13 PageContainer,
6 ProColumns, 14 ProColumns,
7 ProTable, 15 ProTable,
8 } from '@ant-design/pro-components'; 16 } from '@ant-design/pro-components';
9 -import { Button, Checkbox, Divider, Flex, Space, Tag, message } from 'antd'; 17 +import {
  18 + Button,
  19 + Checkbox,
  20 + Divider,
  21 + Dropdown,
  22 + Flex,
  23 + MenuProps,
  24 + Space,
  25 + Tag,
  26 + message,
  27 +} from 'antd';
  28 +import { cloneDeep } from 'lodash';
10 import { Key, useRef, useState } from 'react'; 29 import { Key, useRef, useState } from 'react';
11 import CheckModal from './components/CheckModal'; 30 import CheckModal from './components/CheckModal';
12 import DeliverModal from './components/DeliverModal'; 31 import DeliverModal from './components/DeliverModal';
13 import OrderDrawer from './components/OrderDrawer'; 32 import OrderDrawer from './components/OrderDrawer';
14 import { 33 import {
15 INVOCING_STATUS_OPTIONS, 34 INVOCING_STATUS_OPTIONS,
  35 + LOGISTICS_STATUS_OPTIONS,
16 MAIN_ORDER_COLUMNS, 36 MAIN_ORDER_COLUMNS,
17 ORDER_STATUS_OPTIONS, 37 ORDER_STATUS_OPTIONS,
18 PAYMENT_CHANNEL_OPTIONS, 38 PAYMENT_CHANNEL_OPTIONS,
@@ -29,6 +49,7 @@ const OrderPage = () =&gt; { @@ -29,6 +49,7 @@ const OrderPage = () =&gt; {
29 const [expandedRowKeys, setExpandedRowKeys] = useState<Key[]>([]); 49 const [expandedRowKeys, setExpandedRowKeys] = useState<Key[]>([]);
30 const [orderRow, setOrderRow] = useState<Partial<OrderType>>({}); 50 const [orderRow, setOrderRow] = useState<Partial<OrderType>>({});
31 const [mainOrderAllItemKeys, setMainOrderAllItemKeys] = useState([]); 51 const [mainOrderAllItemKeys, setMainOrderAllItemKeys] = useState([]);
  52 + const [rolePath, setRolePath] = useState([]); //当前角色权限(新增跟打印按钮)
32 53
33 const [selectedRows, setSelectedRows] = useState({}); 54 const [selectedRows, setSelectedRows] = useState({});
34 const [selectedRowObj, setSelectedRowObj] = useState({}); 55 const [selectedRowObj, setSelectedRowObj] = useState({});
@@ -126,60 +147,94 @@ const OrderPage = () =&gt; { @@ -126,60 +147,94 @@ const OrderPage = () =&gt; {
126 总金额:<span className="text-lg">{record.totalPayment}¥</span> 147 总金额:<span className="text-lg">{record.totalPayment}¥</span>
127 </div> 148 </div>
128 <Space> 149 <Space>
129 - <Button  
130 - className="p-0"  
131 - type="link"  
132 - onClick={() => {  
133 - if (!selectedRowObj[record.id]?.length) {  
134 - return message.error('请选择选择子订单');  
135 - }  
136 - setSelectedRows(selectedRowObj[record.id]);  
137 - setDeliverVisible(true);  
138 - }}  
139 - >  
140 - 发货  
141 - </Button>  
142 - <Button  
143 - className="p-0"  
144 - type="link"  
145 - onClick={() => {  
146 - window.print();  
147 - }}  
148 - >  
149 - 打印  
150 - </Button>  
151 - <ButtonConfirm  
152 - className="p-0"  
153 - title="确认开票?"  
154 - text="开票"  
155 - onConfirm={() => {}}  
156 - />  
157 - <Button  
158 - className="p-0"  
159 - type="link"  
160 - onClick={() => {  
161 - setOrderDrawerVisible(true);  
162 - setOrderRow(record);  
163 - }}  
164 - >  
165 - 编辑  
166 - </Button>  
167 - <Button  
168 - className="p-0"  
169 - type="link"  
170 - onClick={() => {  
171 - setOrderRow(record);  
172 - setCheckVisible(true);  
173 - }}  
174 - >  
175 - 审核  
176 - </Button>  
177 - <ButtonConfirm  
178 - className="p-0"  
179 - title="确认作废?"  
180 - text="作废"  
181 - onConfirm={() => {}}  
182 - /> 150 + {record.mainPath.includes('sendProduct') ? (
  151 + <Button
  152 + className="p-0"
  153 + type="link"
  154 + onClick={() => {
  155 + if (!selectedRowObj[record.id]?.length) {
  156 + return message.error('请选择选择子订单');
  157 + }
  158 + setSelectedRows(selectedRowObj[record.id]);
  159 + setDeliverVisible(true);
  160 + }}
  161 + >
  162 + 发货
  163 + </Button>
  164 + ) : (
  165 + ''
  166 + )}
  167 + {record.mainPath.includes('printOrder') ? (
  168 + <Button
  169 + className="p-0"
  170 + type="link"
  171 + onClick={() => {
  172 + window.print();
  173 + }}
  174 + >
  175 + 打印
  176 + </Button>
  177 + ) : (
  178 + ''
  179 + )}
  180 + {record.mainPath.includes('confirmReceipt') ? (
  181 + <ButtonConfirm
  182 + className="p-0"
  183 + title="确认开票?"
  184 + text="开票"
  185 + onConfirm={() => {}}
  186 + />
  187 + ) : (
  188 + ''
  189 + )}
  190 + {record.mainPath.includes('updateOrder') ? (
  191 + <Button
  192 + className="p-0"
  193 + type="link"
  194 + onClick={() => {
  195 + setOrderDrawerVisible(true);
  196 + setOrderRow(record);
  197 + }}
  198 + >
  199 + 编辑
  200 + </Button>
  201 + ) : (
  202 + ''
  203 + )}
  204 + {record.mainPath.includes('checkOrder') ? (
  205 + <Button
  206 + className="p-0"
  207 + type="link"
  208 + onClick={() => {
  209 + setOrderRow(record);
  210 + setCheckVisible(true);
  211 + }}
  212 + >
  213 + 审核
  214 + </Button>
  215 + ) : (
  216 + ''
  217 + )}
  218 +
  219 + {record.mainPath.includes('OrderCancel') ? (
  220 + <ButtonConfirm
  221 + className="p-0"
  222 + title="确认作废?"
  223 + text="作废"
  224 + onConfirm={async () => {
  225 + let body = { id: record.id };
  226 + const data = await postServiceOrderOrderCancel({
  227 + data: body,
  228 + });
  229 + if (data.result === RESPONSE_CODE.SUCCESS) {
  230 + message.success(data.message);
  231 + mainTableRef.current?.reload();
  232 + }
  233 + }}
  234 + />
  235 + ) : (
  236 + ''
  237 + )}
183 </Space> 238 </Space>
184 </Space.Compact> 239 </Space.Compact>
185 <Space.Compact direction="vertical"> 240 <Space.Compact direction="vertical">
@@ -225,7 +280,6 @@ const OrderPage = () =&gt; { @@ -225,7 +280,6 @@ const OrderPage = () =&gt; {
225 ...item, 280 ...item,
226 render: (text: string) => { 281 render: (text: string) => {
227 let label = enumValueToLabel(text, ORDER_STATUS_OPTIONS); 282 let label = enumValueToLabel(text, ORDER_STATUS_OPTIONS);
228 - console.log('label:' + label);  
229 if (label === undefined) { 283 if (label === undefined) {
230 label = enumValueToLabel(text, INVOCING_STATUS_OPTIONS); 284 label = enumValueToLabel(text, INVOCING_STATUS_OPTIONS);
231 } 285 }
@@ -239,7 +293,11 @@ const OrderPage = () =&gt; { @@ -239,7 +293,11 @@ const OrderPage = () =&gt; {
239 } 293 }
240 294
241 //枚举字段处理 295 //枚举字段处理
242 - if (item.key === 'paymentMethod' || item.key === 'paymentChannel') { 296 + if (
  297 + item.key === 'paymentMethod' ||
  298 + item.key === 'paymentChannel' ||
  299 + item.key === 'logisticsMethod'
  300 + ) {
243 return { 301 return {
244 ...item, 302 ...item,
245 render: (text: string) => { 303 render: (text: string) => {
@@ -247,6 +305,9 @@ const OrderPage = () =&gt; { @@ -247,6 +305,9 @@ const OrderPage = () =&gt; {
247 if (label === undefined) { 305 if (label === undefined) {
248 label = enumValueToLabel(text, PAYMENT_METHOD_OPTIONS); 306 label = enumValueToLabel(text, PAYMENT_METHOD_OPTIONS);
249 } 307 }
  308 + if (label === undefined) {
  309 + label = enumValueToLabel(text, LOGISTICS_STATUS_OPTIONS);
  310 + }
250 return label; 311 return label;
251 }, 312 },
252 }; 313 };
@@ -261,32 +322,92 @@ const OrderPage = () =&gt; { @@ -261,32 +322,92 @@ const OrderPage = () =&gt; {
261 align: 'center', 322 align: 'center',
262 render: (optText, optRecord) => ( 323 render: (optText, optRecord) => (
263 <Flex> 324 <Flex>
264 - <Button  
265 - type="link"  
266 - size="small"  
267 - onClick={() => {  
268 - mainTableRef.current?.reload();  
269 - }}  
270 - >  
271 - 编辑  
272 - </Button>  
273 - <Button  
274 - type="link"  
275 - size="small"  
276 - onClick={() => {  
277 - setCheckVisible(true);  
278 - setOrderRow(optRecord);  
279 - }}  
280 - >  
281 - 审核  
282 - </Button> 325 + {optRecord.subPath.includes('sendProduct') ? (
  326 + <Button
  327 + className="p-0"
  328 + type="link"
  329 + onClick={() => {
  330 + optRecord.mainOrderId = record.id;
  331 + setSelectedRows([cloneDeep(optRecord)]); //克隆一份数据,避免后续修改污染
  332 + setDeliverVisible(true);
  333 + }}
  334 + >
  335 + 发货
  336 + </Button>
  337 + ) : (
  338 + ''
  339 + )}
  340 + {optRecord.subPath.includes('printOrder') ? (
  341 + <Button
  342 + className="p-0"
  343 + type="link"
  344 + onClick={async () => {
  345 + //调用打印接口
  346 + let body = { subIds: [optRecord.id] };
  347 + const data = await postServiceOrderPrintOrder({
  348 + data: body,
  349 + });
  350 + if (data.result === RESPONSE_CODE.SUCCESS) {
  351 + message.success(data.message);
  352 + window.print();
  353 + mainTableRef.current?.reload();
  354 + }
  355 + }}
  356 + >
  357 + 打印
  358 + </Button>
  359 + ) : (
  360 + ''
  361 + )}
  362 + {optRecord.subPath.includes('confirmReceipt') ? (
  363 + <ButtonConfirm
  364 + className="p-0"
  365 + title="确认开票?"
  366 + text="开票"
  367 + onConfirm={() => {}}
  368 + />
  369 + ) : (
  370 + ''
  371 + )}
  372 + {optRecord.subPath.includes('updateOrder') ? (
  373 + <Button
  374 + className="p-0"
  375 + type="link"
  376 + onClick={() => {
  377 + setOrderDrawerVisible(true);
  378 + setOrderRow(optRecord);
  379 + }}
  380 + >
  381 + 编辑
  382 + </Button>
  383 + ) : (
  384 + ''
  385 + )}
  386 + {optRecord.subPath.includes('checkOrder') ? (
  387 + <Button
  388 + className="p-0"
  389 + type="link"
  390 + onClick={() => {
  391 + setOrderRow(optRecord);
  392 + setCheckVisible(true);
  393 + }}
  394 + >
  395 + 审核
  396 + </Button>
  397 + ) : (
  398 + ''
  399 + )}
283 400
284 - <Button type="link" size="small">  
285 - 备注  
286 - </Button>  
287 - <Button type="link" size="small">  
288 - 作废  
289 - </Button> 401 + {/* {optRecord.subPath.includes("OrderCancel") ?
  402 + <ButtonConfirm
  403 + className="p-0"
  404 + title="确认作废?"
  405 + text="作废"
  406 + onConfirm={() => {
  407 + }}
  408 + />
  409 + : ''
  410 + } */}
290 </Flex> 411 </Flex>
291 ), 412 ),
292 }, 413 },
@@ -304,7 +425,6 @@ const OrderPage = () =&gt; { @@ -304,7 +425,6 @@ const OrderPage = () =&gt; {
304 ])} 425 ])}
305 rowSelection={{ 426 rowSelection={{
306 onChange: (selectedRowKeys: any, selectedRows: any) => { 427 onChange: (selectedRowKeys: any, selectedRows: any) => {
307 - console.log(selectedRowKeys, selectedRows);  
308 setSelectedRowObj({ 428 setSelectedRowObj({
309 ...setSelectedRowObj, 429 ...setSelectedRowObj,
310 [record.id]: selectedRows, 430 [record.id]: selectedRows,
@@ -325,6 +445,101 @@ const OrderPage = () =&gt; { @@ -325,6 +445,101 @@ const OrderPage = () =&gt; {
325 ); 445 );
326 }; 446 };
327 447
  448 + function toolBarRender() {
  449 + let toolBtns = [];
  450 +
  451 + //导出按钮配置
  452 + const items: MenuProps['items'] = [
  453 + {
  454 + label: '导出已选中订单',
  455 + key: '1',
  456 + onClick: async () => {
  457 + if (selectedItems.length === 0) {
  458 + message.error('请选择订单');
  459 + return;
  460 + }
  461 + let body = { flag: true, ids: selectedItems };
  462 + // const data = await postServiceOrderExport({ data: { flag: true, ids: selectedItems } });
  463 + orderExport(body);
  464 + // if (data.result === RESPONSE_CODE.SUCCESS) {
  465 + // message.success(data.message);
  466 + // }
  467 + },
  468 + },
  469 + {
  470 + label: '导出当前页订单',
  471 + key: '2',
  472 + onClick: async () => {
  473 + if (mainOrderAllItemKeys.length === 0) {
  474 + message.error('当前没有订单');
  475 + return;
  476 + }
  477 + const data = await postServiceOrderExport({
  478 + data: { flag: true, ids: mainOrderAllItemKeys },
  479 + });
  480 + if (data.result === RESPONSE_CODE.SUCCESS) {
  481 + message.success(data.message);
  482 + }
  483 + },
  484 + },
  485 + {
  486 + label: '导出所有订单',
  487 + key: '3',
  488 + onClick: async () => {
  489 + const data = await postServiceOrderExport({
  490 + data: { flag: false, ids: [] },
  491 + });
  492 + if (data.result === RESPONSE_CODE.SUCCESS) {
  493 + message.success(data.message);
  494 + }
  495 + },
  496 + },
  497 + ];
  498 +
  499 + const menuProps = {
  500 + items,
  501 + onClick: () => {},
  502 + };
  503 +
  504 + if (rolePath.includes('addOrder')) {
  505 + toolBtns.push(
  506 + <Button
  507 + type="primary"
  508 + key="out"
  509 + onClick={() => setOrderDrawerVisible(true)}
  510 + >
  511 + 新增
  512 + </Button>,
  513 + );
  514 + }
  515 +
  516 + toolBtns.push(
  517 + <Dropdown menu={menuProps}>
  518 + <Button>
  519 + <Space>
  520 + 导出
  521 + <DownOutlined />
  522 + </Space>
  523 + </Button>
  524 + </Dropdown>,
  525 + );
  526 +
  527 + toolBtns.push(
  528 + <Button
  529 + key="show"
  530 + onClick={() => {
  531 + handleAllExpand();
  532 + }}
  533 + >
  534 + {mainOrderAllItemKeys?.length !== expandedRowKeys.length
  535 + ? '一键展开'
  536 + : '一键收起'}
  537 + </Button>,
  538 + );
  539 +
  540 + return toolBtns;
  541 + }
  542 +
328 return ( 543 return (
329 <PageContainer 544 <PageContainer
330 header={{ 545 header={{
@@ -363,30 +578,21 @@ const OrderPage = () =&gt; { @@ -363,30 +578,21 @@ const OrderPage = () =&gt; {
363 filter, 578 filter,
364 data: params, 579 data: params,
365 }); 580 });
366 - setMainOrderAllItemKeys(data?.data?.map((d) => d.id)); //存储所有主订单的key,一键展开用 581 + let mainOrderIds = data?.data?.map((d) => d.id);
  582 + if (mainOrderAllItemKeys === undefined) {
  583 + setMainOrderAllItemKeys([]);
  584 + } else {
  585 + setMainOrderAllItemKeys(mainOrderIds);
  586 + }
  587 + setRolePath(data.specialPath);
367 return { 588 return {
368 data: data?.data || [], 589 data: data?.data || [],
369 total: data?.total || 0, 590 total: data?.total || 0,
370 }; 591 };
371 }} 592 }}
372 - toolBarRender={() => [  
373 - <Button  
374 - key="show"  
375 - onClick={() => {  
376 - handleAllExpand();  
377 - }}  
378 - >  
379 - {mainOrderAllItemKeys.length !== expandedRowKeys.length  
380 - ? '一键展开'  
381 - : '一键收起'}  
382 - </Button>,  
383 - <Button key="out" onClick={() => setOrderDrawerVisible(true)}>  
384 - 新增  
385 - </Button>,  
386 - <Button key="primary" type="primary" onClick={() => {}}>  
387 - 导出  
388 - </Button>,  
389 - ]} 593 + toolBarRender={() => {
  594 + return toolBarRender();
  595 + }}
390 /> 596 />
391 597
392 {orderDrawerVisible && ( 598 {orderDrawerVisible && (
@@ -416,8 +622,9 @@ const OrderPage = () =&gt; { @@ -416,8 +622,9 @@ const OrderPage = () =&gt; {
416 <DeliverModal 622 <DeliverModal
417 data={selectedRows} 623 data={selectedRows}
418 onClose={() => { 624 onClose={() => {
419 - setCheckVisible(false); 625 + setDeliverVisible(false);
420 setOrderRow({}); 626 setOrderRow({});
  627 + mainTableRef.current?.reload();
421 }} 628 }}
422 /> 629 />
423 )} 630 )}
src/services/definition.ts
@@ -365,6 +365,30 @@ export interface DictionaryVO { @@ -365,6 +365,30 @@ export interface DictionaryVO {
365 sort?: number; 365 sort?: number;
366 } 366 }
367 367
  368 +export interface InvoicingDto {
  369 + /**
  370 + * @description
  371 + * 收款时间
  372 + * @format date-time
  373 + * @example
  374 + * 2023-11-12 16:12
  375 + */
  376 + collectMoneyTime?: string;
  377 + /**
  378 + * @description
  379 + * 开票时间
  380 + * @format date-time
  381 + * @example
  382 + * 2023-11-12 16:12
  383 + */
  384 + invoicingTime?: string;
  385 + /**
  386 + * @description
  387 + * 子订单id集合
  388 + */
  389 + subIds?: Array<number>;
  390 +}
  391 +
368 export interface ModelAndView { 392 export interface ModelAndView {
369 empty?: boolean; 393 empty?: boolean;
370 model?: any; 394 model?: any;
@@ -485,6 +509,15 @@ export interface OrderBaseInfoVO { @@ -485,6 +509,15 @@ export interface OrderBaseInfoVO {
485 smallPicUrl?: string; 509 smallPicUrl?: string;
486 } 510 }
487 511
  512 +export interface OrderCancelDto {
  513 + /**
  514 + * @description
  515 + * 订单id
  516 + * @format int64
  517 + */
  518 + id?: number;
  519 +}
  520 +
488 export interface OrderCompletionReportFieldVO { 521 export interface OrderCompletionReportFieldVO {
489 ideaManualRate?: string; 522 ideaManualRate?: string;
490 ideaSource?: string; 523 ideaSource?: string;
src/services/order.ts 0 → 100644
  1 +import axios from 'axios';
  2 +
  3 +export const orderExport = async (data: any = {}) => {
  4 + // const res = await defHttp.post<any>({ url: Api.EXPORT, data });
  5 +
  6 + axios({
  7 + url: '/service/order/export',
  8 + method: 'post',
  9 + responseType: 'blob',
  10 + data,
  11 + })
  12 + .then((response) => {
  13 + // 创建一个新的 Blob 对象,它包含了服务器响应的数据(即你的 Excel 文件)
  14 + const blob = new Blob([response.data]); // Excel 的 MIME 类型
  15 + const downloadUrl = window.URL.createObjectURL(blob);
  16 + const a = document.createElement('a');
  17 + a.href = downloadUrl;
  18 + a.download = '订单.xlsx'; // 你可以为文件命名
  19 + document.body.appendChild(a);
  20 + a.click(); // 模拟点击操作来下载文件
  21 + URL.revokeObjectURL(downloadUrl); // 释放掉 blob 对象所占用的内存
  22 + document.body.removeChild(a);
  23 + })
  24 + .catch((error) => {
  25 + // 处理错误
  26 + console.error('导出错误', error);
  27 + });
  28 +};
src/services/request.ts
@@ -26,9 +26,12 @@ import type { @@ -26,9 +26,12 @@ import type {
26 DictionaryQueryVO, 26 DictionaryQueryVO,
27 DictionaryVO, 27 DictionaryVO,
28 Dto, 28 Dto,
  29 + InvoicingDto,
  30 + ModelAndView,
29 OrderAddVO, 31 OrderAddVO,
30 OrderAuditLogQueryVO, 32 OrderAuditLogQueryVO,
31 OrderBaseInfoQueryVO, 33 OrderBaseInfoQueryVO,
  34 + OrderCancelDto,
32 OrderFieldLockApplyQueryVO, 35 OrderFieldLockApplyQueryVO,
33 OrderOptLogQueryVO, 36 OrderOptLogQueryVO,
34 OrderProfitAnalysisVo, 37 OrderProfitAnalysisVo,
@@ -217,9 +220,7 @@ export interface GetErrorResponse { @@ -217,9 +220,7 @@ export interface GetErrorResponse {
217 * @description 220 * @description
218 * OK 221 * OK
219 */ 222 */
220 - 200: {  
221 - [propertyName: string]: any;  
222 - }; 223 + 200: ModelAndView;
223 /** 224 /**
224 * @description 225 * @description
225 * Unauthorized 226 * Unauthorized
@@ -240,9 +241,9 @@ export interface GetErrorResponse { @@ -240,9 +241,9 @@ export interface GetErrorResponse {
240 export type GetErrorResponseSuccess = GetErrorResponse[200]; 241 export type GetErrorResponseSuccess = GetErrorResponse[200];
241 /** 242 /**
242 * @description 243 * @description
243 - * error 244 + * errorHtml
244 * @tags basic-error-controller 245 * @tags basic-error-controller
245 - * @produces * 246 + * @produces text/html
246 */ 247 */
247 export const getError = /* #__PURE__ */ (() => { 248 export const getError = /* #__PURE__ */ (() => {
248 const method = 'get'; 249 const method = 'get';
@@ -266,9 +267,7 @@ export interface PutErrorResponse { @@ -266,9 +267,7 @@ export interface PutErrorResponse {
266 * @description 267 * @description
267 * OK 268 * OK
268 */ 269 */
269 - 200: {  
270 - [propertyName: string]: any;  
271 - }; 270 + 200: ModelAndView;
272 /** 271 /**
273 * @description 272 * @description
274 * Created 273 * Created
@@ -294,9 +293,9 @@ export interface PutErrorResponse { @@ -294,9 +293,9 @@ export interface PutErrorResponse {
294 export type PutErrorResponseSuccess = PutErrorResponse[200]; 293 export type PutErrorResponseSuccess = PutErrorResponse[200];
295 /** 294 /**
296 * @description 295 * @description
297 - * error 296 + * errorHtml
298 * @tags basic-error-controller 297 * @tags basic-error-controller
299 - * @produces * 298 + * @produces text/html
300 * @consumes application/json 299 * @consumes application/json
301 */ 300 */
302 export const putError = /* #__PURE__ */ (() => { 301 export const putError = /* #__PURE__ */ (() => {
@@ -321,9 +320,7 @@ export interface PostErrorResponse { @@ -321,9 +320,7 @@ export interface PostErrorResponse {
321 * @description 320 * @description
322 * OK 321 * OK
323 */ 322 */
324 - 200: {  
325 - [propertyName: string]: any;  
326 - }; 323 + 200: ModelAndView;
327 /** 324 /**
328 * @description 325 * @description
329 * Created 326 * Created
@@ -349,9 +346,9 @@ export interface PostErrorResponse { @@ -349,9 +346,9 @@ export interface PostErrorResponse {
349 export type PostErrorResponseSuccess = PostErrorResponse[200]; 346 export type PostErrorResponseSuccess = PostErrorResponse[200];
350 /** 347 /**
351 * @description 348 * @description
352 - * error 349 + * errorHtml
353 * @tags basic-error-controller 350 * @tags basic-error-controller
354 - * @produces * 351 + * @produces text/html
355 * @consumes application/json 352 * @consumes application/json
356 */ 353 */
357 export const postError = /* #__PURE__ */ (() => { 354 export const postError = /* #__PURE__ */ (() => {
@@ -376,9 +373,7 @@ export interface DeleteErrorResponse { @@ -376,9 +373,7 @@ export interface DeleteErrorResponse {
376 * @description 373 * @description
377 * OK 374 * OK
378 */ 375 */
379 - 200: {  
380 - [propertyName: string]: any;  
381 - }; 376 + 200: ModelAndView;
382 /** 377 /**
383 * @description 378 * @description
384 * No Content 379 * No Content
@@ -399,9 +394,9 @@ export interface DeleteErrorResponse { @@ -399,9 +394,9 @@ export interface DeleteErrorResponse {
399 export type DeleteErrorResponseSuccess = DeleteErrorResponse[200]; 394 export type DeleteErrorResponseSuccess = DeleteErrorResponse[200];
400 /** 395 /**
401 * @description 396 * @description
402 - * error 397 + * errorHtml
403 * @tags basic-error-controller 398 * @tags basic-error-controller
404 - * @produces * 399 + * @produces text/html
405 */ 400 */
406 export const deleteError = /* #__PURE__ */ (() => { 401 export const deleteError = /* #__PURE__ */ (() => {
407 const method = 'delete'; 402 const method = 'delete';
@@ -425,9 +420,7 @@ export interface OptionsErrorResponse { @@ -425,9 +420,7 @@ export interface OptionsErrorResponse {
425 * @description 420 * @description
426 * OK 421 * OK
427 */ 422 */
428 - 200: {  
429 - [propertyName: string]: any;  
430 - }; 423 + 200: ModelAndView;
431 /** 424 /**
432 * @description 425 * @description
433 * No Content 426 * No Content
@@ -448,9 +441,9 @@ export interface OptionsErrorResponse { @@ -448,9 +441,9 @@ export interface OptionsErrorResponse {
448 export type OptionsErrorResponseSuccess = OptionsErrorResponse[200]; 441 export type OptionsErrorResponseSuccess = OptionsErrorResponse[200];
449 /** 442 /**
450 * @description 443 * @description
451 - * error 444 + * errorHtml
452 * @tags basic-error-controller 445 * @tags basic-error-controller
453 - * @produces * 446 + * @produces text/html
454 * @consumes application/json 447 * @consumes application/json
455 */ 448 */
456 export const optionsError = /* #__PURE__ */ (() => { 449 export const optionsError = /* #__PURE__ */ (() => {
@@ -475,9 +468,7 @@ export interface HeadErrorResponse { @@ -475,9 +468,7 @@ export interface HeadErrorResponse {
475 * @description 468 * @description
476 * OK 469 * OK
477 */ 470 */
478 - 200: {  
479 - [propertyName: string]: any;  
480 - }; 471 + 200: ModelAndView;
481 /** 472 /**
482 * @description 473 * @description
483 * No Content 474 * No Content
@@ -498,9 +489,9 @@ export interface HeadErrorResponse { @@ -498,9 +489,9 @@ export interface HeadErrorResponse {
498 export type HeadErrorResponseSuccess = HeadErrorResponse[200]; 489 export type HeadErrorResponseSuccess = HeadErrorResponse[200];
499 /** 490 /**
500 * @description 491 * @description
501 - * error 492 + * errorHtml
502 * @tags basic-error-controller 493 * @tags basic-error-controller
503 - * @produces * 494 + * @produces text/html
504 * @consumes application/json 495 * @consumes application/json
505 */ 496 */
506 export const headError = /* #__PURE__ */ (() => { 497 export const headError = /* #__PURE__ */ (() => {
@@ -525,9 +516,7 @@ export interface PatchErrorResponse { @@ -525,9 +516,7 @@ export interface PatchErrorResponse {
525 * @description 516 * @description
526 * OK 517 * OK
527 */ 518 */
528 - 200: {  
529 - [propertyName: string]: any;  
530 - }; 519 + 200: ModelAndView;
531 /** 520 /**
532 * @description 521 * @description
533 * No Content 522 * No Content
@@ -548,9 +537,9 @@ export interface PatchErrorResponse { @@ -548,9 +537,9 @@ export interface PatchErrorResponse {
548 export type PatchErrorResponseSuccess = PatchErrorResponse[200]; 537 export type PatchErrorResponseSuccess = PatchErrorResponse[200];
549 /** 538 /**
550 * @description 539 * @description
551 - * error 540 + * errorHtml
552 * @tags basic-error-controller 541 * @tags basic-error-controller
553 - * @produces * 542 + * @produces text/html
554 * @consumes application/json 543 * @consumes application/json
555 */ 544 */
556 export const patchError = /* #__PURE__ */ (() => { 545 export const patchError = /* #__PURE__ */ (() => {
@@ -4708,24 +4697,22 @@ export const postOrderErpUsersUpdatePass = /* #__PURE__ */ (() =&gt; { @@ -4708,24 +4697,22 @@ export const postOrderErpUsersUpdatePass = /* #__PURE__ */ (() =&gt; {
4708 return request; 4697 return request;
4709 })(); 4698 })();
4710 4699
4711 -/** @description request parameter type for getServiceOrderOrderCancelId */  
4712 -export interface GetServiceOrderOrderCancelIdOption { 4700 +/** @description request parameter type for postServiceOrderOrderCancel */
  4701 +export interface PostServiceOrderOrderCancelOption {
4713 /** 4702 /**
4714 * @description 4703 * @description
4715 - * id  
4716 - * @format int64 4704 + * dto
4717 */ 4705 */
4718 - path: { 4706 + body: {
4719 /** 4707 /**
4720 @description 4708 @description
4721 - id  
4722 - @format int64 */  
4723 - id: number; 4709 + dto */
  4710 + dto: OrderCancelDto;
4724 }; 4711 };
4725 } 4712 }
4726 4713
4727 -/** @description response type for getServiceOrderOrderCancelId */  
4728 -export interface GetServiceOrderOrderCancelIdResponse { 4714 +/** @description response type for postServiceOrderOrderCancel */
  4715 +export interface PostServiceOrderOrderCancelResponse {
4729 /** 4716 /**
4730 * @description 4717 * @description
4731 * OK 4718 * OK
@@ -4733,6 +4720,11 @@ export interface GetServiceOrderOrderCancelIdResponse { @@ -4733,6 +4720,11 @@ export interface GetServiceOrderOrderCancelIdResponse {
4733 200: ServerResult; 4720 200: ServerResult;
4734 /** 4721 /**
4735 * @description 4722 * @description
  4723 + * Created
  4724 + */
  4725 + 201: any;
  4726 + /**
  4727 + * @description
4736 * Unauthorized 4728 * Unauthorized
4737 */ 4729 */
4738 401: any; 4730 401: any;
@@ -4748,24 +4740,25 @@ export interface GetServiceOrderOrderCancelIdResponse { @@ -4748,24 +4740,25 @@ export interface GetServiceOrderOrderCancelIdResponse {
4748 404: any; 4740 404: any;
4749 } 4741 }
4750 4742
4751 -export type GetServiceOrderOrderCancelIdResponseSuccess =  
4752 - GetServiceOrderOrderCancelIdResponse[200]; 4743 +export type PostServiceOrderOrderCancelResponseSuccess =
  4744 + PostServiceOrderOrderCancelResponse[200];
4753 /** 4745 /**
4754 * @description 4746 * @description
4755 * 订单作废 4747 * 订单作废
4756 * @tags 内部订单 4748 * @tags 内部订单
4757 * @produces * 4749 * @produces *
  4750 + * @consumes application/json
4758 */ 4751 */
4759 -export const getServiceOrderOrderCancelId = /* #__PURE__ */ (() => {  
4760 - const method = 'get';  
4761 - const url = '/service/order/OrderCancel/:id'; 4752 +export const postServiceOrderOrderCancel = /* #__PURE__ */ (() => {
  4753 + const method = 'post';
  4754 + const url = '/service/order/OrderCancel';
4762 function request( 4755 function request(
4763 - option: GetServiceOrderOrderCancelIdOption,  
4764 - ): Promise<GetServiceOrderOrderCancelIdResponseSuccess> { 4756 + option: PostServiceOrderOrderCancelOption,
  4757 + ): Promise<PostServiceOrderOrderCancelResponseSuccess> {
4765 return requester(request.url, { 4758 return requester(request.url, {
4766 method: request.method, 4759 method: request.method,
4767 ...option, 4760 ...option,
4768 - }) as unknown as Promise<GetServiceOrderOrderCancelIdResponseSuccess>; 4761 + }) as unknown as Promise<PostServiceOrderOrderCancelResponseSuccess>;
4769 } 4762 }
4770 4763
4771 /** http method */ 4764 /** http method */
@@ -4917,8 +4910,8 @@ export const postServiceOrderCheckOrder = /* #__PURE__ */ (() =&gt; { @@ -4917,8 +4910,8 @@ export const postServiceOrderCheckOrder = /* #__PURE__ */ (() =&gt; {
4917 return request; 4910 return request;
4918 })(); 4911 })();
4919 4912
4920 -/** @description request parameter type for getServiceOrderConfirmReceipt */  
4921 -export interface GetServiceOrderConfirmReceiptOption { 4913 +/** @description request parameter type for postServiceOrderConfirmReceipt */
  4914 +export interface PostServiceOrderConfirmReceiptOption {
4922 /** 4915 /**
4923 * @description 4916 * @description
4924 * file 4917 * file
@@ -4931,14 +4924,14 @@ export interface GetServiceOrderConfirmReceiptOption { @@ -4931,14 +4924,14 @@ export interface GetServiceOrderConfirmReceiptOption {
4931 }; 4924 };
4932 } 4925 }
4933 4926
4934 -/** @description request parameter type for getServiceOrderConfirmReceipt */  
4935 -export interface GetServiceOrderConfirmReceiptOption { 4927 +/** @description request parameter type for postServiceOrderConfirmReceipt */
  4928 +export interface PostServiceOrderConfirmReceiptOption {
4936 /** 4929 /**
4937 * @description 4930 * @description
4938 * id 4931 * id
4939 * @format int64 4932 * @format int64
4940 */ 4933 */
4941 - path: { 4934 + query: {
4942 /** 4935 /**
4943 @description 4936 @description
4944 id 4937 id
@@ -4947,8 +4940,8 @@ export interface GetServiceOrderConfirmReceiptOption { @@ -4947,8 +4940,8 @@ export interface GetServiceOrderConfirmReceiptOption {
4947 }; 4940 };
4948 } 4941 }
4949 4942
4950 -/** @description response type for getServiceOrderConfirmReceipt */  
4951 -export interface GetServiceOrderConfirmReceiptResponse { 4943 +/** @description response type for postServiceOrderConfirmReceipt */
  4944 +export interface PostServiceOrderConfirmReceiptResponse {
4952 /** 4945 /**
4953 * @description 4946 * @description
4954 * OK 4947 * OK
@@ -4956,6 +4949,11 @@ export interface GetServiceOrderConfirmReceiptResponse { @@ -4956,6 +4949,11 @@ export interface GetServiceOrderConfirmReceiptResponse {
4956 200: ServerResult; 4949 200: ServerResult;
4957 /** 4950 /**
4958 * @description 4951 * @description
  4952 + * Created
  4953 + */
  4954 + 201: any;
  4955 + /**
  4956 + * @description
4959 * Unauthorized 4957 * Unauthorized
4960 */ 4958 */
4961 401: any; 4959 401: any;
@@ -4971,8 +4969,8 @@ export interface GetServiceOrderConfirmReceiptResponse { @@ -4971,8 +4969,8 @@ export interface GetServiceOrderConfirmReceiptResponse {
4971 404: any; 4969 404: any;
4972 } 4970 }
4973 4971
4974 -export type GetServiceOrderConfirmReceiptResponseSuccess =  
4975 - GetServiceOrderConfirmReceiptResponse[200]; 4972 +export type PostServiceOrderConfirmReceiptResponseSuccess =
  4973 + PostServiceOrderConfirmReceiptResponse[200];
4976 /** 4974 /**
4977 * @description 4975 * @description
4978 * 确认收货 4976 * 确认收货
@@ -4980,16 +4978,16 @@ export type GetServiceOrderConfirmReceiptResponseSuccess = @@ -4980,16 +4978,16 @@ export type GetServiceOrderConfirmReceiptResponseSuccess =
4980 * @produces * 4978 * @produces *
4981 * @consumes multipart/form-data 4979 * @consumes multipart/form-data
4982 */ 4980 */
4983 -export const getServiceOrderConfirmReceipt = /* #__PURE__ */ (() => {  
4984 - const method = 'get'; 4981 +export const postServiceOrderConfirmReceipt = /* #__PURE__ */ (() => {
  4982 + const method = 'post';
4985 const url = '/service/order/confirmReceipt'; 4983 const url = '/service/order/confirmReceipt';
4986 function request( 4984 function request(
4987 - option: GetServiceOrderConfirmReceiptOption,  
4988 - ): Promise<GetServiceOrderConfirmReceiptResponseSuccess> { 4985 + option: PostServiceOrderConfirmReceiptOption,
  4986 + ): Promise<PostServiceOrderConfirmReceiptResponseSuccess> {
4989 return requester(request.url, { 4987 return requester(request.url, {
4990 method: request.method, 4988 method: request.method,
4991 ...option, 4989 ...option,
4992 - }) as unknown as Promise<GetServiceOrderConfirmReceiptResponseSuccess>; 4990 + }) as unknown as Promise<PostServiceOrderConfirmReceiptResponseSuccess>;
4993 } 4991 }
4994 4992
4995 /** http method */ 4993 /** http method */
@@ -5070,6 +5068,20 @@ export const postServiceOrderExport = /* #__PURE__ */ (() =&gt; { @@ -5070,6 +5068,20 @@ export const postServiceOrderExport = /* #__PURE__ */ (() =&gt; {
5070 return request; 5068 return request;
5071 })(); 5069 })();
5072 5070
  5071 +/** @description request parameter type for postServiceOrderInvoicing */
  5072 +export interface PostServiceOrderInvoicingOption {
  5073 + /**
  5074 + * @description
  5075 + * dto
  5076 + */
  5077 + body: {
  5078 + /**
  5079 + @description
  5080 + dto */
  5081 + dto: InvoicingDto;
  5082 + };
  5083 +}
  5084 +
5073 /** @description response type for postServiceOrderInvoicing */ 5085 /** @description response type for postServiceOrderInvoicing */
5074 export interface PostServiceOrderInvoicingResponse { 5086 export interface PostServiceOrderInvoicingResponse {
5075 /** 5087 /**
@@ -5111,9 +5123,12 @@ export type PostServiceOrderInvoicingResponseSuccess = @@ -5111,9 +5123,12 @@ export type PostServiceOrderInvoicingResponseSuccess =
5111 export const postServiceOrderInvoicing = /* #__PURE__ */ (() => { 5123 export const postServiceOrderInvoicing = /* #__PURE__ */ (() => {
5112 const method = 'post'; 5124 const method = 'post';
5113 const url = '/service/order/invoicing'; 5125 const url = '/service/order/invoicing';
5114 - function request(): Promise<PostServiceOrderInvoicingResponseSuccess> { 5126 + function request(
  5127 + option: PostServiceOrderInvoicingOption,
  5128 + ): Promise<PostServiceOrderInvoicingResponseSuccess> {
5115 return requester(request.url, { 5129 return requester(request.url, {
5116 method: request.method, 5130 method: request.method,
  5131 + ...option,
5117 }) as unknown as Promise<PostServiceOrderInvoicingResponseSuccess>; 5132 }) as unknown as Promise<PostServiceOrderInvoicingResponseSuccess>;
5118 } 5133 }
5119 5134
@@ -5124,6 +5139,20 @@ export const postServiceOrderInvoicing = /* #__PURE__ */ (() =&gt; { @@ -5124,6 +5139,20 @@ export const postServiceOrderInvoicing = /* #__PURE__ */ (() =&gt; {
5124 return request; 5139 return request;
5125 })(); 5140 })();
5126 5141
  5142 +/** @description request parameter type for postServiceOrderPrintOrder */
  5143 +export interface PostServiceOrderPrintOrderOption {
  5144 + /**
  5145 + * @description
  5146 + * dto
  5147 + */
  5148 + body: {
  5149 + /**
  5150 + @description
  5151 + dto */
  5152 + dto: Dto;
  5153 + };
  5154 +}
  5155 +
5127 /** @description response type for postServiceOrderPrintOrder */ 5156 /** @description response type for postServiceOrderPrintOrder */
5128 export interface PostServiceOrderPrintOrderResponse { 5157 export interface PostServiceOrderPrintOrderResponse {
5129 /** 5158 /**
@@ -5165,9 +5194,12 @@ export type PostServiceOrderPrintOrderResponseSuccess = @@ -5165,9 +5194,12 @@ export type PostServiceOrderPrintOrderResponseSuccess =
5165 export const postServiceOrderPrintOrder = /* #__PURE__ */ (() => { 5194 export const postServiceOrderPrintOrder = /* #__PURE__ */ (() => {
5166 const method = 'post'; 5195 const method = 'post';
5167 const url = '/service/order/printOrder'; 5196 const url = '/service/order/printOrder';
5168 - function request(): Promise<PostServiceOrderPrintOrderResponseSuccess> { 5197 + function request(
  5198 + option: PostServiceOrderPrintOrderOption,
  5199 + ): Promise<PostServiceOrderPrintOrderResponseSuccess> {
5169 return requester(request.url, { 5200 return requester(request.url, {
5170 method: request.method, 5201 method: request.method,
  5202 + ...option,
5171 }) as unknown as Promise<PostServiceOrderPrintOrderResponseSuccess>; 5203 }) as unknown as Promise<PostServiceOrderPrintOrderResponseSuccess>;
5172 } 5204 }
5173 5205
src/tsg.config.ts
@@ -33,7 +33,7 @@ const projects: Project[] = [ @@ -33,7 +33,7 @@ const projects: Project[] = [
33 * openapi 文档地址,可以是远程的json文件,也可以是本地的json文件 33 * openapi 文档地址,可以是远程的json文件,也可以是本地的json文件
34 * 如果使用本地文件,相对路径以当前'tsg.config.ts'为基准 34 * 如果使用本地文件,相对路径以当前'tsg.config.ts'为基准
35 * */ 35 * */
36 - source: 'http://localhost:8085/request.json', 36 + source: 'http://localhost:8085/v2/api-docs',
37 37
38 // source: 'https://petstore3.swagger.io/api/v3/openapi.json', 38 // source: 'https://petstore3.swagger.io/api/v3/openapi.json',
39 // source: './fixture/pet.json', 39 // source: './fixture/pet.json',