Commit 1d454be0bcbd9bc956800a01867899015720a809

Authored by zhongnanhuang
1 parent 15c41122

feat: add new functionality

chore: update review functionality

Too many changes to show.

To preserve performance only 7 of 10 files are displayed.

.umirc.ts
@@ -12,8 +12,8 @@ export default defineConfig({ @@ -12,8 +12,8 @@ export default defineConfig({
12 title: '订单管理系统', 12 title: '订单管理系统',
13 }, 13 },
14 proxy: { 14 proxy: {
15 - '/erp/': {  
16 - target: 'http://39.108.227.113:3000/mock/39', 15 + '/service/': {
  16 + target: 'http://localhost:8085/',
17 changeOrigin: true, 17 changeOrigin: true,
18 // pathRewrite: { '^/api': '' }, 18 // pathRewrite: { '^/api': '' },
19 }, 19 },
src/pages/Order/components/CheckModal.tsx
  1 +import { postServiceOrderCheckOrder } from '@/services';
1 import { ModalForm, ProFormTextArea } from '@ant-design/pro-components'; 2 import { ModalForm, ProFormTextArea } from '@ant-design/pro-components';
2 -import { Form, message } from 'antd';  
3 -  
4 -export default ({ setCheckVisible }) => { 3 +import { Button, Form, message } from 'antd';
  4 +export default ({ setCheckVisible, data, onClose }) => {
5 const [form] = Form.useForm<{ name: string; company: string }>(); 5 const [form] = Form.useForm<{ name: string; company: string }>();
  6 + let subOrderIds: any[] = [];
  7 + const subOrderList = data.subOrderInformationLists;
  8 + //是单条子订单审核
  9 + if (subOrderList === undefined) {
  10 + subOrderIds = [data.id];
  11 + } else {
  12 + subOrderIds = subOrderList.map((subOrder) => subOrder.id);
  13 + }
  14 + async function doCheck(body: object) {
  15 + const res = await postServiceOrderCheckOrder({
  16 + data: body,
  17 + });
  18 + if (res.result === 0) {
  19 + message.success(res.message);
  20 + } else {
  21 + message.error(res.message);
  22 + }
  23 + onClose();
  24 + return true;
  25 + }
6 return ( 26 return (
7 <ModalForm<{ 27 <ModalForm<{
8 name: string; 28 name: string;
@@ -21,12 +41,35 @@ export default ({ setCheckVisible }) =&gt; { @@ -21,12 +41,35 @@ export default ({ setCheckVisible }) =&gt; {
21 setCheckVisible(false); 41 setCheckVisible(false);
22 }, 42 },
23 }} 43 }}
  44 + submitter={{
  45 + render: (props, defaultDoms) => {
  46 + return [
  47 + <Button
  48 + key="驳回"
  49 + onClick={() => {
  50 + doCheck({
  51 + flag: false,
  52 + ids: subOrderIds,
  53 + checkNotes: form.getFieldValue('name'),
  54 + });
  55 + }}
  56 + >
  57 + 驳回
  58 + </Button>,
  59 + defaultDoms[1],
  60 + ];
  61 + },
  62 + }}
24 submitTimeout={2000} 63 submitTimeout={2000}
25 onFinish={async (values) => { 64 onFinish={async (values) => {
26 - console.log(values.name);  
27 - message.success('提交成功');  
28 - return true; 65 + //审核通过
  66 + return doCheck({
  67 + flag: true,
  68 + ids: subOrderIds,
  69 + checkNotes: values.name,
  70 + });
29 }} 71 }}
  72 + onOpenChange={setCheckVisible}
30 > 73 >
31 <div>请特别注意订单总金额与订单金额。</div> 74 <div>请特别注意订单总金额与订单金额。</div>
32 <ProFormTextArea 75 <ProFormTextArea
src/pages/Order/components/DeliverModal.tsx
  1 +import { enumToSelect } from '@/utils';
1 import { 2 import {
2 ProColumns, 3 ProColumns,
3 ProForm, 4 ProForm,
  5 + ProFormSelect,
4 ProFormText, 6 ProFormText,
5 ProTable, 7 ProTable,
6 } from '@ant-design/pro-components'; 8 } from '@ant-design/pro-components';
7 -import { Button, Input, InputNumber, Modal } from 'antd'; 9 +import { Button, InputNumber, Modal } from 'antd';
8 import { cloneDeep } from 'lodash'; 10 import { cloneDeep } from 'lodash';
9 import { useEffect, useRef, useState } from 'react'; 11 import { useEffect, useRef, useState } from 'react';
  12 +import { LOGISTICS_STATUS_OPTIONS } from '../constant';
10 13
11 const DeliverModal = ({ data: propsData, onClose }) => { 14 const DeliverModal = ({ data: propsData, onClose }) => {
12 const [data, setData] = useState(propsData || {}); 15 const [data, setData] = useState(propsData || {});
@@ -40,18 +43,21 @@ const DeliverModal = ({ data: propsData, onClose }) =&gt; { @@ -40,18 +43,21 @@ const DeliverModal = ({ data: propsData, onClose }) =&gt; {
40 { 43 {
41 title: '物流方式', 44 title: '物流方式',
42 width: 180, 45 width: 180,
43 - key: 'paymentChannel',  
44 - render: (_, record, index) => (  
45 - <Input  
46 - value={record.paymentChannel}  
47 - onChange={handleChange('paymentChannel', index)} 46 + key: 'logisticsMethod',
  47 + render: () => (
  48 + <ProFormSelect
  49 + placeholder="请输入物流方式"
  50 + name="logisticsMethod"
  51 + width="lg"
  52 + label="物流方式"
  53 + options={enumToSelect(LOGISTICS_STATUS_OPTIONS)}
48 /> 54 />
49 ), 55 ),
50 }, 56 },
51 { 57 {
52 title: '物流单号', 58 title: '物流单号',
53 width: 180, 59 width: 180,
54 - key: 'productCode', 60 + key: 'serialNumber',
55 render: (_, record, index) => ( 61 render: (_, record, index) => (
56 <InputNumber 62 <InputNumber
57 value={record.productCode} 63 value={record.productCode}
src/pages/Order/components/OrderDrawer.tsx
1 -import { postErpOrderAdd } from '@/services'; 1 +import { postServiceOrderAddOrder } from '@/services';
  2 +import { enumToSelect } from '@/utils';
2 import { 3 import {
3 DrawerForm, 4 DrawerForm,
4 FormListActionType, 5 FormListActionType,
5 ProCard, 6 ProCard,
  7 + ProFormDateTimePicker,
6 ProFormGroup, 8 ProFormGroup,
7 ProFormList, 9 ProFormList,
  10 + ProFormSelect,
8 ProFormText, 11 ProFormText,
  12 + ProFormTextArea,
9 } from '@ant-design/pro-components'; 13 } from '@ant-design/pro-components';
10 import { Form, message } from 'antd'; 14 import { Form, message } from 'antd';
11 import { useEffect, useRef } from 'react'; 15 import { useEffect, useRef } from 'react';
12 -import { useFieldAuth } from '../hooks';  
13 -import { OPERATION_TYPE } from '../type.d'; 16 +import {
  17 + INVOCING_STATUS_OPTIONS,
  18 + PAYMENT_CHANNEL_OPTIONS,
  19 + PAYMENT_METHOD_OPTIONS,
  20 + PRODUCT_BELONG_DEPARTMENT_OPTIONS,
  21 +} from '../constant';
14 22
15 export default ({ onClose, data }) => { 23 export default ({ onClose, data }) => {
16 - const { authFields } = useFieldAuth({  
17 - operation: data?.id ? OPERATION_TYPE.EDIT : OPERATION_TYPE.CREATE,  
18 - }); 24 + console.log('');
19 const [form] = Form.useForm<{ name: string; company: string }>(); 25 const [form] = Form.useForm<{ name: string; company: string }>();
20 const actionRef = useRef< 26 const actionRef = useRef<
21 FormListActionType<{ 27 FormListActionType<{
@@ -35,7 +41,48 @@ export default ({ onClose, data }) =&gt; { @@ -35,7 +41,48 @@ export default ({ onClose, data }) =&gt; {
35 company: string; 41 company: string;
36 }> 42 }>
37 open 43 open
  44 + width="35%"
38 title="新建订单" 45 title="新建订单"
  46 + initialValues={{
  47 + customerName: '123',
  48 + customerContactNumber: '123',
  49 + institution: '123',
  50 + institutionContactName: '123',
  51 + customerShippingAddress: '123123',
  52 + totalPayment: '12312',
  53 + paymentChannel: 'BANK_TRANSFER',
  54 + paymentMethod: 'PAYMENT_IN_ADVANCE',
  55 + productBelongBusiness: 'EXPERIMENTAL_CONSUMABLES',
  56 + invoicingStatus: 'INVOICED',
  57 + invoiceIdentificationNumber: '12312',
  58 + invoicingTime: '2023-11-29 23:19:15',
  59 + bank: '123',
  60 + bankAccountNumber: '1231',
  61 + notes: '123',
  62 + list: [
  63 + {
  64 + productCode: 'qweq',
  65 + productName: 'qweqwe',
  66 + quantity: '99',
  67 + productPrice: '12313',
  68 + parameters: 'qweq',
  69 + subOrderPayment: '1231',
  70 + unit: 'qweq',
  71 + serialNumber: 'qwewqe',
  72 + notes: 'qweqw',
  73 + },
  74 + {
  75 + productName: 'asdsda',
  76 + productCode: 'dasda',
  77 + parameters: 'sdasa',
  78 + quantity: '99',
  79 + productPrice: '123',
  80 + unit: '123',
  81 + subOrderPayment: '123',
  82 + serialNumber: 'adadas',
  83 + },
  84 + ],
  85 + }}
39 resize={{ 86 resize={{
40 onResize() { 87 onResize() {
41 console.log('resize!'); 88 console.log('resize!');
@@ -52,13 +99,10 @@ export default ({ onClose, data }) =&gt; { @@ -52,13 +99,10 @@ export default ({ onClose, data }) =&gt; {
52 }} 99 }}
53 submitTimeout={2000} 100 submitTimeout={2000}
54 onFinish={async (values) => { 101 onFinish={async (values) => {
55 - console.log(form);  
56 - console.log(values);  
57 - await postErpOrderAdd({ values });  
58 - console.log(values.name); 102 + await postServiceOrderAddOrder({ data: values });
59 message.success('提交成功'); 103 message.success('提交成功');
60 // 不返回不会关闭弹框 104 // 不返回不会关闭弹框
61 - // onClose(); 105 + onClose();
62 return true; 106 return true;
63 }} 107 }}
64 onOpenChange={(val) => { 108 onOpenChange={(val) => {
@@ -67,37 +111,30 @@ export default ({ onClose, data }) =&gt; { @@ -67,37 +111,30 @@ export default ({ onClose, data }) =&gt; {
67 > 111 >
68 <h2>订单基本信息</h2> 112 <h2>订单基本信息</h2>
69 <ProFormText 113 <ProFormText
70 - name="id"  
71 - width="lg"  
72 - label="订单编号"  
73 - placeholder="请输入订单编号"  
74 - disabled={authFields.id}  
75 - />  
76 - <ProFormText  
77 - width="lg"  
78 name="salesCode" 114 name="salesCode"
79 - label="销售代号"  
80 - placeholder="请输入销售代号"  
81 - disabled={authFields.salesCode} 115 + width="lg"
  116 + disabled
  117 + label="销售代表"
  118 + placeholder="请输入销售代表"
  119 + initialValue="JOJO"
82 /> 120 />
83 <ProFormText 121 <ProFormText
84 name="customerName" 122 name="customerName"
85 width="lg" 123 width="lg"
86 label="收货人" 124 label="收货人"
87 placeholder="请输入收货人" 125 placeholder="请输入收货人"
88 - disabled={authFields.customerName}  
89 /> 126 />
90 <ProFormText 127 <ProFormText
91 width="lg" 128 width="lg"
92 name="customerContactNumber" 129 name="customerContactNumber"
93 - label="收货人联系手机号"  
94 - placeholder="请输入收货人联系手机号" 130 + label="联系方式"
  131 + placeholder="请输入联系方式"
95 /> 132 />
96 <ProFormText 133 <ProFormText
97 width="lg" 134 width="lg"
98 - name="customerShippingAddress"  
99 - label="收货人地址信息"  
100 - placeholder="请输入收货人地址信息" 135 + name="institution"
  136 + label="单位"
  137 + placeholder="请输入单位"
101 /> 138 />
102 <ProFormText 139 <ProFormText
103 width="lg" 140 width="lg"
@@ -105,20 +142,85 @@ export default ({ onClose, data }) =&gt; { @@ -105,20 +142,85 @@ export default ({ onClose, data }) =&gt; {
105 label="单位联系人" 142 label="单位联系人"
106 placeholder="请输入单位联系人" 143 placeholder="请输入单位联系人"
107 /> 144 />
  145 + <ProFormTextArea
  146 + width="lg"
  147 + name="customerShippingAddress"
  148 + label="收货地址"
  149 + placeholder="请输入收货地址"
  150 + />
  151 + <ProFormText name="totalPayment" width="lg" label="支付总额(¥)" />
  152 + <ProFormSelect
  153 + placeholder="请输入支付渠道"
  154 + name="paymentChannel"
  155 + width="lg"
  156 + label="支付渠道"
  157 + options={enumToSelect(PAYMENT_CHANNEL_OPTIONS)}
  158 + />
  159 + <ProFormSelect
  160 + placeholder="请输入支付方式"
  161 + name="paymentMethod"
  162 + width="lg"
  163 + label="支付方式"
  164 + options={enumToSelect(PAYMENT_METHOD_OPTIONS)}
  165 + />
  166 + <ProFormSelect
  167 + placeholder="请输入所属事业部"
  168 + name="productBelongBusiness"
  169 + width="lg"
  170 + label="所属事业部"
  171 + options={enumToSelect(PRODUCT_BELONG_DEPARTMENT_OPTIONS)}
  172 + />
  173 + <ProFormSelect
  174 + placeholder="选择是否要开票"
  175 + name="invoicingStatus"
  176 + width="lg"
  177 + label="是否要开票"
  178 + options={enumToSelect(INVOCING_STATUS_OPTIONS)}
  179 + />
108 <ProFormText 180 <ProFormText
109 width="lg" 181 width="lg"
110 - name="institution"  
111 - label="单位"  
112 - placeholder="请输入单位" 182 + name="invoiceIdentificationNumber"
  183 + label="开票信息"
  184 + placeholder="请输入开票信息"
  185 + />
  186 + <ProFormDateTimePicker
  187 + width="lg"
  188 + name="invoicingTime"
  189 + label="开票时间"
  190 + placeholder="请输入开票时间"
  191 + />
  192 + <ProFormText
  193 + width="lg"
  194 + name="bank"
  195 + label="开户银行"
  196 + placeholder="请输入开户银行"
  197 + />
  198 + <ProFormText
  199 + width="lg"
  200 + name="bankAccountNumber"
  201 + label="银行账号"
  202 + placeholder="请输入银行账号"
  203 + />
  204 + <ProFormText
  205 + width="lg"
  206 + name="notes"
  207 + label="备注"
  208 + placeholder="请输入备注"
113 /> 209 />
114 210
115 - <h2>商品基本信息</h2> 211 + {/* <h2>商品基本信息</h2>
116 <ProFormText width="lg" name="totalPayment" label="支付总金额" /> 212 <ProFormText width="lg" name="totalPayment" label="支付总金额" />
117 - <ProFormText 213 + <ProFormSelect
  214 + disabled
  215 + placeholder="请输入物流方式"
  216 + name="logisticsMethod"
118 width="lg" 217 width="lg"
119 - name="logisticsStatus"  
120 label="物流方式" 218 label="物流方式"
121 - placeholder="请输入物流方式" 219 + request={async () => {
  220 + // 发送请求获取选项数据
  221 + const { data } = await getServiceOrderProvideLogisticsStatus();
  222 + return enumToSelect(data);
  223 + }}
122 /> 224 />
123 <ProFormText 225 <ProFormText
124 width="lg" 226 width="lg"
@@ -126,17 +228,28 @@ export default ({ onClose, data }) =&gt; { @@ -126,17 +228,28 @@ export default ({ onClose, data }) =&gt; {
126 label="支付状态" 228 label="支付状态"
127 placeholder="请输入支付状态" 229 placeholder="请输入支付状态"
128 /> 230 />
129 - <ProFormText  
130 - width="lg" 231 +
  232 + <ProFormSelect
  233 + placeholder="请输入支付方式"
131 name="paymentMethod" 234 name="paymentMethod"
  235 + width="lg"
132 label="支付方式" 236 label="支付方式"
133 - placeholder="请输入支付方式" 237 + request={async () => {
  238 + // 发送请求获取选项数据
  239 + const { data } = await getServiceOrderProvidePaymentMethod();
  240 + return enumToSelect(data);
  241 + }}
134 /> 242 />
135 - <ProFormText  
136 - width="lg" 243 + <ProFormSelect
  244 + placeholder="请输入支付渠道"
137 name="paymentChannel" 245 name="paymentChannel"
  246 + width="lg"
138 label="支付渠道" 247 label="支付渠道"
139 - placeholder="请输入支付渠道" 248 + request={async () => {
  249 + // 发送请求获取选项数据
  250 + const { data } = await getServiceOrderProvidePaymentChannel();
  251 + return enumToSelect(data);
  252 + }}
140 /> 253 />
141 <ProFormText 254 <ProFormText
142 width="lg" 255 width="lg"
@@ -185,11 +298,11 @@ export default ({ onClose, data }) =&gt; { @@ -185,11 +298,11 @@ export default ({ onClose, data }) =&gt; {
185 name="orderStatus" 298 name="orderStatus"
186 label="订单状态" 299 label="订单状态"
187 placeholder="请输入订单状态" 300 placeholder="请输入订单状态"
188 - /> 301 + /> */}
189 302
190 <h2>商品信息</h2> 303 <h2>商品信息</h2>
191 <ProFormList 304 <ProFormList
192 - name="subOrderInformationLists" 305 + name="list"
193 label="" 306 label=""
194 initialValue={[ 307 initialValue={[
195 { 308 {
@@ -217,11 +330,14 @@ export default ({ onClose, data }) =&gt; { @@ -217,11 +330,14 @@ export default ({ onClose, data }) =&gt; {
217 return; 330 return;
218 } 331 }
219 rowNumber.current = 1; 332 rowNumber.current = 1;
220 - setTimeout(() => resolve(true), 1000); 333 + setTimeout(() => {
  334 + resolve(true);
  335 + }, 1000);
221 }); 336 });
222 }, 337 },
223 }} 338 }}
224 - itemRender={({ listDom, action }) => { 339 + itemRender={({ listDom, action }, {}) => {
  340 + // const list = actionRef.current?.getList();
225 return ( 341 return (
226 <ProCard 342 <ProCard
227 bordered 343 bordered
@@ -239,47 +355,60 @@ export default ({ onClose, data }) =&gt; { @@ -239,47 +355,60 @@ export default ({ onClose, data }) =&gt; {
239 > 355 >
240 <ProFormGroup key="group"> 356 <ProFormGroup key="group">
241 <ProFormText 357 <ProFormText
242 - width="md" 358 + width="lg"
  359 + name="productName"
  360 + label="商品名称"
  361 + placeholder="请输入商品名称"
  362 + />
  363 + <ProFormText
  364 + width="lg"
243 name="productCode" 365 name="productCode"
244 label="商品编码" 366 label="商品编码"
245 - placeholder="请输入商品编码" 367 + placeholder="未输入商品名称"
246 /> 368 />
247 <ProFormText 369 <ProFormText
248 - width="md"  
249 - name="productName"  
250 - label="商品名称"  
251 - placeholder="请输入商品名称" 370 + width="lg"
  371 + name="parameters"
  372 + label="商品参数"
  373 + placeholder="请输入商品参数"
252 /> 374 />
253 <ProFormText 375 <ProFormText
254 - width="md" 376 + width="lg"
255 name="quantity" 377 name="quantity"
256 label="商品数量" 378 label="商品数量"
257 placeholder="请输入商品数量" 379 placeholder="请输入商品数量"
258 /> 380 />
259 <ProFormText 381 <ProFormText
260 - width="md" 382 + width="lg"
261 name="productPrice" 383 name="productPrice"
262 label="商品单价" 384 label="商品单价"
263 placeholder="请输入商品单价" 385 placeholder="请输入商品单价"
264 /> 386 />
265 <ProFormText 387 <ProFormText
266 - width="md" 388 + width="lg"
267 name="unit" 389 name="unit"
268 label="价格单位" 390 label="价格单位"
269 placeholder="请输入价格单位" 391 placeholder="请输入价格单位"
270 /> 392 />
  393 +
271 <ProFormText 394 <ProFormText
272 - width="md"  
273 - name="parameters"  
274 - label="商品参数"  
275 - placeholder="请输入商品参数"  
276 - />  
277 - <ProFormText  
278 - width="md" 395 + width="lg"
279 name="subOrderPayment" 396 name="subOrderPayment"
280 label="子订单金额" 397 label="子订单金额"
281 placeholder="请输入子订单金额" 398 placeholder="请输入子订单金额"
282 /> 399 />
  400 + <ProFormText
  401 + width="lg"
  402 + name="serialNumber"
  403 + label="物流单号"
  404 + placeholder="请输入物流单号"
  405 + />
  406 + <ProFormText
  407 + width="lg"
  408 + name="notes"
  409 + label="备注"
  410 + placeholder="请输入备注"
  411 + />
283 </ProFormGroup> 412 </ProFormGroup>
284 </ProFormList> 413 </ProFormList>
285 414
src/pages/Order/constant.ts
@@ -182,3 +182,41 @@ export const SUB_ORDER_COLUMNS = [ @@ -182,3 +182,41 @@ export const SUB_ORDER_COLUMNS = [
182 component: 'tag', 182 component: 'tag',
183 }, 183 },
184 ]; 184 ];
  185 +
  186 +export const PAYMENT_CHANNEL_OPTIONS = {
  187 + ALIPAY: '支付宝',
  188 + WECHAT: '微信',
  189 + BANK_TRANSFER: '银行转账',
  190 +};
  191 +
  192 +export const PAYMENT_METHOD_OPTIONS = {
  193 + PAYMENT_IN_ADVANCE: '预付',
  194 + CASH_ON_DELIVERY: '货到付款',
  195 +};
  196 +
  197 +export const PRODUCT_BELONG_DEPARTMENT_OPTIONS = {
  198 + APPLICATION_PROJECT: '应用项目事业部门',
  199 + TEST: '测试事业部门',
  200 + CUSTOMIZATION: '定制化事业部门',
  201 + EXPERIMENTAL_EQUIPMENT: '实验设备事业部门',
  202 + EXPERIMENTAL_CONSUMABLES: '实验耗材事业部门',
  203 +};
  204 +
  205 +export const INVOCING_STATUS_OPTIONS = {
  206 + UN_INVOICE: '未开票',
  207 + INVOICED: '已开票',
  208 +};
  209 +
  210 +export const LOGISTICS_STATUS_OPTIONS = {
  211 + JINGDONG_LOGISTICS: '京东物流',
  212 + DEBANG_LOGISTICS: '德邦物流',
  213 +};
  214 +
  215 +export const ORDER_STATUS_OPTIONS = {
  216 + CONFIRM_RECEIPT: '确认收货',
  217 + UNAUDITED: '未审核',
  218 + AUDITED: '已审核',
  219 + WAIT_SHIP: '待发货',
  220 + AUDIT_FAILED: '审核失败',
  221 + SHIPPED: '已发货',
  222 +};
src/pages/Order/index.tsx
1 import ButtonConfirm from '@/components/ButtomConfirm'; 1 import ButtonConfirm from '@/components/ButtomConfirm';
2 -import { postErpOrderListByPage } from '@/services'; 2 +import { postServiceOrderQueryServiceOrder } from '@/services';
  3 +import { enumValueToLabel } from '@/utils';
3 import { 4 import {
4 PageContainer, 5 PageContainer,
5 ProColumns, 6 ProColumns,
6 ProTable, 7 ProTable,
7 } from '@ant-design/pro-components'; 8 } from '@ant-design/pro-components';
8 -import { Button, Divider, Flex, Space, Tag, message } from 'antd';  
9 -import { Key, useState } from 'react'; 9 +import { Button, Checkbox, Divider, Flex, Space, Tag, message } from 'antd';
  10 +import { Key, useRef, useState } from 'react';
10 import CheckModal from './components/CheckModal'; 11 import CheckModal from './components/CheckModal';
11 import DeliverModal from './components/DeliverModal'; 12 import DeliverModal from './components/DeliverModal';
12 import OrderDrawer from './components/OrderDrawer'; 13 import OrderDrawer from './components/OrderDrawer';
13 -import { MAIN_ORDER_COLUMNS, SUB_ORDER_COLUMNS } from './constant'; 14 +import {
  15 + INVOCING_STATUS_OPTIONS,
  16 + MAIN_ORDER_COLUMNS,
  17 + ORDER_STATUS_OPTIONS,
  18 + PAYMENT_CHANNEL_OPTIONS,
  19 + PAYMENT_METHOD_OPTIONS,
  20 + SUB_ORDER_COLUMNS,
  21 +} from './constant';
14 import './index.less'; 22 import './index.less';
15 import { OrderListItemType, OrderType } from './type.d'; 23 import { OrderListItemType, OrderType } from './type.d';
16 24
@@ -20,27 +28,23 @@ const OrderPage = () =&gt; { @@ -20,27 +28,23 @@ const OrderPage = () =&gt; {
20 const [deliverVisible, setDeliverVisible] = useState<boolean>(false); 28 const [deliverVisible, setDeliverVisible] = useState<boolean>(false);
21 const [expandedRowKeys, setExpandedRowKeys] = useState<Key[]>([]); 29 const [expandedRowKeys, setExpandedRowKeys] = useState<Key[]>([]);
22 const [orderRow, setOrderRow] = useState<Partial<OrderType>>({}); 30 const [orderRow, setOrderRow] = useState<Partial<OrderType>>({});
23 - const [subOrderShowText, setSubOrderShowText] = useState('订单详情');  
24 31
25 const [selectedRows, setSelectedRows] = useState({}); 32 const [selectedRows, setSelectedRows] = useState({});
26 const [selectedRowObj, setSelectedRowObj] = useState({}); 33 const [selectedRowObj, setSelectedRowObj] = useState({});
  34 + const [selectedItems, setSelectedItems] = useState([]);
  35 + const mainTableRef = useRef();
27 36
28 - // const onCheckboxChange = (itemKey: number) => {  
29 - // const newSelectedItems = selectedItems.includes(itemKey)  
30 - // ? selectedItems.filter((key) => key !== itemKey)  
31 - // : [...selectedItems, itemKey]; 37 + const onCheckboxChange = (itemKey: never) => {
  38 + const newSelectedItems = selectedItems.includes(itemKey)
  39 + ? selectedItems.filter((key) => key !== itemKey)
  40 + : [...selectedItems, itemKey];
32 41
33 - // setSelectedItems(newSelectedItems);  
34 - // }; 42 + setSelectedItems(newSelectedItems);
  43 + };
35 44
36 // 主订单内容渲染 45 // 主订单内容渲染
37 const MainOrderColumnRender = ({ record }: { record: OrderListItemType }) => { 46 const MainOrderColumnRender = ({ record }: { record: OrderListItemType }) => {
38 const handleExpand = (key: number) => { 47 const handleExpand = (key: number) => {
39 - if (expandedRowKeys.includes(key)) {  
40 - setSubOrderShowText('查看详情');  
41 - } else {  
42 - setSubOrderShowText('收起详情');  
43 - }  
44 const newExpandedRowKeys = expandedRowKeys.includes(key) 48 const newExpandedRowKeys = expandedRowKeys.includes(key)
45 ? expandedRowKeys.filter((k) => k !== key) 49 ? expandedRowKeys.filter((k) => k !== key)
46 : [...expandedRowKeys, key]; 50 : [...expandedRowKeys, key];
@@ -51,15 +55,15 @@ const OrderPage = () =&gt; { @@ -51,15 +55,15 @@ const OrderPage = () =&gt; {
51 <Flex vertical={true}> 55 <Flex vertical={true}>
52 {/* 编号、时间、销售信息 */} 56 {/* 编号、时间、销售信息 */}
53 <Flex justify="space-between" className="px-2 py-4 bg-gray-100"> 57 <Flex justify="space-between" className="px-2 py-4 bg-gray-100">
54 - {/* <Checkbox  
55 - onChange={() => onCheckboxChange(record.main_order_id)}  
56 - checked={selectedItems.includes(record.main_order_id)}  
57 - > */}  
58 - <Flex wrap="wrap" gap="middle">  
59 - <div>{record.createTime}</div>  
60 - <div>订单编号:{record.main_order_id}</div>  
61 - </Flex>  
62 - {/* </Checkbox> */} 58 + <Checkbox
  59 + onChange={() => onCheckboxChange(record.id)}
  60 + checked={selectedItems.includes(record.id)}
  61 + >
  62 + <Flex wrap="wrap" gap="middle">
  63 + <div>{record.createTime}</div>
  64 + <div>订单编号:{record.main_order_id}</div>
  65 + </Flex>
  66 + </Checkbox>
63 </Flex> 67 </Flex>
64 {/* 收货、开票、备注信息 */} 68 {/* 收货、开票、备注信息 */}
65 <Flex justify="space-between" className="px-2 py-4"> 69 <Flex justify="space-between" className="px-2 py-4">
@@ -156,6 +160,7 @@ const OrderPage = () =&gt; { @@ -156,6 +160,7 @@ const OrderPage = () =&gt; {
156 className="p-0" 160 className="p-0"
157 type="link" 161 type="link"
158 onClick={() => { 162 onClick={() => {
  163 + setOrderRow(record);
159 setCheckVisible(true); 164 setCheckVisible(true);
160 }} 165 }}
161 > 166 >
@@ -176,7 +181,7 @@ const OrderPage = () =&gt; { @@ -176,7 +181,7 @@ const OrderPage = () =&gt; {
176 onClick={() => handleExpand(record.id)} 181 onClick={() => handleExpand(record.id)}
177 size="small" 182 size="small"
178 > 183 >
179 - {subOrderShowText} 184 + {expandedRowKeys.includes(record.id) ? '收起详情' : '订单详情'}
180 </Button> 185 </Button>
181 </Space.Compact> 186 </Space.Compact>
182 </Space> 187 </Space>
@@ -211,11 +216,30 @@ const OrderPage = () =&gt; { @@ -211,11 +216,30 @@ const OrderPage = () =&gt; {
211 return { 216 return {
212 ...item, 217 ...item,
213 render: (text: string) => { 218 render: (text: string) => {
  219 + let label = enumValueToLabel(text, ORDER_STATUS_OPTIONS);
  220 + console.log('label:' + label);
  221 + if (label === undefined) {
  222 + label = enumValueToLabel(text, INVOCING_STATUS_OPTIONS);
  223 + }
214 let color = 'gold'; 224 let color = 'gold';
215 - if (text === '已开票' || text === '已审核') { 225 + if (label === '已开票' || label === '已审核') {
216 color = 'green'; 226 color = 'green';
217 } 227 }
218 - return <Tag color={color}>{text}</Tag>; 228 + return <Tag color={color}>{label}</Tag>;
  229 + },
  230 + };
  231 + }
  232 +
  233 + //枚举字段处理
  234 + if (item.key === 'paymentMethod' || item.key === 'paymentChannel') {
  235 + return {
  236 + ...item,
  237 + render: (text: string) => {
  238 + let label = enumValueToLabel(text, PAYMENT_CHANNEL_OPTIONS);
  239 + if (label === undefined) {
  240 + label = enumValueToLabel(text, PAYMENT_METHOD_OPTIONS);
  241 + }
  242 + return label;
219 }, 243 },
220 }; 244 };
221 } 245 }
@@ -227,9 +251,15 @@ const OrderPage = () =&gt; { @@ -227,9 +251,15 @@ const OrderPage = () =&gt; {
227 dataIndex: 'operation', 251 dataIndex: 'operation',
228 key: 'operation', 252 key: 'operation',
229 align: 'center', 253 align: 'center',
230 - render: () => ( 254 + render: (optText, optRecord) => (
231 <Flex> 255 <Flex>
232 - <Button type="link" size="small"> 256 + <Button
  257 + type="link"
  258 + size="small"
  259 + onClick={() => {
  260 + mainTableRef.current?.reload();
  261 + }}
  262 + >
233 编辑 263 编辑
234 </Button> 264 </Button>
235 <Button 265 <Button
@@ -237,7 +267,7 @@ const OrderPage = () =&gt; { @@ -237,7 +267,7 @@ const OrderPage = () =&gt; {
237 size="small" 267 size="small"
238 onClick={() => { 268 onClick={() => {
239 setCheckVisible(true); 269 setCheckVisible(true);
240 - setOrderRow(record); 270 + setOrderRow(optRecord);
241 }} 271 }}
242 > 272 >
243 审核 273 审核
@@ -294,6 +324,7 @@ const OrderPage = () =&gt; { @@ -294,6 +324,7 @@ const OrderPage = () =&gt; {
294 }} 324 }}
295 > 325 >
296 <ProTable 326 <ProTable
  327 + actionRef={mainTableRef}
297 expandIconColumnIndex={-1} 328 expandIconColumnIndex={-1}
298 columns={mainOrdersColumns} 329 columns={mainOrdersColumns}
299 rowKey="id" 330 rowKey="id"
@@ -318,7 +349,7 @@ const OrderPage = () =&gt; { @@ -318,7 +349,7 @@ const OrderPage = () =&gt; {
318 sorter, 349 sorter,
319 filter, 350 filter,
320 ) => { 351 ) => {
321 - const { data } = await postErpOrderListByPage({ 352 + const { data } = await postServiceOrderQueryServiceOrder({
322 // ...params, 353 // ...params,
323 // FIXME: remove @ts-ignore 354 // FIXME: remove @ts-ignore
324 // @ts-ignore 355 // @ts-ignore
@@ -336,7 +367,7 @@ const OrderPage = () =&gt; { @@ -336,7 +367,7 @@ const OrderPage = () =&gt; {
336 <Button key="out" onClick={() => setOrderDrawerVisible(true)}> 367 <Button key="out" onClick={() => setOrderDrawerVisible(true)}>
337 新增 368 新增
338 </Button>, 369 </Button>,
339 - <Button key="primary" type="primary"> 370 + <Button key="primary" type="primary" onClick={() => {}}>
340 导出 371 导出
341 </Button>, 372 </Button>,
342 ]} 373 ]}
@@ -348,17 +379,19 @@ const OrderPage = () =&gt; { @@ -348,17 +379,19 @@ const OrderPage = () =&gt; {
348 onClose={() => { 379 onClose={() => {
349 setOrderDrawerVisible(false); 380 setOrderDrawerVisible(false);
350 setOrderRow({}); 381 setOrderRow({});
  382 + mainTableRef.current?.reload();
351 }} 383 }}
352 /> 384 />
353 )} 385 )}
354 386
355 {checkVisible && ( 387 {checkVisible && (
356 <CheckModal 388 <CheckModal
357 - data={orderRow}  
358 setCheckVisible={setCheckVisible} 389 setCheckVisible={setCheckVisible}
  390 + data={orderRow}
359 onClose={() => { 391 onClose={() => {
360 setCheckVisible(false); 392 setCheckVisible(false);
361 setOrderRow({}); 393 setOrderRow({});
  394 + mainTableRef.current?.reload();
362 }} 395 }}
363 /> 396 />
364 )} 397 )}
src/services/definition.ts
@@ -2,3 +2,844 @@ @@ -2,3 +2,844 @@
2 /* tslint:disable */ 2 /* tslint:disable */
3 /** Do not modify manually. 3 /** Do not modify manually.
4 content is generated automatically by `ts-gear`. */ 4 content is generated automatically by `ts-gear`. */
  5 +export type ModelAndViewStatus =
  6 + | '100 CONTINUE'
  7 + | '101 SWITCHING_PROTOCOLS'
  8 + | '102 PROCESSING'
  9 + | '103 CHECKPOINT'
  10 + | '200 OK'
  11 + | '201 CREATED'
  12 + | '202 ACCEPTED'
  13 + | '203 NON_AUTHORITATIVE_INFORMATION'
  14 + | '204 NO_CONTENT'
  15 + | '205 RESET_CONTENT'
  16 + | '206 PARTIAL_CONTENT'
  17 + | '207 MULTI_STATUS'
  18 + | '208 ALREADY_REPORTED'
  19 + | '226 IM_USED'
  20 + | '300 MULTIPLE_CHOICES'
  21 + | '301 MOVED_PERMANENTLY'
  22 + | '302 FOUND'
  23 + | '302 MOVED_TEMPORARILY'
  24 + | '303 SEE_OTHER'
  25 + | '304 NOT_MODIFIED'
  26 + | '305 USE_PROXY'
  27 + | '307 TEMPORARY_REDIRECT'
  28 + | '308 PERMANENT_REDIRECT'
  29 + | '400 BAD_REQUEST'
  30 + | '401 UNAUTHORIZED'
  31 + | '402 PAYMENT_REQUIRED'
  32 + | '403 FORBIDDEN'
  33 + | '404 NOT_FOUND'
  34 + | '405 METHOD_NOT_ALLOWED'
  35 + | '406 NOT_ACCEPTABLE'
  36 + | '407 PROXY_AUTHENTICATION_REQUIRED'
  37 + | '408 REQUEST_TIMEOUT'
  38 + | '409 CONFLICT'
  39 + | '410 GONE'
  40 + | '411 LENGTH_REQUIRED'
  41 + | '412 PRECONDITION_FAILED'
  42 + | '413 PAYLOAD_TOO_LARGE'
  43 + | '413 REQUEST_ENTITY_TOO_LARGE'
  44 + | '414 URI_TOO_LONG'
  45 + | '414 REQUEST_URI_TOO_LONG'
  46 + | '415 UNSUPPORTED_MEDIA_TYPE'
  47 + | '416 REQUESTED_RANGE_NOT_SATISFIABLE'
  48 + | '417 EXPECTATION_FAILED'
  49 + | '418 I_AM_A_TEAPOT'
  50 + | '419 INSUFFICIENT_SPACE_ON_RESOURCE'
  51 + | '420 METHOD_FAILURE'
  52 + | '421 DESTINATION_LOCKED'
  53 + | '422 UNPROCESSABLE_ENTITY'
  54 + | '423 LOCKED'
  55 + | '424 FAILED_DEPENDENCY'
  56 + | '425 TOO_EARLY'
  57 + | '426 UPGRADE_REQUIRED'
  58 + | '428 PRECONDITION_REQUIRED'
  59 + | '429 TOO_MANY_REQUESTS'
  60 + | '431 REQUEST_HEADER_FIELDS_TOO_LARGE'
  61 + | '451 UNAVAILABLE_FOR_LEGAL_REASONS'
  62 + | '500 INTERNAL_SERVER_ERROR'
  63 + | '501 NOT_IMPLEMENTED'
  64 + | '502 BAD_GATEWAY'
  65 + | '503 SERVICE_UNAVAILABLE'
  66 + | '504 GATEWAY_TIMEOUT'
  67 + | '505 HTTP_VERSION_NOT_SUPPORTED'
  68 + | '506 VARIANT_ALSO_NEGOTIATES'
  69 + | '507 INSUFFICIENT_STORAGE'
  70 + | '508 LOOP_DETECTED'
  71 + | '509 BANDWIDTH_LIMIT_EXCEEDED'
  72 + | '510 NOT_EXTENDED'
  73 + | '511 NETWORK_AUTHENTICATION_REQUIRED';
  74 +export interface AdminAuthRoleVO {
  75 + menuIds?: Array<number>;
  76 + /** @format int64 */
  77 + roleId?: number;
  78 +}
  79 +
  80 +export interface AdminAuthUserVO {
  81 + roleIds?: Array<number>;
  82 + /** @format int64 */
  83 + userId?: number;
  84 +}
  85 +
  86 +export interface AdminDeptQueryVO {
  87 + /** @format int32 */
  88 + current?: number;
  89 + /** @format int64 */
  90 + id?: number;
  91 + ids?: Array<number>;
  92 + name?: string;
  93 + /** @format int32 */
  94 + pageSize?: number;
  95 + /** @format int64 */
  96 + pid?: number;
  97 + /** @format int32 */
  98 + total?: number;
  99 +}
  100 +
  101 +export interface AdminDeptVO {
  102 + /** @format int64 */
  103 + id?: number;
  104 + name?: string;
  105 + /** @format int64 */
  106 + pid?: number;
  107 +}
  108 +
  109 +export interface AdminJobQueryVO {
  110 + /** @format int32 */
  111 + current?: number;
  112 + /** @format int64 */
  113 + id?: number;
  114 + ids?: Array<number>;
  115 + name?: string;
  116 + /** @format int32 */
  117 + pageSize?: number;
  118 + /** @format int32 */
  119 + sort?: number;
  120 + /** @format int32 */
  121 + total?: number;
  122 +}
  123 +
  124 +export interface AdminJobVO {
  125 + /** @format int64 */
  126 + id?: number;
  127 + name?: string;
  128 + /** @format int32 */
  129 + sort?: number;
  130 +}
  131 +
  132 +export interface AdminMenuQueryVO {
  133 + /** @format int32 */
  134 + cache?: number;
  135 + component?: string;
  136 + /** @format int32 */
  137 + current?: number;
  138 + /** @format int32 */
  139 + hidden?: number;
  140 + icon?: string;
  141 + /** @format int64 */
  142 + id?: number;
  143 + ids?: Array<number>;
  144 + /** @format int32 */
  145 + iframe?: number;
  146 + name?: string;
  147 + /** @format int32 */
  148 + pageSize?: number;
  149 + path?: string;
  150 + permission?: string;
  151 + /** @format int64 */
  152 + pid?: number;
  153 + /** @format int32 */
  154 + total?: number;
  155 + /** @format int32 */
  156 + type?: number;
  157 +}
  158 +
  159 +export interface AdminMenuVO {
  160 + /** @format int32 */
  161 + cache?: number;
  162 + component?: string;
  163 + /** @format int32 */
  164 + hidden?: number;
  165 + icon?: string;
  166 + /** @format int64 */
  167 + id?: number;
  168 + /** @format int32 */
  169 + iframe?: number;
  170 + name?: string;
  171 + path?: string;
  172 + permission?: string;
  173 + /** @format int64 */
  174 + pid?: number;
  175 + title?: string;
  176 + /** @format int32 */
  177 + type?: number;
  178 +}
  179 +
  180 +export interface AdminRoleQueryVO {
  181 + /** @format int32 */
  182 + current?: number;
  183 + dataScope?: string;
  184 + /** @format int64 */
  185 + id?: number;
  186 + ids?: Array<number>;
  187 + /** @format int32 */
  188 + level?: number;
  189 + name?: string;
  190 + /** @format int32 */
  191 + pageSize?: number;
  192 + permission?: string;
  193 + remark?: string;
  194 + /** @format int32 */
  195 + total?: number;
  196 +}
  197 +
  198 +export interface AdminRoleVO {
  199 + dataScope?: string;
  200 + description?: string;
  201 + /** @format int64 */
  202 + id?: number;
  203 + /** @format int32 */
  204 + level?: number;
  205 + name?: string;
  206 +}
  207 +
  208 +export interface AdminUserLoginByPhoneVO {
  209 + /** @format int32 */
  210 + current?: number;
  211 + /** @format int32 */
  212 + pageSize?: number;
  213 + phone?: string;
  214 + smsCaptchaCode?: string;
  215 + /** @format int32 */
  216 + total?: number;
  217 +}
  218 +
  219 +export interface AdminUserLoginByPwdVO {
  220 + /** @format int32 */
  221 + current?: number;
  222 + imgCaptchaCode?: string;
  223 + imgCaptchaUuid?: string;
  224 + /** @format int32 */
  225 + pageSize?: number;
  226 + password?: string;
  227 + /** @format int32 */
  228 + total?: number;
  229 + userName?: string;
  230 +}
  231 +
  232 +export interface AdminUserModifyPwdVO {
  233 + confirmPassword?: string;
  234 + /** @format int32 */
  235 + current?: number;
  236 + /** @format int32 */
  237 + pageSize?: number;
  238 + password?: string;
  239 + phone?: string;
  240 + smsCaptchaCode?: string;
  241 + /** @format int32 */
  242 + total?: number;
  243 +}
  244 +
  245 +export interface AdminUserPasswordRecoverEmailVO {
  246 + /** @format int32 */
  247 + current?: number;
  248 + /** @format int32 */
  249 + pageSize?: number;
  250 + /** @format int32 */
  251 + total?: number;
  252 + userName?: string;
  253 +}
  254 +
  255 +export interface AdminUserQueryVO {
  256 + /** @format int32 */
  257 + current?: number;
  258 + email?: string;
  259 + /** @format int64 */
  260 + id?: number;
  261 + ids?: Array<number>;
  262 + nickName?: string;
  263 + /** @format int32 */
  264 + pageSize?: number;
  265 + password?: string;
  266 + phone?: string;
  267 + sex?: string;
  268 + /** @format int32 */
  269 + total?: number;
  270 + userName?: string;
  271 + workerType?: string;
  272 +}
  273 +
  274 +export interface AdminUserRegisterVO {
  275 + confirmPassword?: string;
  276 + /** @format int32 */
  277 + current?: number;
  278 + email?: string;
  279 + isAgreeAgreement?: boolean;
  280 + /** @format int32 */
  281 + pageSize?: number;
  282 + password?: string;
  283 + phone?: string;
  284 + safeAnswer?: string;
  285 + safeQuestion?: string;
  286 + smsCaptchaCode?: string;
  287 + /** @format int32 */
  288 + total?: number;
  289 + userName?: string;
  290 +}
  291 +
  292 +export interface AdminUserVO {
  293 + avatarName?: string;
  294 + avatarPath?: string;
  295 + /** @format int64 */
  296 + deptId?: number;
  297 + email?: string;
  298 + gender?: string;
  299 + /** @format int64 */
  300 + id?: number;
  301 + isAdmin?: boolean;
  302 + nickName?: string;
  303 + password?: string;
  304 + phone?: string;
  305 + /** @format date-time */
  306 + pwdResetTime?: string;
  307 + remark?: string;
  308 + /** @format int64 */
  309 + roleId?: number;
  310 + userName?: string;
  311 +}
  312 +
  313 +export interface AuditVO {
  314 + /** @format int32 */
  315 + current?: number;
  316 + /** @format int64 */
  317 + id?: number;
  318 + /** @format int32 */
  319 + pageSize?: number;
  320 + /** @format int32 */
  321 + status?: number;
  322 + /** @format int32 */
  323 + total?: number;
  324 +}
  325 +
  326 +export interface CaptchaMessageVO {
  327 + /** @format int32 */
  328 + current?: number;
  329 + imgCaptchaCode?: string;
  330 + imgCaptchaUuid?: string;
  331 + /** @format int32 */
  332 + pageSize?: number;
  333 + phone?: string;
  334 + /** @format int32 */
  335 + total?: number;
  336 + type?: string;
  337 +}
  338 +
  339 +export interface DictionaryQueryVO {
  340 + /** @format int32 */
  341 + current?: number;
  342 + dictCode?: string;
  343 + dictName?: string;
  344 + dictValue?: string;
  345 + /** @format int64 */
  346 + id?: number;
  347 + ids?: Array<number>;
  348 + /** @format int32 */
  349 + pageSize?: number;
  350 + remark?: string;
  351 + /** @format int32 */
  352 + sort?: number;
  353 + /** @format int32 */
  354 + total?: number;
  355 +}
  356 +
  357 +export interface DictionaryVO {
  358 + dictCode?: string;
  359 + dictName?: string;
  360 + dictValue?: string;
  361 + /** @format int64 */
  362 + id?: number;
  363 + remark?: string;
  364 + /** @format int32 */
  365 + sort?: number;
  366 +}
  367 +
  368 +export interface ModelAndView {
  369 + empty?: boolean;
  370 + model?: any;
  371 + modelMap?: {
  372 + [propertyName: string]: any;
  373 + };
  374 + reference?: boolean;
  375 + status?: ModelAndViewStatus;
  376 + view?: View;
  377 + viewName?: string;
  378 +}
  379 +
  380 +export interface OrderAddVO {
  381 + baseInfo?: OrderBaseInfoVO;
  382 + inspectionStageInfo?: OrderInspectionStageVO;
  383 + profitAnalysisInfo?: OrderProfitAnalysisVO;
  384 + reportInfo?: OrderCompletionReportVO;
  385 + trackStageInfo?: OrderTrackStageVO;
  386 +}
  387 +
  388 +export interface OrderAuditLogQueryVO {
  389 + /** @format int64 */
  390 + applyId?: number;
  391 + /** @format int32 */
  392 + current?: number;
  393 + /** @format int64 */
  394 + id?: number;
  395 + ids?: Array<number>;
  396 + optType?: string;
  397 + /** @format int64 */
  398 + orderId?: number;
  399 + /** @format int32 */
  400 + pageSize?: number;
  401 + /** @format int32 */
  402 + total?: number;
  403 +}
  404 +
  405 +export interface OrderBaseFieldVO {
  406 + cnColor?: string;
  407 + collection?: string;
  408 + customerCode?: string;
  409 + customerPo?: string;
  410 + customerStyle?: string;
  411 + innerNo?: string;
  412 + modeleLo?: string;
  413 + orderComposition?: string;
  414 + orderCount?: string;
  415 + orderHodTime?: string;
  416 + orderStatus?: string;
  417 + outboundType?: string;
  418 + packetType?: string;
  419 + picUrl?: string;
  420 + poColor?: string;
  421 + productStyle?: string;
  422 + productionComment?: string;
  423 + productionDepartment?: string;
  424 + productionDepartmentConsignTime?: string;
  425 + projectNo?: string;
  426 +}
  427 +
  428 +export interface OrderBaseInfoQueryVO {
  429 + cnColor?: string;
  430 + collection?: string;
  431 + /** @format int32 */
  432 + current?: number;
  433 + customerCode?: string;
  434 + customerPo?: string;
  435 + customerStyle?: string;
  436 + /** @format int64 */
  437 + id?: number;
  438 + ids?: Array<number>;
  439 + innerNo?: string;
  440 + modeleLo?: string;
  441 + orderComposition?: string;
  442 + /** @format int32 */
  443 + orderCount?: number;
  444 + orderHodTime?: string;
  445 + outboundType?: string;
  446 + packetType?: string;
  447 + /** @format int32 */
  448 + pageSize?: number;
  449 + picUrl?: string;
  450 + poColor?: string;
  451 + productStyle?: string;
  452 + productionComment?: string;
  453 + productionDepartment?: string;
  454 + productionDepartmentConsignTime?: string;
  455 + projectNo?: string;
  456 + /** @format int32 */
  457 + total?: number;
  458 +}
  459 +
  460 +export interface OrderBaseInfoVO {
  461 + cnColor?: string;
  462 + collection?: string;
  463 + customerCode?: string;
  464 + customerPo?: string;
  465 + customerStyle?: string;
  466 + /** @format int64 */
  467 + id?: number;
  468 + innerNo?: string;
  469 + modeleLo?: string;
  470 + orderComposition?: string;
  471 + /** @format int32 */
  472 + orderCount?: number;
  473 + orderHodTime?: string;
  474 + /** @format int32 */
  475 + orderStatus?: number;
  476 + outboundType?: string;
  477 + packetType?: string;
  478 + picUrl?: string;
  479 + poColor?: string;
  480 + productStyle?: string;
  481 + productionComment?: string;
  482 + productionDepartment?: string;
  483 + productionDepartmentConsignTime?: string;
  484 + projectNo?: string;
  485 + smallPicUrl?: string;
  486 +}
  487 +
  488 +export interface OrderCompletionReportFieldVO {
  489 + ideaManualRate?: string;
  490 + ideaSource?: string;
  491 + manualPreform?: string;
  492 + /** @format int64 */
  493 + orderId?: number;
  494 + orderStatus?: string;
  495 +}
  496 +
  497 +export interface OrderCompletionReportVO {
  498 + /** @format int64 */
  499 + id?: number;
  500 + /** @format double */
  501 + ideaManualRate?: number;
  502 + ideaSource?: string;
  503 + manualPreform?: string;
  504 + /** @format int64 */
  505 + orderId?: number;
  506 + /** @format int32 */
  507 + orderStatus?: number;
  508 +}
  509 +
  510 +export interface OrderFieldLockApplyQueryVO {
  511 + /** @format int64 */
  512 + applyUserId?: number;
  513 + /** @format int64 */
  514 + auditUserId?: number;
  515 + /** @format int32 */
  516 + current?: number;
  517 + fields?: string;
  518 + /** @format int64 */
  519 + id?: number;
  520 + ids?: Array<number>;
  521 + /** @format int64 */
  522 + orderId?: number;
  523 + /** @format int32 */
  524 + pageSize?: number;
  525 + /** @format int32 */
  526 + status?: number;
  527 + statusList?: Array<number>;
  528 + /** @format int32 */
  529 + total?: number;
  530 + /** @format int32 */
  531 + type?: number;
  532 +}
  533 +
  534 +export interface OrderInspectionStageFieldVO {
  535 + boxPacket?: string;
  536 + electroplate?: string;
  537 + endCheckApplyTime?: string;
  538 + endCheckResult?: string;
  539 + functionality?: string;
  540 + midCheckApplyTime?: string;
  541 + midCheckComment?: string;
  542 + midCheckResult?: string;
  543 + orderStatus?: string;
  544 + specification?: string;
  545 + value1?: string;
  546 + value2?: string;
  547 + value3?: string;
  548 +}
  549 +
  550 +export interface OrderInspectionStageVO {
  551 + boxPacket?: string;
  552 + electroplate?: string;
  553 + endCheckApplyTime?: string;
  554 + endCheckResult?: string;
  555 + functionality?: string;
  556 + /** @format int64 */
  557 + id?: number;
  558 + midCheckApplyTime?: string;
  559 + midCheckComment?: string;
  560 + midCheckResult?: string;
  561 + /** @format int64 */
  562 + orderId?: number;
  563 + /** @format int32 */
  564 + orderStatus?: number;
  565 + specification?: string;
  566 + value1?: string;
  567 + value2?: string;
  568 + value3?: string;
  569 +}
  570 +
  571 +export interface OrderOptLogQueryVO {
  572 + /** @format int32 */
  573 + current?: number;
  574 + /** @format int64 */
  575 + id?: number;
  576 + ids?: Array<number>;
  577 + /** @format int64 */
  578 + orderId?: number;
  579 + /** @format int32 */
  580 + pageSize?: number;
  581 + /** @format int32 */
  582 + total?: number;
  583 +}
  584 +
  585 +export interface OrderProfitAnalysisFieldVO {
  586 + customerPrice?: string;
  587 + customerTotalPrice?: string;
  588 + exchangeRate?: string;
  589 + /** @format int64 */
  590 + orderId?: number;
  591 + orderStatus?: string;
  592 + packetPrice?: string;
  593 + packetTotalPrice?: string;
  594 + productionDepartmentPrice?: string;
  595 + productionDepartmentTotalPrice?: string;
  596 + profitRate?: string;
  597 +}
  598 +
  599 +export interface OrderProfitAnalysisVO {
  600 + customerCurrency?: string;
  601 + /** @format double */
  602 + customerPrice?: number;
  603 + /** @format double */
  604 + customerTotalPrice?: number;
  605 + /** @format double */
  606 + exchangeRate?: number;
  607 + /** @format int64 */
  608 + id?: number;
  609 + /** @format int64 */
  610 + orderId?: number;
  611 + /** @format int32 */
  612 + orderStatus?: number;
  613 + packetCurrency?: string;
  614 + /** @format double */
  615 + packetPrice?: number;
  616 + /** @format double */
  617 + packetTotalPrice?: number;
  618 + productionDepartmentCurrency?: string;
  619 + /** @format double */
  620 + productionDepartmentPrice?: number;
  621 + /** @format double */
  622 + productionDepartmentTotalPrice?: number;
  623 + /** @format double */
  624 + profitRate?: number;
  625 +}
  626 +
  627 +export interface OrderProfitAnalysisVo {
  628 + orderIds?: Array<number>;
  629 +}
  630 +
  631 +export interface OrderTrackStageFieldVO {
  632 + aitexTestFinishResult?: string;
  633 + aitexTestSendTime?: string;
  634 + barcodeStickerArrivalTime?: string;
  635 + esoSampleSendTime?: string;
  636 + latestArrivalTime?: string;
  637 + latestBkTime?: string;
  638 + orderStatus?: string;
  639 + ppConfirmResult?: string;
  640 + ppTime?: string;
  641 + selfTestPassTime?: string;
  642 + sgsTestFinishResult?: string;
  643 + sgsTestSendTime?: string;
  644 + shippmentSampleConfirmResult?: string;
  645 + shippmentSampleSendTime?: string;
  646 +}
  647 +
  648 +export interface OrderTrackStageVO {
  649 + aitexTestFinishResult?: string;
  650 + aitexTestSendTime?: string;
  651 + barcodeStickerArrivalTime?: string;
  652 + esoSampleSendTime?: string;
  653 + /** @format int64 */
  654 + id?: number;
  655 + latestArrivalTime?: string;
  656 + latestBkTime?: string;
  657 + /** @format int64 */
  658 + orderId?: number;
  659 + /** @format int32 */
  660 + orderStatus?: number;
  661 + ppConfirmResult?: string;
  662 + ppTime?: string;
  663 + selfTestPassTime?: string;
  664 + sgsTestFinishResult?: string;
  665 + sgsTestSendTime?: string;
  666 + shippmentSampleConfirmResult?: string;
  667 + shippmentSampleSendTime?: string;
  668 +}
  669 +
  670 +export interface OrderUnlockFieldApplyVO {
  671 + baseFields?: OrderBaseFieldVO;
  672 + inspectionStageFields?: OrderInspectionStageFieldVO;
  673 + /** @format int64 */
  674 + orderId?: number;
  675 + profitAnalysisFields?: OrderProfitAnalysisFieldVO;
  676 + reportFields?: OrderCompletionReportFieldVO;
  677 + trackStageFields?: OrderTrackStageFieldVO;
  678 +}
  679 +
  680 +export interface OrderUpdateVO {
  681 + baseInfo?: OrderBaseInfoVO;
  682 + inspectionStageInfo?: OrderInspectionStageVO;
  683 + /** @format int64 */
  684 + orderId?: number;
  685 + profitAnalysisInfo?: OrderProfitAnalysisVO;
  686 + reportInfo?: OrderCompletionReportVO;
  687 + trackStageInfo?: OrderTrackStageVO;
  688 +}
  689 +
  690 +export interface ResetPwdVO {
  691 + /** @format int64 */
  692 + userId?: number;
  693 +}
  694 +
  695 +export interface ServerResult {
  696 + data?: any;
  697 + message?: string;
  698 + /** @format int32 */
  699 + result?: number;
  700 +}
  701 +
  702 +export interface SysLogQueryVO {
  703 + address?: string;
  704 + browser?: string;
  705 + /** @format int32 */
  706 + current?: number;
  707 + description?: string;
  708 + exceptionDetail?: string;
  709 + /** @format int64 */
  710 + id?: number;
  711 + ids?: Array<number>;
  712 + logType?: string;
  713 + method?: string;
  714 + /** @format int32 */
  715 + pageSize?: number;
  716 + params?: string;
  717 + requestIp?: string;
  718 + /** @format int64 */
  719 + time?: number;
  720 + /** @format int32 */
  721 + total?: number;
  722 + username?: string;
  723 +}
  724 +
  725 +export interface UpdatePwdVO {
  726 + confirmPassword?: string;
  727 + password?: string;
  728 + /** @format int64 */
  729 + userId?: number;
  730 +}
  731 +
  732 +export interface View {
  733 + contentType?: string;
  734 +}
  735 +
  736 +export interface Dto {
  737 + /**
  738 + * @description
  739 + * 银行名称
  740 + */
  741 + bank?: string;
  742 + /**
  743 + * @description
  744 + * 开始时间
  745 + * @format date-time
  746 + * @example
  747 + * 2023-11-11 10:10
  748 + */
  749 + beginTime?: string;
  750 + /** @format int32 */
  751 + current?: number;
  752 + /**
  753 + * @description
  754 + * 收货人联系手机号
  755 + */
  756 + customerContactNumber?: string;
  757 + /**
  758 + * @description
  759 + * 收货人姓名
  760 + */
  761 + customerName?: string;
  762 + /**
  763 + * @description
  764 + * 收货人地址信息
  765 + */
  766 + customerShippingAddress?: string;
  767 + /**
  768 + * @description
  769 + * 结束时间
  770 + * @format date-time
  771 + * @example
  772 + * 2023-11-11 10:20
  773 + */
  774 + endTime?: string;
  775 + /**
  776 + * @description
  777 + * 主订单号id
  778 + * @format int64
  779 + */
  780 + id?: number;
  781 + /**
  782 + * @description
  783 + * 单位
  784 + */
  785 + institution?: string;
  786 + /**
  787 + * @description
  788 + * 单位联系人
  789 + */
  790 + institutionContactName?: string;
  791 + /**
  792 + * @description
  793 + * 开票状态
  794 + */
  795 + invoicingStatus?: string;
  796 + /**
  797 + * @description
  798 + * 物流方式
  799 + */
  800 + logisticsMethod?: string;
  801 + /**
  802 + * @description
  803 + * 订单状态
  804 + */
  805 + orderStatus?: string;
  806 + /** @format int32 */
  807 + pageSize?: number;
  808 + /**
  809 + * @description
  810 + * 商品参数
  811 + */
  812 + parameters?: string;
  813 + /**
  814 + * @description
  815 + * 支付渠道
  816 + */
  817 + paymentChannel?: string;
  818 + /**
  819 + * @description
  820 + * 支付方式
  821 + */
  822 + paymentMethod?: string;
  823 + /**
  824 + * @description
  825 + * 支付流水号
  826 + */
  827 + paymentTransactionId?: string;
  828 + /**
  829 + * @description
  830 + * 商品所属事业部门
  831 + */
  832 + productBelongBusiness?: string;
  833 + /**
  834 + * @description
  835 + * 商品名称
  836 + */
  837 + productName?: string;
  838 + /**
  839 + * @description
  840 + * 销售代号
  841 + */
  842 + salesCode?: string;
  843 + /** @format int32 */
  844 + total?: number;
  845 +}