Commit 631ce1227a12dba57490921bbaec92b8a29535b2
1 parent
6714814c
feat(Order): 添加锁单提醒功能并优化订单相关页面
- 在 Order 页面添加锁单提醒功能,展示锁单订单列表 -优化订单列表页面,增加到期时间等字段 - 更新发票相关页面,调整开票时间参数处理- 重构部分组件以支持新功能
Showing
13 changed files
with
911 additions
and
275 deletions
.umirc.ts
... | ... | @@ -101,6 +101,13 @@ export default defineConfig({ |
101 | 101 | component: './Invoice/Invoice', |
102 | 102 | }, |
103 | 103 | { |
104 | + name: '待红冲发票', | |
105 | + path: 'waitFlushInvoice', | |
106 | + icon: 'BookOutlined', | |
107 | + access: 'canReadAdminAndFinanceAndSales', | |
108 | + component: './Invoice/waitFlushInvoice', | |
109 | + }, | |
110 | + { | |
104 | 111 | name: '银行流水', |
105 | 112 | path: 'invoiceVerification', |
106 | 113 | icon: 'BookOutlined', | ... | ... |
src/pages/Invoice/Invoice/index.tsx
... | ... | @@ -312,7 +312,15 @@ const InvoiceRecord = () => { |
312 | 312 | '/api/service/invoice/exportInvoices', |
313 | 313 | '发票.xlsx', |
314 | 314 | 'POST', |
315 | - values, | |
315 | + { | |
316 | + ...values, | |
317 | + invoicingBeginTime: values?.invoicingTime | |
318 | + ? values?.invoicingTime[0] | |
319 | + : null, | |
320 | + invoicingEndTime: values?.invoicingTime | |
321 | + ? values?.invoicingTime[1] | |
322 | + : null, | |
323 | + }, | |
316 | 324 | () => { |
317 | 325 | messageApi.destroy(); |
318 | 326 | }, | ... | ... |
src/pages/Invoice/InvoiceRecord/index.tsx
... | ... | @@ -426,8 +426,13 @@ const InvoiceRecord = () => { |
426 | 426 | <Button |
427 | 427 | key="out" |
428 | 428 | onClick={() => { |
429 | - const values = searchConfig?.form?.getFieldsValue(); | |
430 | - console.log(values); | |
429 | + const searchParams = searchConfig?.form?.getFieldsValue(); | |
430 | + const values = { | |
431 | + ...searchConfig?.form?.getFieldsValue(), | |
432 | + invoicingDateGe: searchParams.invoicingDate[0], | |
433 | + invoicingDateLe: searchParams.invoicingDate[1], | |
434 | + }; | |
435 | + console.log(searchConfig); | |
431 | 436 | messageApi.open({ |
432 | 437 | type: 'loading', |
433 | 438 | content: '正在导出文件...', | ... | ... |
src/pages/Invoice/constant.tsx
src/pages/Invoice/waitFlushInvoice/index.tsx
0 → 100644
1 | +import { RESPONSE_CODE } from '@/constants/enum'; | |
2 | +import BankImportModal from '@/pages/Invoice/Invoice/components/BankImportModal'; | |
3 | +import InvoiceVerificationModal from '@/pages/Invoice/Invoice/components/InvoiceVerificationModal'; | |
4 | +import { PAYEE_OPTIONS } from '@/pages/Order/constant'; | |
5 | +import { | |
6 | + postServiceInvoiceDeleteInvoice, | |
7 | + postServiceInvoiceModify, | |
8 | + postServiceInvoiceQueryInvoice, | |
9 | +} from '@/services'; | |
10 | +import { downloadFile } from '@/services/order'; | |
11 | +import { enumToProTableEnumValue, getUserInfo } from '@/utils'; | |
12 | +import { ActionType, ProTable } from '@ant-design/pro-components'; | |
13 | +import { Button, Popconfirm, Space, Table, message } from 'antd'; | |
14 | +import { useRef, useState } from 'react'; | |
15 | + | |
16 | +const InvoiceRecord = () => { | |
17 | + const invoiceActionRef = useRef<ActionType>(); | |
18 | + const [bankImportModalVisible, setBankImportModalVisible] = useState(false); | |
19 | + const [invoiceVerificationVisible, setInvoiceVerificationVisible] = | |
20 | + useState(false); | |
21 | + const [invoiceId, setInvoiceId] = useState(undefined); | |
22 | + const [setPerms] = useState([]); | |
23 | + const [messageApi, contextHolder] = message.useMessage(); | |
24 | + const reloadInvoiceTable = () => { | |
25 | + invoiceActionRef.current?.reload(); | |
26 | + }; | |
27 | + const userInfo = getUserInfo(); | |
28 | + | |
29 | + return ( | |
30 | + <div className="invoice-index"> | |
31 | + <ProTable | |
32 | + columns={[ | |
33 | + { | |
34 | + dataIndex: 'invoiceId', | |
35 | + title: 'id', | |
36 | + valueType: 'text', | |
37 | + hideInTable: true, | |
38 | + hideInSearch: true, | |
39 | + readonly: true, | |
40 | + width: 100, | |
41 | + }, | |
42 | + { | |
43 | + dataIndex: 'invoiceNumber', | |
44 | + title: '发票号码', | |
45 | + valueType: 'text', | |
46 | + width: 180, | |
47 | + }, | |
48 | + { | |
49 | + dataIndex: 'mainOrderId', | |
50 | + title: '订单编号', | |
51 | + valueType: 'text', | |
52 | + width: 160, | |
53 | + hideInTable: true, | |
54 | + }, | |
55 | + { | |
56 | + dataIndex: 'invoiceStatusText', | |
57 | + title: '开票类型', | |
58 | + hideInSearch: true, | |
59 | + valueType: 'text', | |
60 | + width: 100, | |
61 | + }, | |
62 | + { | |
63 | + dataIndex: 'invoiceStatus', | |
64 | + title: '发票类型', | |
65 | + valueType: 'select', | |
66 | + hideInTable: true, | |
67 | + width: 100, | |
68 | + valueEnum: enumToProTableEnumValue({ | |
69 | + SPECIALLY_INVOICED: '专票', | |
70 | + COMMON_INVOICED: '普票', | |
71 | + }), | |
72 | + }, | |
73 | + { | |
74 | + title: '金额', | |
75 | + dataIndex: 'money', | |
76 | + hideInTable: false, | |
77 | + hideInSearch: true, | |
78 | + valueType: 'money', | |
79 | + width: 180, | |
80 | + }, | |
81 | + { | |
82 | + title: '购买方', | |
83 | + dataIndex: 'purchaser', | |
84 | + valueType: 'text', | |
85 | + width: 200, | |
86 | + }, | |
87 | + { | |
88 | + title: '购方税号', | |
89 | + dataIndex: 'partyATaxid', | |
90 | + hideInSearch: true, | |
91 | + valueType: 'text', | |
92 | + width: 180, | |
93 | + }, | |
94 | + { | |
95 | + title: '联系人', | |
96 | + dataIndex: 'contacts', | |
97 | + valueType: 'text', | |
98 | + width: 100, | |
99 | + }, | |
100 | + { | |
101 | + title: '收款单位', | |
102 | + dataIndex: 'payee', | |
103 | + valueType: 'text', | |
104 | + width: 200, | |
105 | + valueEnum: enumToProTableEnumValue(PAYEE_OPTIONS), | |
106 | + }, | |
107 | + { | |
108 | + title: '开票日期', | |
109 | + dataIndex: 'invoicingTime', | |
110 | + valueType: 'date', | |
111 | + width: 150, | |
112 | + hideInSearch: true, | |
113 | + }, | |
114 | + { | |
115 | + title: '申请人', | |
116 | + dataIndex: 'createByName', | |
117 | + valueType: 'text', | |
118 | + width: 100, | |
119 | + }, | |
120 | + { | |
121 | + title: '操作', | |
122 | + valueType: 'option', | |
123 | + key: 'option', | |
124 | + fixed: 'right', | |
125 | + width: 160, | |
126 | + render: ({ record }) => { | |
127 | + let btns = []; | |
128 | + if (record.paths?.includes('queryInvoiceDetails')) { | |
129 | + btns.push( | |
130 | + <Button | |
131 | + className="p-0" | |
132 | + key="view" | |
133 | + type="link" | |
134 | + onClick={() => { | |
135 | + setInvoiceVerificationVisible(true); | |
136 | + setInvoiceId(record.id); | |
137 | + }} | |
138 | + > | |
139 | + 查看 | |
140 | + </Button>, | |
141 | + ); | |
142 | + } | |
143 | + if (record.paths?.includes('deleteInvoice')) { | |
144 | + btns.push( | |
145 | + <Popconfirm | |
146 | + key="delete" | |
147 | + title={'冲红'} | |
148 | + description={ | |
149 | + '确认冲红发票号码为[ ' + | |
150 | + record.invoiceNumber + | |
151 | + ' ]的发票吗?' | |
152 | + } | |
153 | + onConfirm={async () => { | |
154 | + let res = await postServiceInvoiceDeleteInvoice({ | |
155 | + data: { invoiceIds: [record.id] }, | |
156 | + }); | |
157 | + if (res) { | |
158 | + message.success(res.message); | |
159 | + reloadInvoiceTable(); | |
160 | + } | |
161 | + }} | |
162 | + okText="确认" | |
163 | + cancelText="取消" | |
164 | + > | |
165 | + <Button type={'link'} danger> | |
166 | + 删除 | |
167 | + </Button> | |
168 | + </Popconfirm>, | |
169 | + ); | |
170 | + } | |
171 | + return btns; | |
172 | + }, | |
173 | + }, | |
174 | + ]} | |
175 | + actionRef={invoiceActionRef} | |
176 | + cardBordered | |
177 | + pagination={{ | |
178 | + pageSizeOptions: ['10', '20', '50', '100'], | |
179 | + }} | |
180 | + rowSelection={{ | |
181 | + // 自定义选择项参考: https://ant.design/components/table-cn/#components-table-demo-row-selection-custom | |
182 | + // 注释该行则默认不显示下拉选项 | |
183 | + selections: [Table.SELECTION_ALL, Table.SELECTION_INVERT], | |
184 | + alwaysShowAlert: true, | |
185 | + }} | |
186 | + tableAlertRender={({ selectedRowKeys, onCleanSelected }) => { | |
187 | + return ( | |
188 | + <Space size={24}> | |
189 | + <span> | |
190 | + 已选 {selectedRowKeys.length} 项 | |
191 | + <a style={{ marginInlineStart: 8 }} onClick={onCleanSelected}> | |
192 | + 取消选择 | |
193 | + </a> | |
194 | + </span> | |
195 | + </Space> | |
196 | + ); | |
197 | + }} | |
198 | + tableAlertOptionRender={({ selectedRowKeys, onCleanSelected }) => { | |
199 | + console.log('selected' + JSON.stringify(selectedRowKeys)); | |
200 | + return ( | |
201 | + <> | |
202 | + {(userInfo.roles?.includes('ADMIN') || | |
203 | + userInfo.roles?.includes('FINANCE')) && ( | |
204 | + <Space size={16}> | |
205 | + <Popconfirm | |
206 | + title="确定要冲红选中的订单吗?" | |
207 | + onConfirm={async () => { | |
208 | + const res = await postServiceInvoiceDeleteInvoice({ | |
209 | + data: { invoiceIds: selectedRowKeys }, | |
210 | + }); | |
211 | + if (res.result === RESPONSE_CODE.SUCCESS) { | |
212 | + message.success('成功'); | |
213 | + } | |
214 | + invoiceActionRef.current?.reload(); | |
215 | + onCleanSelected(); | |
216 | + }} | |
217 | + okText="确定" | |
218 | + cancelText="取消" | |
219 | + > | |
220 | + <Button type="primary" danger> | |
221 | + 批量冲红 | |
222 | + </Button> | |
223 | + </Popconfirm> | |
224 | + </Space> | |
225 | + )} | |
226 | + </> | |
227 | + ); | |
228 | + }} | |
229 | + request={async (params) => { | |
230 | + const res = await postServiceInvoiceQueryInvoice({ | |
231 | + data: { | |
232 | + afterInvoicingStatus: 'WAIT_FLUSH', | |
233 | + ...params, | |
234 | + }, | |
235 | + }); | |
236 | + if (res) { | |
237 | + setPerms(res?.data?.specialPath); | |
238 | + return { | |
239 | + data: res?.data?.data || [], | |
240 | + total: res?.data?.total || 0, | |
241 | + }; | |
242 | + } | |
243 | + }} | |
244 | + columnsState={{ | |
245 | + persistenceKey: 'pro-table-singe-demos', | |
246 | + persistenceType: 'localStorage', | |
247 | + defaultValue: { | |
248 | + option: { fixed: 'right', disable: true }, | |
249 | + }, | |
250 | + onChange(value) { | |
251 | + console.log('value: ', value); | |
252 | + }, | |
253 | + }} | |
254 | + editable={{ | |
255 | + type: 'multiple', | |
256 | + onSave: async (key, row, originRow) => { | |
257 | + console.log('row: ', row); | |
258 | + console.log('originRow: ', originRow); | |
259 | + postServiceInvoiceModify({ | |
260 | + data: row, | |
261 | + }); | |
262 | + }, | |
263 | + }} | |
264 | + rowKey="id" | |
265 | + search={{ | |
266 | + labelWidth: 'auto', | |
267 | + optionRender: (searchConfig, formProps, dom) => [ | |
268 | + ...dom.reverse(), | |
269 | + <Button | |
270 | + key="out" | |
271 | + onClick={() => { | |
272 | + const values = searchConfig?.form?.getFieldsValue(); | |
273 | + messageApi.open({ | |
274 | + type: 'loading', | |
275 | + content: '导出中...', | |
276 | + duration: 0, | |
277 | + }); | |
278 | + downloadFile( | |
279 | + '/api/service/invoice/exportInvoices', | |
280 | + '发票.xlsx', | |
281 | + 'POST', | |
282 | + { | |
283 | + ...values, | |
284 | + invoicingBeginTime: values.invoicingTime[0], | |
285 | + invoicingEndTime: values.invoicingTime[1], | |
286 | + }, | |
287 | + () => { | |
288 | + messageApi.destroy(); | |
289 | + }, | |
290 | + ); | |
291 | + }} | |
292 | + > | |
293 | + 导出 | |
294 | + </Button>, | |
295 | + ], | |
296 | + }} | |
297 | + options={{ | |
298 | + setting: { | |
299 | + listsHeight: 400, | |
300 | + }, | |
301 | + }} | |
302 | + form={{}} | |
303 | + dateFormatter="string" | |
304 | + headerTitle="发票列表" | |
305 | + scroll={{ x: 1400, y: 360 }} | |
306 | + /> | |
307 | + | |
308 | + {bankImportModalVisible ? ( | |
309 | + <BankImportModal | |
310 | + setVisible={setBankImportModalVisible} | |
311 | + onClose={() => { | |
312 | + setBankImportModalVisible(false); | |
313 | + invoiceActionRef.current?.reload(); | |
314 | + }} | |
315 | + ></BankImportModal> | |
316 | + ) : ( | |
317 | + '' | |
318 | + )} | |
319 | + | |
320 | + {invoiceVerificationVisible ? ( | |
321 | + <InvoiceVerificationModal | |
322 | + setVisible={setInvoiceVerificationVisible} | |
323 | + invoiceId={invoiceId} | |
324 | + onClose={() => { | |
325 | + invoiceActionRef.current?.reload(); | |
326 | + }} | |
327 | + ></InvoiceVerificationModal> | |
328 | + ) : ( | |
329 | + '' | |
330 | + )} | |
331 | + {contextHolder} | |
332 | + </div> | |
333 | + ); | |
334 | +}; | |
335 | + | |
336 | +export default InvoiceRecord; | ... | ... |
src/pages/Order/Order/index.tsx
1 | 1 | import { |
2 | 2 | postServiceOrderDeliverStatistics, |
3 | + postServiceOrderQueryLockOrders, | |
3 | 4 | postServiceOrderWarningOrderStatistics, |
4 | 5 | } from '@/services'; |
5 | 6 | import { getUserInfo } from '@/utils/user'; |
... | ... | @@ -9,6 +10,7 @@ import { useEffect, useState } from 'react'; |
9 | 10 | import OrderList from '../OrderList/OrderList'; |
10 | 11 | import './index.less'; |
11 | 12 | // import { useNavigate } from 'react-router-dom'; |
13 | +import { ProCard, ProTable } from '@ant-design/pro-components'; | |
12 | 14 | import { history } from '@umijs/max'; |
13 | 15 | // import { format } from 'fecha'; |
14 | 16 | |
... | ... | @@ -102,6 +104,16 @@ const OrderPage = () => { |
102 | 104 | // location.href = '/order/OrderWarning'; |
103 | 105 | // history.pushState(null, '', '/order/OrderWarning'); |
104 | 106 | }; |
107 | + const navigateToOrderList = () => { | |
108 | + setOpen(false); | |
109 | + setDeliveryOpen(false); | |
110 | + // history.push('/order/OrderWarning'); | |
111 | + // window.location.replace = '/order/OrderWarning'; | |
112 | + // navigate('/order/OrderWarning'); | |
113 | + history.push('/order/order'); | |
114 | + // location.href = '/order/OrderWarning'; | |
115 | + // history.pushState(null, '', '/order/OrderWarning'); | |
116 | + }; | |
105 | 117 | return ( |
106 | 118 | <div className="order-page-container"> |
107 | 119 | <div id="resizeDiv"></div> |
... | ... | @@ -123,324 +135,410 @@ const OrderPage = () => { |
123 | 135 | </Button>, |
124 | 136 | ]} |
125 | 137 | > |
126 | - <Row | |
127 | - gutter={16} | |
128 | - justify="space-between" // Aligns Cols to the start and end | |
129 | - align="middle" // Vertically center contents | |
138 | + <ProCard | |
139 | + tabs={{ | |
140 | + type: 'card', | |
141 | + }} | |
130 | 142 | > |
131 | - {/* 新增卡片1: 待确认收货订单 */} | |
132 | - <Col span={4}> | |
133 | - {' '} | |
134 | - {/* 修改位置:将 span 改为 6,以保证一行四个卡片 */} | |
135 | - <div | |
136 | - style={{ | |
137 | - display: 'flex', | |
138 | - justifyContent: 'center', | |
139 | - marginTop: '20px', | |
140 | - }} | |
143 | + <ProCard.TabPane key="tab1" tab="订单预警"> | |
144 | + <Row | |
145 | + gutter={16} | |
146 | + justify="space-between" // Aligns Cols to the start and end | |
147 | + align="middle" // Vertically center contents | |
141 | 148 | > |
142 | - <Card | |
143 | - bordered={true} | |
144 | - style={{ | |
145 | - backgroundColor: '#f0f0f0', // 背景颜色 | |
146 | - width: '200px', // 卡片宽度 | |
147 | - height: '200px', // 卡片高度 | |
148 | - display: 'flex', | |
149 | - alignItems: 'center', | |
150 | - justifyContent: 'center', | |
151 | - }} | |
152 | - > | |
149 | + {/* 新增卡片1: 待确认收货订单 */} | |
150 | + <Col span={4}> | |
151 | + {' '} | |
152 | + {/* 修改位置:将 span 改为 6,以保证一行四个卡片 */} | |
153 | 153 | <div |
154 | 154 | style={{ |
155 | - fontWeight: 'bold', // 字体加粗 | |
156 | - color: 'black', // 字体颜色 | |
157 | - fontSize: '18px', // 字体大小 | |
155 | + display: 'flex', | |
156 | + justifyContent: 'center', | |
157 | + marginTop: '20px', | |
158 | 158 | }} |
159 | 159 | > |
160 | - <div | |
160 | + <Card | |
161 | + bordered={true} | |
161 | 162 | style={{ |
162 | - fontWeight: 'bold', // 字体加粗 | |
163 | - color: 'black', // 字体颜色 | |
164 | - fontSize: '40px', // 字体大小 | |
165 | - justifyContent: 'center', | |
163 | + backgroundColor: '#f0f0f0', // 背景颜色 | |
164 | + width: '200px', // 卡片宽度 | |
165 | + height: '200px', // 卡片高度 | |
166 | 166 | display: 'flex', |
167 | 167 | alignItems: 'center', |
168 | - marginBottom: '20px', | |
168 | + justifyContent: 'center', | |
169 | 169 | }} |
170 | 170 | > |
171 | - {invoiceRefundWarningNum} | |
172 | - </div> | |
173 | - 待确认收货订单 | |
171 | + <div | |
172 | + style={{ | |
173 | + fontWeight: 'bold', // 字体加粗 | |
174 | + color: 'black', // 字体颜色 | |
175 | + fontSize: '18px', // 字体大小 | |
176 | + }} | |
177 | + > | |
178 | + <div | |
179 | + style={{ | |
180 | + fontWeight: 'bold', // 字体加粗 | |
181 | + color: 'black', // 字体颜色 | |
182 | + fontSize: '40px', // 字体大小 | |
183 | + justifyContent: 'center', | |
184 | + display: 'flex', | |
185 | + alignItems: 'center', | |
186 | + marginBottom: '20px', | |
187 | + }} | |
188 | + > | |
189 | + {invoiceRefundWarningNum} | |
190 | + </div> | |
191 | + 待确认收货订单 | |
192 | + </div> | |
193 | + </Card> | |
174 | 194 | </div> |
175 | - </Card> | |
176 | - </div> | |
177 | - </Col> | |
195 | + </Col> | |
178 | 196 | |
179 | - {/* 新增卡片1: 待确认收货订单 */} | |
180 | - <Col span={4}> | |
181 | - {' '} | |
182 | - {/* 修改位置:将 span 改为 6,以保证一行四个卡片 */} | |
183 | - <div | |
184 | - style={{ | |
185 | - display: 'flex', | |
186 | - justifyContent: 'center', | |
187 | - marginTop: '20px', | |
188 | - }} | |
189 | - > | |
190 | - <Card | |
191 | - bordered={true} | |
192 | - style={{ | |
193 | - backgroundColor: '#f0f0f0', // 背景颜色 | |
194 | - width: '200px', // 卡片宽度 | |
195 | - height: '200px', // 卡片高度 | |
196 | - display: 'flex', | |
197 | - alignItems: 'center', | |
198 | - justifyContent: 'center', | |
199 | - }} | |
200 | - > | |
197 | + {/* 新增卡片1: 待确认收货订单 */} | |
198 | + <Col span={4}> | |
199 | + {' '} | |
200 | + {/* 修改位置:将 span 改为 6,以保证一行四个卡片 */} | |
201 | 201 | <div |
202 | 202 | style={{ |
203 | - fontWeight: 'bold', // 字体加粗 | |
204 | - color: 'black', // 字体颜色 | |
205 | - fontSize: '18px', // 字体大小 | |
203 | + display: 'flex', | |
204 | + justifyContent: 'center', | |
205 | + marginTop: '20px', | |
206 | 206 | }} |
207 | 207 | > |
208 | - <div | |
208 | + <Card | |
209 | + bordered={true} | |
209 | 210 | style={{ |
210 | - fontWeight: 'bold', // 字体加粗 | |
211 | - color: 'black', // 字体颜色 | |
212 | - fontSize: '40px', // 字体大小 | |
213 | - justifyContent: 'center', | |
211 | + backgroundColor: '#f0f0f0', // 背景颜色 | |
212 | + width: '200px', // 卡片宽度 | |
213 | + height: '200px', // 卡片高度 | |
214 | 214 | display: 'flex', |
215 | 215 | alignItems: 'center', |
216 | - marginBottom: '20px', | |
216 | + justifyContent: 'center', | |
217 | 217 | }} |
218 | 218 | > |
219 | - {invoiceCreateWarningNum} | |
220 | - </div> | |
221 | - 待开票订单 | |
219 | + <div | |
220 | + style={{ | |
221 | + fontWeight: 'bold', // 字体加粗 | |
222 | + color: 'black', // 字体颜色 | |
223 | + fontSize: '18px', // 字体大小 | |
224 | + }} | |
225 | + > | |
226 | + <div | |
227 | + style={{ | |
228 | + fontWeight: 'bold', // 字体加粗 | |
229 | + color: 'black', // 字体颜色 | |
230 | + fontSize: '40px', // 字体大小 | |
231 | + justifyContent: 'center', | |
232 | + display: 'flex', | |
233 | + alignItems: 'center', | |
234 | + marginBottom: '20px', | |
235 | + }} | |
236 | + > | |
237 | + {invoiceCreateWarningNum} | |
238 | + </div> | |
239 | + 待开票订单 | |
240 | + </div> | |
241 | + </Card> | |
222 | 242 | </div> |
223 | - </Card> | |
224 | - </div> | |
225 | - </Col> | |
243 | + </Col> | |
226 | 244 | |
227 | - {/* 新增卡片2: 待回访登记订单 */} | |
228 | - <Col span={4}> | |
229 | - {' '} | |
230 | - {/* 修改位置:将 span 改为 6,以保证一行四个卡片 */} | |
231 | - <div | |
232 | - style={{ | |
233 | - display: 'flex', | |
234 | - justifyContent: 'center', | |
235 | - marginTop: '20px', | |
236 | - }} | |
237 | - > | |
238 | - <Card | |
239 | - bordered={true} | |
240 | - style={{ | |
241 | - backgroundColor: '#f0f0f0', // 背景颜色 | |
242 | - width: '200px', // 卡片宽度 | |
243 | - height: '200px', // 卡片高度 | |
244 | - display: 'flex', | |
245 | - alignItems: 'center', | |
246 | - justifyContent: 'center', | |
247 | - }} | |
248 | - > | |
245 | + {/* 新增卡片2: 待回访登记订单 */} | |
246 | + <Col span={4}> | |
247 | + {' '} | |
248 | + {/* 修改位置:将 span 改为 6,以保证一行四个卡片 */} | |
249 | 249 | <div |
250 | 250 | style={{ |
251 | - fontWeight: 'bold', // 字体加粗 | |
252 | - color: 'black', // 字体颜色 | |
253 | - fontSize: '18px', // 字体大小 | |
251 | + display: 'flex', | |
252 | + justifyContent: 'center', | |
253 | + marginTop: '20px', | |
254 | 254 | }} |
255 | 255 | > |
256 | - <div | |
256 | + <Card | |
257 | + bordered={true} | |
257 | 258 | style={{ |
258 | - fontWeight: 'bold', // 字体加粗 | |
259 | - color: 'black', // 字体颜色 | |
260 | - fontSize: '40px', // 字体大小 | |
261 | - justifyContent: 'center', | |
259 | + backgroundColor: '#f0f0f0', // 背景颜色 | |
260 | + width: '200px', // 卡片宽度 | |
261 | + height: '200px', // 卡片高度 | |
262 | 262 | display: 'flex', |
263 | 263 | alignItems: 'center', |
264 | - marginBottom: '20px', | |
264 | + justifyContent: 'center', | |
265 | 265 | }} |
266 | 266 | > |
267 | - {waitFeedback} | |
268 | - </div> | |
269 | - 待回访登记订单 | |
267 | + <div | |
268 | + style={{ | |
269 | + fontWeight: 'bold', // 字体加粗 | |
270 | + color: 'black', // 字体颜色 | |
271 | + fontSize: '18px', // 字体大小 | |
272 | + }} | |
273 | + > | |
274 | + <div | |
275 | + style={{ | |
276 | + fontWeight: 'bold', // 字体加粗 | |
277 | + color: 'black', // 字体颜色 | |
278 | + fontSize: '40px', // 字体大小 | |
279 | + justifyContent: 'center', | |
280 | + display: 'flex', | |
281 | + alignItems: 'center', | |
282 | + marginBottom: '20px', | |
283 | + }} | |
284 | + > | |
285 | + {waitFeedback} | |
286 | + </div> | |
287 | + 待回访登记订单 | |
288 | + </div> | |
289 | + </Card> | |
270 | 290 | </div> |
271 | - </Card> | |
272 | - </div> | |
273 | - </Col> | |
291 | + </Col> | |
274 | 292 | |
275 | - {/* 现有卡片: 发票待确认订单 */} | |
276 | - <Col span={4}> | |
277 | - {' '} | |
278 | - {/* 修改位置:将 span 改为 6,以保证一行四个卡片 */} | |
279 | - <div | |
280 | - style={{ | |
281 | - display: 'flex', | |
282 | - justifyContent: 'center', | |
283 | - marginTop: '20px', | |
284 | - }} | |
285 | - > | |
286 | - <Card | |
287 | - bordered={true} | |
288 | - style={{ | |
289 | - backgroundColor: '#f0f0f0', // 背景颜色 | |
290 | - width: '200px', // 卡片宽度 | |
291 | - height: '200px', // 卡片高度 | |
292 | - display: 'flex', | |
293 | - alignItems: 'center', | |
294 | - justifyContent: 'center', | |
295 | - }} | |
296 | - > | |
293 | + {/* 现有卡片: 发票待确认订单 */} | |
294 | + <Col span={4}> | |
295 | + {' '} | |
296 | + {/* 修改位置:将 span 改为 6,以保证一行四个卡片 */} | |
297 | 297 | <div |
298 | 298 | style={{ |
299 | - fontWeight: 'bold', // 字体加粗 | |
300 | - color: 'black', // 字体颜色 | |
301 | - fontSize: '18px', // 字体大小 | |
299 | + display: 'flex', | |
300 | + justifyContent: 'center', | |
301 | + marginTop: '20px', | |
302 | 302 | }} |
303 | 303 | > |
304 | - <div | |
304 | + <Card | |
305 | + bordered={true} | |
305 | 306 | style={{ |
306 | - fontWeight: 'bold', // 字体加粗 | |
307 | - color: 'black', // 字体颜色 | |
308 | - fontSize: '40px', // 字体大小 | |
309 | - justifyContent: 'center', | |
307 | + backgroundColor: '#f0f0f0', // 背景颜色 | |
308 | + width: '200px', // 卡片宽度 | |
309 | + height: '200px', // 卡片高度 | |
310 | 310 | display: 'flex', |
311 | 311 | alignItems: 'center', |
312 | - marginBottom: '20px', | |
312 | + justifyContent: 'center', | |
313 | 313 | }} |
314 | 314 | > |
315 | - {invoiceWarningNum} | |
316 | - </div> | |
317 | - 待确认发票订单 | |
315 | + <div | |
316 | + style={{ | |
317 | + fontWeight: 'bold', // 字体加粗 | |
318 | + color: 'black', // 字体颜色 | |
319 | + fontSize: '18px', // 字体大小 | |
320 | + }} | |
321 | + > | |
322 | + <div | |
323 | + style={{ | |
324 | + fontWeight: 'bold', // 字体加粗 | |
325 | + color: 'black', // 字体颜色 | |
326 | + fontSize: '40px', // 字体大小 | |
327 | + justifyContent: 'center', | |
328 | + display: 'flex', | |
329 | + alignItems: 'center', | |
330 | + marginBottom: '20px', | |
331 | + }} | |
332 | + > | |
333 | + {invoiceWarningNum} | |
334 | + </div> | |
335 | + 待确认发票订单 | |
336 | + </div> | |
337 | + </Card> | |
318 | 338 | </div> |
319 | - </Card> | |
320 | - </div> | |
321 | - </Col> | |
339 | + </Col> | |
322 | 340 | |
323 | - {/* 现有卡片: 回款待确认订单 */} | |
324 | - <Col span={4}> | |
325 | - {' '} | |
326 | - {/* 修改位置:将 span 改为 6,以保证一行四个卡片 */} | |
327 | - <div | |
328 | - style={{ | |
329 | - display: 'flex', | |
330 | - justifyContent: 'center', | |
331 | - marginTop: '20px', | |
332 | - }} | |
333 | - > | |
334 | - <Card | |
335 | - bordered={true} | |
336 | - style={{ | |
337 | - backgroundColor: '#f0f0f0', // 背景颜色 | |
338 | - width: '200px', // 卡片宽度 | |
339 | - height: '200px', // 卡片高度 | |
340 | - display: 'flex', | |
341 | - alignItems: 'center', | |
342 | - justifyContent: 'center', | |
343 | - }} | |
344 | - > | |
341 | + {/* 现有卡片: 回款待确认订单 */} | |
342 | + <Col span={4}> | |
343 | + {' '} | |
344 | + {/* 修改位置:将 span 改为 6,以保证一行四个卡片 */} | |
345 | 345 | <div |
346 | 346 | style={{ |
347 | - fontWeight: 'bold', // 字体加粗 | |
348 | - color: 'black', // 字体颜色 | |
349 | - fontSize: '18px', // 字体大小 | |
347 | + display: 'flex', | |
348 | + justifyContent: 'center', | |
349 | + marginTop: '20px', | |
350 | 350 | }} |
351 | 351 | > |
352 | - <div | |
352 | + <Card | |
353 | + bordered={true} | |
353 | 354 | style={{ |
354 | - fontWeight: 'bold', // 字体加粗 | |
355 | - color: 'black', // 字体颜色 | |
356 | - fontSize: '40px', // 字体大小 | |
357 | - justifyContent: 'center', | |
355 | + backgroundColor: '#f0f0f0', // 背景颜色 | |
356 | + width: '200px', // 卡片宽度 | |
357 | + height: '200px', // 卡片高度 | |
358 | 358 | display: 'flex', |
359 | 359 | alignItems: 'center', |
360 | - marginBottom: '20px', | |
360 | + justifyContent: 'center', | |
361 | 361 | }} |
362 | 362 | > |
363 | - {waitConfirmPayment} | |
364 | - </div> | |
365 | - 待回款订单 | |
363 | + <div | |
364 | + style={{ | |
365 | + fontWeight: 'bold', // 字体加粗 | |
366 | + color: 'black', // 字体颜色 | |
367 | + fontSize: '18px', // 字体大小 | |
368 | + }} | |
369 | + > | |
370 | + <div | |
371 | + style={{ | |
372 | + fontWeight: 'bold', // 字体加粗 | |
373 | + color: 'black', // 字体颜色 | |
374 | + fontSize: '40px', // 字体大小 | |
375 | + justifyContent: 'center', | |
376 | + display: 'flex', | |
377 | + alignItems: 'center', | |
378 | + marginBottom: '20px', | |
379 | + }} | |
380 | + > | |
381 | + {waitConfirmPayment} | |
382 | + </div> | |
383 | + 待回款订单 | |
384 | + </div> | |
385 | + </Card> | |
366 | 386 | </div> |
367 | - </Card> | |
368 | - </div> | |
369 | - </Col> | |
370 | - </Row> | |
387 | + </Col> | |
388 | + </Row> | |
371 | 389 | |
372 | - <div> | |
373 | - <p | |
374 | - style={{ | |
375 | - color: 'red', | |
376 | - paddingLeft: '20px', | |
377 | - paddingRight: '20px', | |
378 | - marginTop: '10px', | |
379 | - }} | |
380 | - > | |
381 | - 预警说明: | |
382 | - </p> | |
383 | - <div | |
384 | - style={{ | |
385 | - marginLeft: '20px', | |
386 | - marginRight: '20px', | |
387 | - marginBottom: '20px', | |
388 | - }} | |
389 | - > | |
390 | - <span style={{ color: 'red' }}>确认收货预警:</span> | |
391 | - <span> | |
392 | - 从发货之日起计算,国内超过7天(海外30天)未【确认收货】,将进行确认收货预警提醒,超过10天(海外60天)未确认收货将锁单,并且每次登录都会提醒 | |
393 | - </span> | |
394 | - </div> | |
395 | - <div | |
396 | - style={{ | |
397 | - marginLeft: '20px', | |
398 | - marginRight: '20px', | |
399 | - marginBottom: '20px', | |
400 | - }} | |
401 | - > | |
402 | - <span style={{ color: 'red' }}>开票预警:</span> | |
403 | - <span> | |
404 | - 需要开票的订单从确认收货后开始计算,超过21天未申请开票的订单将会在每日登录时进行预警提醒;超过40天未申请开票将预警并锁单。 | |
405 | - </span> | |
406 | - </div> | |
407 | - <div | |
408 | - style={{ | |
409 | - marginLeft: '20px', | |
410 | - marginRight: '20px', | |
411 | - marginBottom: '20px', | |
412 | - }} | |
413 | - > | |
414 | - <span style={{ color: 'red' }}>回访登记预警:</span> | |
415 | - <span> | |
416 | - 从【确认收货】之日起计算,国内超过20天(海外30天)未【回访登记】,将进行回访登记预警提醒,超过45天(海外60天)未回访登记将锁单,并且每次登录都会提醒 | |
417 | - </span> | |
418 | - </div> | |
419 | - <div | |
420 | - style={{ | |
421 | - marginLeft: '20px', | |
422 | - marginRight: '20px', | |
423 | - marginBottom: '20px', | |
424 | - }} | |
425 | - > | |
426 | - <span style={{ color: 'red' }}>确认发票预警:</span> | |
427 | - <span> | |
428 | - 从发票开出之日起,超过5天未和客户确认发票(不开票的订单除外)的订单将会进行第一次提醒;超过15天未和客户确认发票(不开票的订单除外)的订单将会每天进行一次提醒,并限制下单功能 | |
429 | - </span> | |
430 | - </div> | |
431 | - <div | |
432 | - style={{ | |
433 | - marginLeft: '20px', | |
434 | - marginRight: '20px', | |
435 | - marginBottom: '20px', | |
436 | - }} | |
437 | - > | |
438 | - <span style={{ color: 'red' }}>回款预警:</span> | |
439 | - <span> | |
440 | - 从【发票确认】之日起,超过30天未确认回款的订单将会每周提醒,超过90天未确认回款的订单将会每天进行一次提醒,并限制下单功能 | |
441 | - </span> | |
442 | - </div> | |
443 | - </div> | |
390 | + <div> | |
391 | + <p | |
392 | + style={{ | |
393 | + color: 'red', | |
394 | + paddingLeft: '20px', | |
395 | + paddingRight: '20px', | |
396 | + marginTop: '10px', | |
397 | + }} | |
398 | + > | |
399 | + 预警说明: | |
400 | + </p> | |
401 | + <div | |
402 | + style={{ | |
403 | + marginLeft: '20px', | |
404 | + marginRight: '20px', | |
405 | + marginBottom: '20px', | |
406 | + }} | |
407 | + > | |
408 | + <span style={{ color: 'red' }}>确认收货预警:</span> | |
409 | + <span> | |
410 | + 从发货之日起计算,国内超过7天(海外30天)未【确认收货】,将进行确认收货预警提醒,超过10天(海外60天)未确认收货将锁单,并且每次登录都会提醒 | |
411 | + </span> | |
412 | + </div> | |
413 | + <div | |
414 | + style={{ | |
415 | + marginLeft: '20px', | |
416 | + marginRight: '20px', | |
417 | + marginBottom: '20px', | |
418 | + }} | |
419 | + > | |
420 | + <span style={{ color: 'red' }}>开票预警:</span> | |
421 | + <span> | |
422 | + 需要开票的订单从确认收货后开始计算,超过21天未申请开票的订单将会在每日登录时进行预警提醒;超过40天未申请开票将预警并锁单。 | |
423 | + </span> | |
424 | + </div> | |
425 | + <div | |
426 | + style={{ | |
427 | + marginLeft: '20px', | |
428 | + marginRight: '20px', | |
429 | + marginBottom: '20px', | |
430 | + }} | |
431 | + > | |
432 | + <span style={{ color: 'red' }}>回访登记预警:</span> | |
433 | + <span> | |
434 | + 从【确认收货】之日起计算,国内超过20天(海外30天)未【回访登记】,将进行回访登记预警提醒,超过45天(海外60天)未回访登记将锁单,并且每次登录都会提醒 | |
435 | + </span> | |
436 | + </div> | |
437 | + <div | |
438 | + style={{ | |
439 | + marginLeft: '20px', | |
440 | + marginRight: '20px', | |
441 | + marginBottom: '20px', | |
442 | + }} | |
443 | + > | |
444 | + <span style={{ color: 'red' }}>确认发票预警:</span> | |
445 | + <span> | |
446 | + 从发票开出之日起,超过5天未和客户确认发票(不开票的订单除外)的订单将会进行第一次提醒;超过15天未和客户确认发票(不开票的订单除外)的订单将会每天进行一次提醒,并限制下单功能 | |
447 | + </span> | |
448 | + </div> | |
449 | + <div | |
450 | + style={{ | |
451 | + marginLeft: '20px', | |
452 | + marginRight: '20px', | |
453 | + marginBottom: '20px', | |
454 | + }} | |
455 | + > | |
456 | + <span style={{ color: 'red' }}>回款预警:</span> | |
457 | + <span> | |
458 | + 从【发票确认】之日起,超过30天未确认回款的订单将会每周提醒,超过90天未确认回款的订单将会每天进行一次提醒,并限制下单功能 | |
459 | + </span> | |
460 | + </div> | |
461 | + </div> | |
462 | + </ProCard.TabPane> | |
463 | + <ProCard.TabPane key="tab2" tab="锁单提醒"> | |
464 | + <ProTable | |
465 | + columns={[ | |
466 | + { | |
467 | + dataIndex: 'index', | |
468 | + valueType: 'indexBorder', | |
469 | + width: 48, | |
470 | + }, | |
471 | + { | |
472 | + title: '订单号', | |
473 | + dataIndex: 'subId', | |
474 | + key: 'subId', | |
475 | + hideInSearch: true, | |
476 | + }, | |
477 | + { | |
478 | + title: '锁单时间', | |
479 | + dataIndex: 'limitDatetime', | |
480 | + key: 'limitDatetime', | |
481 | + hideInSearch: true, | |
482 | + }, | |
483 | + { | |
484 | + title: '锁单原因', | |
485 | + dataIndex: 'limitReason', | |
486 | + key: 'limitReason', | |
487 | + hideInSearch: true, | |
488 | + }, | |
489 | + { | |
490 | + title: '锁单原因', | |
491 | + width: 120, | |
492 | + dataIndex: 'warningStatus', | |
493 | + valueType: 'select', | |
494 | + hideInTable: true, | |
495 | + valueEnum: { | |
496 | + waitConfirmReicept: { | |
497 | + text: '待确认收货', | |
498 | + status: 'waitConfirmReicept', | |
499 | + }, | |
500 | + invoicingWarning: { | |
501 | + text: '待开票', | |
502 | + status: 'invoicingWarning', | |
503 | + }, | |
504 | + waitFeedbackWarning: { | |
505 | + text: '待回访登记', | |
506 | + status: 'waitFeedbackWarning', | |
507 | + }, | |
508 | + invoiceConfirmWarning: { | |
509 | + text: '待确认发票', | |
510 | + status: 'invoiceConfirmWarning', | |
511 | + }, | |
512 | + paymentReceiptStatusWarning: { | |
513 | + text: '待回款', | |
514 | + status: 'paymentReceiptStatusWarning', | |
515 | + }, | |
516 | + }, | |
517 | + }, | |
518 | + { | |
519 | + title: '锁单时间', | |
520 | + dataIndex: 'limitDatetime', | |
521 | + valueType: 'dateTimeRange', | |
522 | + search: { | |
523 | + transform: (value: any) => ({ | |
524 | + limitOrderDatetimeGe: value[0], | |
525 | + limitOrderDatetimeLe: value[1], | |
526 | + }), | |
527 | + }, | |
528 | + hideInTable: true, | |
529 | + }, | |
530 | + ]} | |
531 | + request={async (params) => { | |
532 | + const res = await postServiceOrderQueryLockOrders({ | |
533 | + data: params, | |
534 | + }); | |
535 | + return res.data; | |
536 | + }} | |
537 | + rowKey="index" | |
538 | + pagination={{ pageSize: 10 }} | |
539 | + /> | |
540 | + </ProCard.TabPane> | |
541 | + </ProCard> | |
444 | 542 | </Modal> |
445 | 543 | )} |
446 | 544 | {roleCode === 'WAREHOUSE_KEEPER' && ( |
... | ... | @@ -454,7 +552,7 @@ const OrderPage = () => { |
454 | 552 | key="confirm" |
455 | 553 | size="large" |
456 | 554 | type="primary" |
457 | - onClick={navigateToWarning} | |
555 | + onClick={navigateToOrderList} | |
458 | 556 | > |
459 | 557 | 去处理 |
460 | 558 | </Button>, |
... | ... | @@ -507,7 +605,7 @@ const OrderPage = () => { |
507 | 605 | > |
508 | 606 | {pendingDelivery} |
509 | 607 | </div> |
510 | - 待交期提醒 | |
608 | + 待转交提醒 | |
511 | 609 | </div> |
512 | 610 | </Card> |
513 | 611 | </div> |
... | ... | @@ -555,7 +653,7 @@ const OrderPage = () => { |
555 | 653 | > |
556 | 654 | {pendingCompletion} |
557 | 655 | </div> |
558 | - 交期提醒 | |
656 | + 交期延期提醒 | |
559 | 657 | </div> |
560 | 658 | </Card> |
561 | 659 | </div> | ... | ... |
src/pages/Order/OrderList/OrderDrawer.tsx
... | ... | @@ -35,10 +35,12 @@ import { |
35 | 35 | DrawerForm, |
36 | 36 | FormListActionType, |
37 | 37 | ProCard, |
38 | + ProFormDatePicker, | |
38 | 39 | ProFormDateTimePicker, |
39 | 40 | ProFormDependency, |
40 | 41 | ProFormDigit, |
41 | 42 | ProFormList, |
43 | + ProFormRadio, | |
42 | 44 | ProFormSelect, |
43 | 45 | ProFormText, |
44 | 46 | ProFormTextArea, |
... | ... | @@ -2096,11 +2098,11 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
2096 | 2098 | disabled={optType('after-sales-check')} |
2097 | 2099 | />, |
2098 | 2100 | |
2099 | - /*<Group key="selfDevelop"> | |
2101 | + <Group key="selfDevelop"> | |
2100 | 2102 | <ProFormRadio.Group |
2101 | 2103 | key="selfDevelop" |
2102 | 2104 | name="selfDevelop" |
2103 | - label="是否自研" | |
2105 | + label="是否自研产品" | |
2104 | 2106 | initialValue={false} |
2105 | 2107 | options={[ |
2106 | 2108 | { |
... | ... | @@ -2112,6 +2114,7 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
2112 | 2114 | value: false, |
2113 | 2115 | }, |
2114 | 2116 | ]} |
2117 | + rules={[{ required: true, message: '是否自研产品必填' }]} | |
2115 | 2118 | /> |
2116 | 2119 | <ProFormDependency name={['selfDevelop']}> |
2117 | 2120 | {({ selfDevelop }) => { |
... | ... | @@ -2119,7 +2122,10 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
2119 | 2122 | return ( |
2120 | 2123 | <ProFormDatePicker |
2121 | 2124 | name="deliveryDatetime" |
2122 | - label="日期" | |
2125 | + label="产品交期(填写前请先与工程师沟通)" | |
2126 | + rules={[ | |
2127 | + { required: true, message: '产品交期必填' }, | |
2128 | + ]} | |
2123 | 2129 | /> |
2124 | 2130 | ); |
2125 | 2131 | } |
... | ... | @@ -2159,7 +2165,7 @@ export default ({ onClose, data, subOrders, orderOptType }) => { |
2159 | 2165 | value: false, |
2160 | 2166 | }, |
2161 | 2167 | ]} |
2162 | - />,*/ | |
2168 | + />, | |
2163 | 2169 | |
2164 | 2170 | <ProFormSelect |
2165 | 2171 | key={'shippingWarehouse' + listMeta.index} | ... | ... |
src/pages/Order/OrderList/OrderList.tsx
... | ... | @@ -305,6 +305,7 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) => { |
305 | 305 | |
306 | 306 | text += ',' + record?.customerContactNumber; |
307 | 307 | |
308 | + text += ',' + record?.province + record?.city + record?.district; | |
308 | 309 | text += ',' + record?.customerShippingAddress; |
309 | 310 | |
310 | 311 | if (!isSupplier()) { |
... | ... | @@ -1032,7 +1033,7 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) => { |
1032 | 1033 | className="overflow-hidden whitespace-no-wrap overflow-ellipsis" |
1033 | 1034 | title={optRecord.deliveryDate} |
1034 | 1035 | > |
1035 | - <span className="text-[#8C8C8C]">生产日期:</span> | |
1036 | + <span className="text-[#8C8C8C]">产品交期:</span> | |
1036 | 1037 | <span className="text-slate-700">{optRecord.deliveryDate}</span> |
1037 | 1038 | </div> |
1038 | 1039 | )} |
... | ... | @@ -2181,8 +2182,8 @@ const OrderList = ({ paramsNew, searchShow, toolbarShow }) => { |
2181 | 2182 | {optRecord.paths?.includes('DELIVER_ORDER') ? ( |
2182 | 2183 | <ButtonConfirm |
2183 | 2184 | className="p-0" |
2184 | - title="确认交期?" | |
2185 | - text="交期" | |
2185 | + title="确认转交项目?" | |
2186 | + text="转交项目" | |
2186 | 2187 | onConfirm={async () => { |
2187 | 2188 | let body = { orderIds: [optRecord.id] }; |
2188 | 2189 | const data = await postServiceOrderDeliverOrders({ | ... | ... |
src/pages/Order/WarningWhitelist/index.tsx
... | ... | @@ -13,6 +13,7 @@ import { |
13 | 13 | ActionType, |
14 | 14 | ModalForm, |
15 | 15 | ProColumns, |
16 | + ProFormDateTimePicker, | |
16 | 17 | ProFormText, |
17 | 18 | ProTable, |
18 | 19 | } from '@ant-design/pro-components'; |
... | ... | @@ -77,6 +78,27 @@ const WarningWhitelist = () => { |
77 | 78 | ellipsis: true, |
78 | 79 | }, |
79 | 80 | { |
81 | + title: '到期时间', | |
82 | + dataIndex: 'expireDatetime', | |
83 | + hideInSearch: true, | |
84 | + ellipsis: true, | |
85 | + }, | |
86 | + { | |
87 | + title: '到期时间', | |
88 | + valueType: 'dateTimeRange', | |
89 | + hideInTable: true, | |
90 | + search: { | |
91 | + transform: (value) => { | |
92 | + if (value) { | |
93 | + return { | |
94 | + expireDatetimeGe: value[0], | |
95 | + expireDatetimeLe: value[1], | |
96 | + }; | |
97 | + } | |
98 | + }, | |
99 | + }, | |
100 | + }, | |
101 | + { | |
80 | 102 | title: '操作', |
81 | 103 | valueType: 'option', |
82 | 104 | key: 'option', |
... | ... | @@ -138,6 +160,27 @@ const WarningWhitelist = () => { |
138 | 160 | ellipsis: true, |
139 | 161 | }, |
140 | 162 | { |
163 | + title: '到期时间', | |
164 | + dataIndex: 'expireDatetime', | |
165 | + hideInSearch: true, | |
166 | + ellipsis: true, | |
167 | + }, | |
168 | + { | |
169 | + title: '到期时间', | |
170 | + valueType: 'dateTimeRange', | |
171 | + hideInTable: true, | |
172 | + search: { | |
173 | + transform: (value) => { | |
174 | + if (value) { | |
175 | + return { | |
176 | + expireDatetimeGe: value[0], | |
177 | + expireDatetimeLe: value[1], | |
178 | + }; | |
179 | + } | |
180 | + }, | |
181 | + }, | |
182 | + }, | |
183 | + { | |
141 | 184 | title: '添加时间', |
142 | 185 | valueType: 'dateTimeRange', |
143 | 186 | hideInTable: true, |
... | ... | @@ -226,6 +269,7 @@ const WarningWhitelist = () => { |
226 | 269 | onFinish={async (values) => { |
227 | 270 | const res = await postServiceOrderAddWarningUserWhiteList({ |
228 | 271 | data: { |
272 | + ...values, | |
229 | 273 | userName: values.orderIdsText, |
230 | 274 | }, |
231 | 275 | }); |
... | ... | @@ -250,6 +294,7 @@ const WarningWhitelist = () => { |
250 | 294 | }, |
251 | 295 | ]} |
252 | 296 | ></ProFormText> |
297 | + <ProFormDateTimePicker name="expireDatetime" label="到期时间" /> | |
253 | 298 | </ModalForm>, |
254 | 299 | ]} |
255 | 300 | /> |
... | ... | @@ -306,6 +351,7 @@ const WarningWhitelist = () => { |
306 | 351 | onFinish={async (values) => { |
307 | 352 | const res = await postServiceOrderAddWarningOrderWhiteList({ |
308 | 353 | data: { |
354 | + ...values, | |
309 | 355 | orderId: values.orderIdsText, |
310 | 356 | }, |
311 | 357 | }); |
... | ... | @@ -329,6 +375,7 @@ const WarningWhitelist = () => { |
329 | 375 | }, |
330 | 376 | ]} |
331 | 377 | ></ProFormText> |
378 | + <ProFormDateTimePicker name="expireDatetime" label="到期时间" /> | |
332 | 379 | </ModalForm>, |
333 | 380 | ]} |
334 | 381 | /> | ... | ... |
src/pages/Order/constant.ts
... | ... | @@ -147,6 +147,12 @@ export const getNeedInvoicing = (subOrder: any) => { |
147 | 147 | if (subOrder.invoicingStatus === 'UN_INVOICE') { |
148 | 148 | return '不需开票'; |
149 | 149 | } |
150 | + if (subOrder.afterInvoicingStatus === 'WAIT_FLUSH') { | |
151 | + return '待冲红'; | |
152 | + } | |
153 | + if (subOrder.afterInvoicingStatus === 'FLUSHED') { | |
154 | + return '已冲红'; | |
155 | + } | |
150 | 156 | return '需要开票'; |
151 | 157 | }; |
152 | 158 | ... | ... |
src/services/definition.ts
... | ... | @@ -600,6 +600,11 @@ export interface ApiApplyAfterSalesRequest { |
600 | 600 | export interface ApiCreateOrderRequest { |
601 | 601 | /** |
602 | 602 | * @description |
603 | + * 单位类型 | |
604 | + */ | |
605 | + companyType?: string; | |
606 | + /** | |
607 | + * @description | |
603 | 608 | * 收货人联系方式 |
604 | 609 | */ |
605 | 610 | customerContactNumber?: string; |
... | ... | @@ -3574,21 +3579,54 @@ export interface QueryUserIntegralRecordDto { |
3574 | 3579 | } |
3575 | 3580 | |
3576 | 3581 | export interface QueryWarningOrderStatistics { |
3582 | + companyType?: string; | |
3583 | + companyTypeNe?: string; | |
3584 | + createByName?: string; | |
3585 | + createByNameLike?: string; | |
3586 | + /** @format date-time */ | |
3587 | + createTimeGe?: string; | |
3588 | + /** @format date-time */ | |
3589 | + createTimeLe?: string; | |
3590 | + /** @format int32 */ | |
3591 | + current?: number; | |
3592 | + /** @format int32 */ | |
3593 | + end?: number; | |
3577 | 3594 | excludeWhiteList?: boolean; |
3595 | + /** @format date-time */ | |
3596 | + limitOrderDatetimeGe?: string; | |
3597 | + /** @format date-time */ | |
3598 | + limitOrderDatetimeLe?: string; | |
3599 | + /** @format int32 */ | |
3600 | + pageSize?: number; | |
3578 | 3601 | querySelf?: boolean; |
3579 | 3602 | salesCode?: string; |
3603 | + /** @format int32 */ | |
3604 | + start?: number; | |
3605 | + /** @format int32 */ | |
3606 | + total?: number; | |
3607 | + /** @format date-time */ | |
3608 | + waitConfirmInvoiceStatusDateTimeGe?: string; | |
3580 | 3609 | /** @format date-time */ |
3581 | 3610 | waitConfirmInvoiceStatusDateTimeLe?: string; |
3582 | 3611 | /** @format date-time */ |
3583 | 3612 | waitConfirmPaymentOrderCreatedDateTimeGe?: string; |
3584 | 3613 | /** @format date-time */ |
3614 | + waitConfirmPaymentStatusDateTimeGe?: string; | |
3615 | + /** @format date-time */ | |
3585 | 3616 | waitConfirmPaymentStatusDateTimeLe?: string; |
3586 | 3617 | /** @format date-time */ |
3618 | + waitConfirmReiceptStatusDateTimeGe?: string; | |
3619 | + /** @format date-time */ | |
3587 | 3620 | waitConfirmReiceptStatusDateTimeLe?: string; |
3588 | 3621 | /** @format date-time */ |
3622 | + waitFeedbackStatusDateTimeGe?: string; | |
3623 | + /** @format date-time */ | |
3589 | 3624 | waitFeedbackStatusDateTimeLe?: string; |
3590 | 3625 | /** @format date-time */ |
3626 | + waitInvoicingStatusDateTimeGe?: string; | |
3627 | + /** @format date-time */ | |
3591 | 3628 | waitInvoicingStatusDateTimeLe?: string; |
3629 | + warningStatus?: string; | |
3592 | 3630 | } |
3593 | 3631 | |
3594 | 3632 | export interface QueryWarningOrderWhiteListDto { |
... | ... | @@ -3602,6 +3640,10 @@ export interface QueryWarningOrderWhiteListDto { |
3602 | 3640 | current?: number; |
3603 | 3641 | /** @format int32 */ |
3604 | 3642 | end?: number; |
3643 | + /** @format date-time */ | |
3644 | + expireDatetimeGe?: string; | |
3645 | + /** @format date-time */ | |
3646 | + expireDatetimeLe?: string; | |
3605 | 3647 | /** @format int64 */ |
3606 | 3648 | orderId?: number; |
3607 | 3649 | /** @format int32 */ |
... | ... | @@ -3623,6 +3665,10 @@ export interface QueryWarningUserWhiteListDto { |
3623 | 3665 | current?: number; |
3624 | 3666 | /** @format int32 */ |
3625 | 3667 | end?: number; |
3668 | + /** @format date-time */ | |
3669 | + expireDatetimeGe?: string; | |
3670 | + /** @format date-time */ | |
3671 | + expireDatetimeLe?: string; | |
3626 | 3672 | /** @format int32 */ |
3627 | 3673 | pageSize?: number; |
3628 | 3674 | /** @format int32 */ |
... | ... | @@ -4631,6 +4677,8 @@ export interface WarningOrderWhiteListDto { |
4631 | 4677 | createByName?: string; |
4632 | 4678 | /** @format date-time */ |
4633 | 4679 | createTime?: string; |
4680 | + /** @format date-time */ | |
4681 | + expireDatetime?: string; | |
4634 | 4682 | logicDelete?: boolean; |
4635 | 4683 | /** @format int64 */ |
4636 | 4684 | orderId?: number; |
... | ... | @@ -4645,6 +4693,8 @@ export interface WarningUserWhiteListDto { |
4645 | 4693 | createByName?: string; |
4646 | 4694 | /** @format date-time */ |
4647 | 4695 | createTime?: string; |
4696 | + /** @format date-time */ | |
4697 | + expireDatetime?: string; | |
4648 | 4698 | /** @format int64 */ |
4649 | 4699 | id?: number; |
4650 | 4700 | logicDelete?: boolean; | ... | ... |
src/services/request.ts
... | ... | @@ -23823,6 +23823,77 @@ export const postServiceOrderQueryHistoryOrderRecord = /* #__PURE__ */ (() => { |
23823 | 23823 | return request; |
23824 | 23824 | })(); |
23825 | 23825 | |
23826 | +/** @description request parameter type for postServiceOrderQueryLockOrders */ | |
23827 | +export interface PostServiceOrderQueryLockOrdersOption { | |
23828 | + /** | |
23829 | + * @description | |
23830 | + * dto | |
23831 | + */ | |
23832 | + body: { | |
23833 | + /** | |
23834 | + @description | |
23835 | + dto */ | |
23836 | + dto: QueryWarningOrderStatistics; | |
23837 | + }; | |
23838 | +} | |
23839 | + | |
23840 | +/** @description response type for postServiceOrderQueryLockOrders */ | |
23841 | +export interface PostServiceOrderQueryLockOrdersResponse { | |
23842 | + /** | |
23843 | + * @description | |
23844 | + * OK | |
23845 | + */ | |
23846 | + 200: ServerResult; | |
23847 | + /** | |
23848 | + * @description | |
23849 | + * Created | |
23850 | + */ | |
23851 | + 201: any; | |
23852 | + /** | |
23853 | + * @description | |
23854 | + * Unauthorized | |
23855 | + */ | |
23856 | + 401: any; | |
23857 | + /** | |
23858 | + * @description | |
23859 | + * Forbidden | |
23860 | + */ | |
23861 | + 403: any; | |
23862 | + /** | |
23863 | + * @description | |
23864 | + * Not Found | |
23865 | + */ | |
23866 | + 404: any; | |
23867 | +} | |
23868 | + | |
23869 | +export type PostServiceOrderQueryLockOrdersResponseSuccess = | |
23870 | + PostServiceOrderQueryLockOrdersResponse[200]; | |
23871 | +/** | |
23872 | + * @description | |
23873 | + * 查询锁单订单列表 | |
23874 | + * @tags 内部订单 | |
23875 | + * @produces * | |
23876 | + * @consumes application/json | |
23877 | + */ | |
23878 | +export const postServiceOrderQueryLockOrders = /* #__PURE__ */ (() => { | |
23879 | + const method = 'post'; | |
23880 | + const url = '/service/order/queryLockOrders'; | |
23881 | + function request( | |
23882 | + option: PostServiceOrderQueryLockOrdersOption, | |
23883 | + ): Promise<PostServiceOrderQueryLockOrdersResponseSuccess> { | |
23884 | + return requester(request.url, { | |
23885 | + method: request.method, | |
23886 | + ...option, | |
23887 | + }) as unknown as Promise<PostServiceOrderQueryLockOrdersResponseSuccess>; | |
23888 | + } | |
23889 | + | |
23890 | + /** http method */ | |
23891 | + request.method = method; | |
23892 | + /** request url */ | |
23893 | + request.url = url; | |
23894 | + return request; | |
23895 | +})(); | |
23896 | + | |
23826 | 23897 | /** @description request parameter type for postServiceOrderQueryProductInformation */ |
23827 | 23898 | export interface PostServiceOrderQueryProductInformationOption { |
23828 | 23899 | /** | ... | ... |
src/utils/order.ts
... | ... | @@ -36,7 +36,7 @@ export function isSales() { |
36 | 36 | export function isProcure() { |
37 | 37 | let userInfo = getUserInfo(); |
38 | 38 | if (userInfo) { |
39 | - return ['procure'].includes(userInfo?.roleSmallVO?.code); | |
39 | + return userInfo.roles.includes('PROCURE'); | |
40 | 40 | } |
41 | 41 | return false; |
42 | 42 | } | ... | ... |