Commit 1d454be0bcbd9bc956800a01867899015720a809
1 parent
15c41122
feat: add new functionality
chore: update review functionality
Showing
7 changed files
with
1200 additions
and
110 deletions
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 }) => { | @@ -21,12 +41,35 @@ export default ({ setCheckVisible }) => { | ||
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 }) => { | @@ -40,18 +43,21 @@ const DeliverModal = ({ data: propsData, onClose }) => { | ||
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 }) => { | @@ -35,7 +41,48 @@ export default ({ onClose, data }) => { | ||
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 }) => { | @@ -52,13 +99,10 @@ export default ({ onClose, data }) => { | ||
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 }) => { | @@ -67,37 +111,30 @@ export default ({ onClose, data }) => { | ||
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 }) => { | @@ -105,20 +142,85 @@ export default ({ onClose, data }) => { | ||
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 }) => { | @@ -126,17 +228,28 @@ export default ({ onClose, data }) => { | ||
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 }) => { | @@ -185,11 +298,11 @@ export default ({ onClose, data }) => { | ||
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 }) => { | @@ -217,11 +330,14 @@ export default ({ onClose, data }) => { | ||
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 }) => { | @@ -239,47 +355,60 @@ export default ({ onClose, data }) => { | ||
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 = () => { | @@ -20,27 +28,23 @@ const OrderPage = () => { | ||
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 = () => { | @@ -51,15 +55,15 @@ const OrderPage = () => { | ||
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 = () => { | @@ -156,6 +160,7 @@ const OrderPage = () => { | ||
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 = () => { | @@ -176,7 +181,7 @@ const OrderPage = () => { | ||
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 = () => { | @@ -211,11 +216,30 @@ const OrderPage = () => { | ||
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 = () => { | @@ -227,9 +251,15 @@ const OrderPage = () => { | ||
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 = () => { | @@ -237,7 +267,7 @@ const OrderPage = () => { | ||
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 = () => { | @@ -294,6 +324,7 @@ const OrderPage = () => { | ||
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 = () => { | @@ -318,7 +349,7 @@ const OrderPage = () => { | ||
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 = () => { | @@ -336,7 +367,7 @@ const OrderPage = () => { | ||
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 = () => { | @@ -348,17 +379,19 @@ const OrderPage = () => { | ||
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 | +} |