Commit ea6f0208f9a4d939abba3cd893a23f44b1846966
1 parent
c5ccb53f
feat(invoice): optimize invoice components and enhance user experience
- 重构Client页面表格组件,文件重命名为AllRecordTable.tsx,优化表格项显示 - 修改发票类型显示名称,增加文本复制功能,提升用户交互体验 - 移除部分不必要组件和代码,简化页面结构,提高代码可维护性- 修正InvoiceModal组件中submitter属性,改进页面提交逻辑- 优化InvoiceRecordDetailModal组件,简化订单号显示方式,增加复制功能 - 调整InvoicingModal和ManualInvoicingModal组件,移除冗余的select和list组件 -增加pageSizeOptions配置,提供分页大小选择,改善数据浏览体验 - 修复Invoice组件中开票日期显示格式问题,统一数据展示样式 - 优化Order组件中的按钮权限判断逻辑,提升页面响应性 - 删除不再使用的enumToSelect函数,精简代码依赖 - 修正InvoicingDrawerForm组件中产品名称复制功能的实现 - 优化表单验证逻辑,增强数据校验的准确性和用户体验 通过这些改动,- 实现导出客户信息为Excel文件的功能。 - 使用useMessage钩子来管理Ant Design消息提示。 - 添加单元格操作按钮,包括查看沟通历史、详情和编辑客户信息。 - 组件使用了editable、columnsState和form等高级特性,以提供更好的用户体验和数据管理。 通过这个提交,我们完成了客户记录的表格展示页面,实现了数据的查询、筛选、导出及一些基本操作,提升了项目的业务功能完备性。"增加客户统计信息和调整客户端表格布局"
Showing
20 changed files
with
2243 additions
and
877 deletions
.umirc.ts
@@ -58,6 +58,20 @@ export default defineConfig({ | @@ -58,6 +58,20 @@ export default defineConfig({ | ||
58 | icon: 'BookOutlined', | 58 | icon: 'BookOutlined', |
59 | access: 'canReadAdminAndFinance', | 59 | access: 'canReadAdminAndFinance', |
60 | }, | 60 | }, |
61 | + /*{ | ||
62 | + name: '发票管理', | ||
63 | + path: '/Invoice', | ||
64 | + icon: 'BookOutlined', | ||
65 | + access: 'canReadAdminAndFinance', | ||
66 | + routes:[ | ||
67 | + { | ||
68 | + name: '权限管理', | ||
69 | + path: 'authrity', | ||
70 | + icon: 'BookOutlined', | ||
71 | + component: './Invoice/InvoiceRecord' }, | ||
72 | + ] | ||
73 | + },*/ | ||
74 | + | ||
61 | { | 75 | { |
62 | name: '预存管理', | 76 | name: '预存管理', |
63 | path: '/prepaidManage', | 77 | path: '/prepaidManage', |
@@ -91,7 +105,7 @@ export default defineConfig({ | @@ -91,7 +105,7 @@ export default defineConfig({ | ||
91 | path: '/client', | 105 | path: '/client', |
92 | component: './Client', | 106 | component: './Client', |
93 | icon: 'BookOutlined', | 107 | icon: 'BookOutlined', |
94 | - access: 'canReadAdmin', | 108 | + access: 'canReadAdminAndSales', |
95 | }, | 109 | }, |
96 | { | 110 | { |
97 | name: '打印', | 111 | name: '打印', |
src/pages/Client/Components/ClientStatistic.tsx
0 → 100644
1 | +import { postAdminClientGetStatisticalData } from '@/services'; | ||
2 | +import { StatisticCard } from '@ant-design/pro-components'; | ||
3 | +import { useEffect, useState } from 'react'; | ||
4 | + | ||
5 | +export default () => { | ||
6 | + const [clientStatistic, setClientStatistic] = useState([]); | ||
7 | + useEffect(() => { | ||
8 | + const pullStatistic = async () => { | ||
9 | + let statisticalData = await postAdminClientGetStatisticalData(); | ||
10 | + console.log('stati' + JSON.stringify(statisticalData.data)); | ||
11 | + setClientStatistic(statisticalData.data); | ||
12 | + }; | ||
13 | + pullStatistic(); | ||
14 | + }, []); | ||
15 | + return ( | ||
16 | + <StatisticCard.Group> | ||
17 | + {clientStatistic.map((stat, index) => ( | ||
18 | + <StatisticCard | ||
19 | + key={index} | ||
20 | + statistic={{ | ||
21 | + title: stat.title, | ||
22 | + tip: stat.tip || '', // 如果tip不存在,则使用空字符串 | ||
23 | + value: stat.value, | ||
24 | + status: stat.status || 'default', // 如果status不存在,则使用'default' | ||
25 | + }} | ||
26 | + /> | ||
27 | + ))} | ||
28 | + </StatisticCard.Group> | ||
29 | + ); | ||
30 | +}; |
src/pages/Client/index.tsx
1 | import ClientDrawer from '@/pages/Client/Components/ClientDrawer'; | 1 | import ClientDrawer from '@/pages/Client/Components/ClientDrawer'; |
2 | import ClientImportModal from '@/pages/Client/Components/ClientImportModal'; | 2 | import ClientImportModal from '@/pages/Client/Components/ClientImportModal'; |
3 | +import ClientStatistic from '@/pages/Client/Components/ClientStatistic'; | ||
3 | import CommunicationHistoryModal from '@/pages/Client/Components/CommunicationHistoryModal'; | 4 | import CommunicationHistoryModal from '@/pages/Client/Components/CommunicationHistoryModal'; |
4 | import { | 5 | import { |
5 | postAdminClientQueryClientPage, | 6 | postAdminClientQueryClientPage, |
7 | + postServiceConstClientGroupFilters, | ||
6 | postServiceConstClientLevels, | 8 | postServiceConstClientLevels, |
7 | postServiceConstTradeStatus, | 9 | postServiceConstTradeStatus, |
8 | } from '@/services'; | 10 | } from '@/services'; |
@@ -10,42 +12,48 @@ import { orderExport } from '@/services/order'; | @@ -10,42 +12,48 @@ import { orderExport } from '@/services/order'; | ||
10 | import { enumToSelect } from '@/utils'; | 12 | import { enumToSelect } from '@/utils'; |
11 | import type { ActionType } from '@ant-design/pro-components'; | 13 | import type { ActionType } from '@ant-design/pro-components'; |
12 | import { ProTable } from '@ant-design/pro-components'; | 14 | import { ProTable } from '@ant-design/pro-components'; |
13 | -import { Button, message } from 'antd'; | ||
14 | -import { useRef } from 'react'; | 15 | +import { Button, Radio, Space, message } from 'antd'; |
16 | +import { useEffect, useRef, useState } from 'react'; | ||
15 | 17 | ||
16 | const columns = [ | 18 | const columns = [ |
17 | { | 19 | { |
18 | dataIndex: 'index', | 20 | dataIndex: 'index', |
19 | valueType: 'indexBorder', | 21 | valueType: 'indexBorder', |
22 | + ellipsis: true, | ||
20 | width: 48, | 23 | width: 48, |
21 | }, | 24 | }, |
22 | { | 25 | { |
23 | title: '客户名称', | 26 | title: '客户名称', |
24 | dataIndex: 'name', | 27 | dataIndex: 'name', |
25 | width: 100, | 28 | width: 100, |
29 | + ellipsis: true, | ||
26 | hideInSearch: true, | 30 | hideInSearch: true, |
27 | }, | 31 | }, |
28 | { | 32 | { |
29 | title: '单位名称', | 33 | title: '单位名称', |
30 | width: 150, | 34 | width: 150, |
35 | + ellipsis: true, | ||
31 | dataIndex: 'companyName', | 36 | dataIndex: 'companyName', |
32 | hideInSearch: true, | 37 | hideInSearch: true, |
33 | }, | 38 | }, |
34 | { | 39 | { |
35 | title: '单位地址', | 40 | title: '单位地址', |
36 | width: 250, | 41 | width: 250, |
42 | + ellipsis: true, | ||
37 | dataIndex: 'companyAddressText', | 43 | dataIndex: 'companyAddressText', |
38 | hideInSearch: true, | 44 | hideInSearch: true, |
39 | }, | 45 | }, |
40 | { | 46 | { |
41 | title: '联系电话', | 47 | title: '联系电话', |
42 | width: 150, | 48 | width: 150, |
49 | + ellipsis: true, | ||
43 | dataIndex: 'phoneNumber', | 50 | dataIndex: 'phoneNumber', |
44 | hideInSearch: true, | 51 | hideInSearch: true, |
45 | }, | 52 | }, |
46 | { | 53 | { |
47 | title: '客户来源', | 54 | title: '客户来源', |
48 | width: 150, | 55 | width: 150, |
56 | + ellipsis: true, | ||
49 | dataIndex: 'source', | 57 | dataIndex: 'source', |
50 | hideInSearch: true, | 58 | hideInSearch: true, |
51 | }, | 59 | }, |
@@ -53,17 +61,20 @@ const columns = [ | @@ -53,17 +61,20 @@ const columns = [ | ||
53 | title: '推荐人', | 61 | title: '推荐人', |
54 | dataIndex: 'referrers', | 62 | dataIndex: 'referrers', |
55 | width: 150, | 63 | width: 150, |
64 | + ellipsis: true, | ||
56 | hideInSearch: true, | 65 | hideInSearch: true, |
57 | }, | 66 | }, |
58 | { | 67 | { |
59 | title: '客户需求', | 68 | title: '客户需求', |
60 | dataIndex: 'requirements', | 69 | dataIndex: 'requirements', |
61 | width: 150, | 70 | width: 150, |
71 | + ellipsis: true, | ||
62 | hideInSearch: true, | 72 | hideInSearch: true, |
63 | }, | 73 | }, |
64 | { | 74 | { |
65 | title: '是否已报方案', | 75 | title: '是否已报方案', |
66 | width: 150, | 76 | width: 150, |
77 | + ellipsis: true, | ||
67 | dataIndex: 'hasSchemeText', | 78 | dataIndex: 'hasSchemeText', |
68 | hideInSearch: true, | 79 | hideInSearch: true, |
69 | }, | 80 | }, |
@@ -71,6 +82,7 @@ const columns = [ | @@ -71,6 +82,7 @@ const columns = [ | ||
71 | title: '报价时间', | 82 | title: '报价时间', |
72 | key: 'since', | 83 | key: 'since', |
73 | width: 150, | 84 | width: 150, |
85 | + ellipsis: true, | ||
74 | dataIndex: 'quoteDatetime', | 86 | dataIndex: 'quoteDatetime', |
75 | valueType: 'dateTime', | 87 | valueType: 'dateTime', |
76 | hideInSearch: true, | 88 | hideInSearch: true, |
@@ -78,12 +90,14 @@ const columns = [ | @@ -78,12 +90,14 @@ const columns = [ | ||
78 | { | 90 | { |
79 | title: '跟进状态', | 91 | title: '跟进状态', |
80 | width: 150, | 92 | width: 150, |
93 | + ellipsis: true, | ||
81 | dataIndex: 'tradeStatusText', | 94 | dataIndex: 'tradeStatusText', |
82 | hideInSearch: true, | 95 | hideInSearch: true, |
83 | }, | 96 | }, |
84 | { | 97 | { |
85 | title: '客户等级', | 98 | title: '客户等级', |
86 | width: 150, | 99 | width: 150, |
100 | + ellipsis: true, | ||
87 | dataIndex: 'levelText', | 101 | dataIndex: 'levelText', |
88 | hideInSearch: true, | 102 | hideInSearch: true, |
89 | }, | 103 | }, |
@@ -91,6 +105,7 @@ const columns = [ | @@ -91,6 +105,7 @@ const columns = [ | ||
91 | title: '创建时间', | 105 | title: '创建时间', |
92 | key: 'since', | 106 | key: 'since', |
93 | width: 150, | 107 | width: 150, |
108 | + ellipsis: true, | ||
94 | dataIndex: 'createTime', | 109 | dataIndex: 'createTime', |
95 | valueType: 'dateTime', | 110 | valueType: 'dateTime', |
96 | hideInSearch: true, | 111 | hideInSearch: true, |
@@ -99,6 +114,7 @@ const columns = [ | @@ -99,6 +114,7 @@ const columns = [ | ||
99 | title: '最新跟进时间', | 114 | title: '最新跟进时间', |
100 | key: 'since', | 115 | key: 'since', |
101 | width: 150, | 116 | width: 150, |
117 | + ellipsis: true, | ||
102 | dataIndex: 'latestCommunicationTime', | 118 | dataIndex: 'latestCommunicationTime', |
103 | valueType: 'dateTime', | 119 | valueType: 'dateTime', |
104 | hideInSearch: true, | 120 | hideInSearch: true, |
@@ -207,101 +223,128 @@ const columns = [ | @@ -207,101 +223,128 @@ const columns = [ | ||
207 | 223 | ||
208 | export default () => { | 224 | export default () => { |
209 | const [messageApi, contextHolder] = message.useMessage(); | 225 | const [messageApi, contextHolder] = message.useMessage(); |
226 | + const [groupFilter, setGroupFilter] = useState('All'); | ||
227 | + const [groupFilterOptions, setGroupFilterDataOptions] = useState([]); | ||
210 | const actionRef = useRef<ActionType>(); | 228 | const actionRef = useRef<ActionType>(); |
229 | + useEffect(() => { | ||
230 | + const pullGroupFilterDataOptions = async () => { | ||
231 | + const res = await postServiceConstClientGroupFilters(); | ||
232 | + console.log('setGroupFilterDataOptions' + JSON.stringify(res.data)); | ||
233 | + setGroupFilterDataOptions(enumToSelect(res.data)); | ||
234 | + }; | ||
235 | + pullGroupFilterDataOptions(); | ||
236 | + }, []); | ||
237 | + useEffect(() => { | ||
238 | + actionRef.current?.reload(); | ||
239 | + }, [groupFilter]); | ||
211 | return ( | 240 | return ( |
212 | <> | 241 | <> |
213 | - <ProTable | ||
214 | - columns={columns} | ||
215 | - actionRef={actionRef} | ||
216 | - cardBordered | ||
217 | - request={async (params) => { | ||
218 | - const res = await postAdminClientQueryClientPage({ | ||
219 | - data: { | ||
220 | - ...params, | 242 | + <Space direction="vertical" size="middle" style={{ display: 'flex' }}> |
243 | + <ClientStatistic></ClientStatistic> | ||
244 | + <ProTable | ||
245 | + columns={columns} | ||
246 | + actionRef={actionRef} | ||
247 | + cardBordered | ||
248 | + request={async (params) => { | ||
249 | + const res = await postAdminClientQueryClientPage({ | ||
250 | + data: { | ||
251 | + ...params, | ||
252 | + groupFilter: groupFilter, | ||
253 | + }, | ||
254 | + }); | ||
255 | + const data = res.data; | ||
256 | + return data; | ||
257 | + }} | ||
258 | + search={{ | ||
259 | + defaultCollapsed: false, | ||
260 | + optionRender: (searchConfig, formProps, dom) => [ | ||
261 | + ...dom.reverse(), | ||
262 | + <Button | ||
263 | + key="out" | ||
264 | + onClick={() => { | ||
265 | + const values = searchConfig?.form?.getFieldsValue(); | ||
266 | + messageApi.open({ | ||
267 | + type: 'loading', | ||
268 | + content: '导出中...', | ||
269 | + duration: 0, | ||
270 | + }); | ||
271 | + orderExport( | ||
272 | + '/api/admin/client/exportClients', | ||
273 | + '客户信息.xlsx', | ||
274 | + 'POST', | ||
275 | + values, | ||
276 | + () => { | ||
277 | + messageApi.destroy(); | ||
278 | + }, | ||
279 | + ); | ||
280 | + }} | ||
281 | + > | ||
282 | + 导出 | ||
283 | + </Button>, | ||
284 | + ], | ||
285 | + }} | ||
286 | + scroll={{ | ||
287 | + x: 1400, | ||
288 | + }} | ||
289 | + editable={{ | ||
290 | + type: 'multiple', | ||
291 | + }} | ||
292 | + columnsState={{ | ||
293 | + persistenceKey: 'pro-table-singe-demos', | ||
294 | + persistenceType: 'localStorage', | ||
295 | + defaultValue: { | ||
296 | + option: { fixed: 'right', disable: true }, | ||
297 | + }, | ||
298 | + onChange(value) { | ||
299 | + console.log('value: ', value); | ||
221 | }, | 300 | }, |
222 | - }); | ||
223 | - const data = res.data; | ||
224 | - return data; | ||
225 | - }} | ||
226 | - search={{ | ||
227 | - defaultCollapsed: false, | ||
228 | - optionRender: (searchConfig, formProps, dom) => [ | ||
229 | - ...dom.reverse(), | ||
230 | - <Button | ||
231 | - key="out" | ||
232 | - onClick={() => { | ||
233 | - const values = searchConfig?.form?.getFieldsValue(); | ||
234 | - messageApi.open({ | ||
235 | - type: 'loading', | ||
236 | - content: '导出中...', | ||
237 | - duration: 0, | ||
238 | - }); | ||
239 | - orderExport( | ||
240 | - '/api/admin/client/exportClients', | ||
241 | - '客户信息.xlsx', | ||
242 | - 'POST', | ||
243 | - values, | ||
244 | - () => { | ||
245 | - messageApi.destroy(); | ||
246 | - }, | ||
247 | - ); | 301 | + }} |
302 | + rowKey="id" | ||
303 | + options={{ | ||
304 | + setting: { | ||
305 | + listsHeight: 400, | ||
306 | + }, | ||
307 | + }} | ||
308 | + form={{ | ||
309 | + // 由于配置了 transform,提交的参与与定义的不同这里需要转化一下 | ||
310 | + syncToUrl: (values, type) => { | ||
311 | + if (type === 'get') { | ||
312 | + return { | ||
313 | + ...values, | ||
314 | + created_at: [values.startTime, values.endTime], | ||
315 | + }; | ||
316 | + } | ||
317 | + return values; | ||
318 | + }, | ||
319 | + }} | ||
320 | + pagination={{ | ||
321 | + pageSize: 5, | ||
322 | + onChange: (page) => console.log(page), | ||
323 | + }} | ||
324 | + dateFormatter="string" | ||
325 | + headerTitle="高级表格" | ||
326 | + toolBarRender={() => [ | ||
327 | + <div key={'groupFilter'}> | ||
328 | + <Radio.Group | ||
329 | + options={groupFilterOptions} | ||
330 | + onChange={(e) => { | ||
331 | + setGroupFilter(e.target.value); | ||
332 | + }} | ||
333 | + value={groupFilter} | ||
334 | + optionType="button" | ||
335 | + /> | ||
336 | + </div>, | ||
337 | + <ClientDrawer | ||
338 | + optType={'add'} | ||
339 | + key="button" | ||
340 | + onFinish={() => { | ||
341 | + actionRef.current.reload(); | ||
248 | }} | 342 | }} |
249 | - > | ||
250 | - 导出 | ||
251 | - </Button>, | ||
252 | - ], | ||
253 | - }} | ||
254 | - scroll={{ | ||
255 | - x: 1400, | ||
256 | - }} | ||
257 | - editable={{ | ||
258 | - type: 'multiple', | ||
259 | - }} | ||
260 | - columnsState={{ | ||
261 | - persistenceKey: 'pro-table-singe-demos', | ||
262 | - persistenceType: 'localStorage', | ||
263 | - defaultValue: { | ||
264 | - option: { fixed: 'right', disable: true }, | ||
265 | - }, | ||
266 | - onChange(value) { | ||
267 | - console.log('value: ', value); | ||
268 | - }, | ||
269 | - }} | ||
270 | - rowKey="id" | ||
271 | - options={{ | ||
272 | - setting: { | ||
273 | - listsHeight: 400, | ||
274 | - }, | ||
275 | - }} | ||
276 | - form={{ | ||
277 | - // 由于配置了 transform,提交的参与与定义的不同这里需要转化一下 | ||
278 | - syncToUrl: (values, type) => { | ||
279 | - if (type === 'get') { | ||
280 | - return { | ||
281 | - ...values, | ||
282 | - created_at: [values.startTime, values.endTime], | ||
283 | - }; | ||
284 | - } | ||
285 | - return values; | ||
286 | - }, | ||
287 | - }} | ||
288 | - pagination={{ | ||
289 | - pageSize: 5, | ||
290 | - onChange: (page) => console.log(page), | ||
291 | - }} | ||
292 | - dateFormatter="string" | ||
293 | - headerTitle="高级表格" | ||
294 | - toolBarRender={() => [ | ||
295 | - <ClientDrawer | ||
296 | - optType={'add'} | ||
297 | - key="button" | ||
298 | - onFinish={() => { | ||
299 | - actionRef.current.reload(); | ||
300 | - }} | ||
301 | - ></ClientDrawer>, | ||
302 | - <ClientImportModal key="import" />, | ||
303 | - ]} | ||
304 | - /> | 343 | + ></ClientDrawer>, |
344 | + <ClientImportModal key="import" />, | ||
345 | + ]} | ||
346 | + /> | ||
347 | + </Space> | ||
305 | {contextHolder} | 348 | {contextHolder} |
306 | </> | 349 | </> |
307 | ); | 350 | ); |
src/pages/Invoice/InvoiceRecord/index.less
0 → 100644
1 | +.invoice-index td { | ||
2 | + font-family: 'San Francisco', 'Helvetica Neue', Helvetica, Arial, | ||
3 | + 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', 'Heiti SC', | ||
4 | + 'WenQuanYi Micro Hei', sans-serif; | ||
5 | + font-size: 14px; | ||
6 | +} | ||
7 | + | ||
8 | +.invoice-detail td { | ||
9 | + font-family: 'San Francisco', 'Helvetica Neue', Helvetica, Arial, | ||
10 | + 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', 'Heiti SC', | ||
11 | + 'WenQuanYi Micro Hei', sans-serif; | ||
12 | + font-size: 14px; | ||
13 | +} | ||
14 | + | ||
15 | +.bank-statement-choose td { | ||
16 | + font-family: 'San Francisco', 'Helvetica Neue', Helvetica, Arial, | ||
17 | + 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', 'Heiti SC', | ||
18 | + 'WenQuanYi Micro Hei', sans-serif; | ||
19 | + font-size: 14px; | ||
20 | +} |
src/pages/Invoice/InvoiceRecord/index.tsx
0 → 100644
1 | +import ButtonConfirm from '@/components/ButtomConfirm'; | ||
2 | +import EllipsisDiv from '@/components/Div/EllipsisDiv'; | ||
3 | +import { RESPONSE_CODE } from '@/constants/enum'; | ||
4 | +import AddInvoiceDrawerForm from '@/pages/Invoice/components/AddInvoiceDrawerForm'; | ||
5 | +import BankImportModal from '@/pages/Invoice/components/BankImportModal'; | ||
6 | +import InvoiceModal from '@/pages/Invoice/components/InvoiceModal'; | ||
7 | +import InvoiceRecordDetailModal from '@/pages/Invoice/components/InvoiceRecordDetailModal'; | ||
8 | +import InvoiceVerificationModal from '@/pages/Invoice/components/InvoiceVerificationModal'; | ||
9 | +import InvoicingModal from '@/pages/Invoice/components/InvoicingModal'; | ||
10 | +import ManualInvoicingModal from '@/pages/Invoice/components/ManualInvoicingModal'; | ||
11 | +import { | ||
12 | + BANK_STATEMENT_COLUMNS, | ||
13 | + INVOICE_COLUMNS, | ||
14 | + INVOICE_STATUS, | ||
15 | +} from '@/pages/Invoice/constant'; | ||
16 | +import { INVOCING_STATUS, PAYEE_OPTIONS } from '@/pages/Order/constant'; | ||
17 | +import { | ||
18 | + postServiceBankStatementDeleteBankStatement, | ||
19 | + postServiceBankStatementEditBankStatement, | ||
20 | + postServiceBankStatementQueryBankStatement, | ||
21 | + postServiceConstAfterInvoicingInvoiceRecordStatus, | ||
22 | + postServiceConstBeforeInvoicingInvoiceRecordStatus, | ||
23 | + postServiceConstInvoiceType, | ||
24 | + postServiceConstInvoicingType, | ||
25 | + postServiceInvoiceDeleteInvoice, | ||
26 | + postServiceInvoiceInvoicing, | ||
27 | + postServiceInvoiceQueryInvoice, | ||
28 | + postServiceInvoiceQueryInvoiceRecordList, | ||
29 | + postServiceOrderQuerySalesCode, | ||
30 | +} from '@/services'; | ||
31 | +import { excelExport } from '@/services/exportRequest'; | ||
32 | +import { | ||
33 | + enumToProTableEnumValue, | ||
34 | + enumToSelect, | ||
35 | + enumValueToLabel, | ||
36 | + formatDateTime, | ||
37 | +} from '@/utils'; | ||
38 | +import { formatDate } from '@/utils/time'; | ||
39 | +import { PlusOutlined } from '@ant-design/icons'; | ||
40 | +import { ActionType, ModalForm, ProTable } from '@ant-design/pro-components'; | ||
41 | +import { Button, Space, Table, Tabs, message } from 'antd'; | ||
42 | +import { useEffect, useRef, useState } from 'react'; | ||
43 | + | ||
44 | +const InvoiceRecord = () => { | ||
45 | + const invoiceActionRef = useRef<ActionType>(); | ||
46 | + const bankActionRef = useRef<ActionType>(); | ||
47 | + const waitDealrecordActionRef = useRef<ActionType>(); | ||
48 | + const processedRecordRef = useRef<ActionType>(); | ||
49 | + const [invoiceTypeValueEnum, setInvoiceTypeValueEnum] = useState({}); | ||
50 | + const [invoicingTypeValueEnum, setInvoicingTypeValueEnum] = useState({}); | ||
51 | + const [salesCodeValueEnum, setSalesCodeValueEnum] = useState({}); | ||
52 | + const [bankImportModalVisible, setBankImportModalVisible] = useState(false); | ||
53 | + const [invoiceVerificationVisible, setInvoiceVerificationVisible] = | ||
54 | + useState(false); | ||
55 | + const [invoiceId, setInvoiceId] = useState(undefined); | ||
56 | + const [invoiceRecordDetailVisible, setInvoiceRecordDetailVisible] = | ||
57 | + useState(false); | ||
58 | + const [invoiceRecord, setInvoiceRecord] = useState({}); | ||
59 | + const [messageApi, contextHolder] = message.useMessage(); | ||
60 | + | ||
61 | + useEffect(() => { | ||
62 | + async function extracted() { | ||
63 | + let invoiceTypeRet = await postServiceConstInvoiceType(); | ||
64 | + setInvoiceTypeValueEnum(invoiceTypeRet.data); | ||
65 | + } | ||
66 | + | ||
67 | + extracted().catch(console.error); | ||
68 | + }, []); | ||
69 | + | ||
70 | + useEffect(() => { | ||
71 | + async function extracted() { | ||
72 | + let invoicingTypeRet = await postServiceConstInvoicingType(); | ||
73 | + setInvoicingTypeValueEnum(invoicingTypeRet.data); | ||
74 | + } | ||
75 | + | ||
76 | + extracted().catch(console.error); | ||
77 | + }, []); | ||
78 | + | ||
79 | + useEffect(() => { | ||
80 | + async function extracted() { | ||
81 | + const res = await postServiceOrderQuerySalesCode(); | ||
82 | + let map = {}; | ||
83 | + res.data?.forEach((item) => { | ||
84 | + map[item.userName] = { | ||
85 | + text: item.userName, | ||
86 | + status: item.userName, | ||
87 | + }; | ||
88 | + }); | ||
89 | + setSalesCodeValueEnum(map); | ||
90 | + } | ||
91 | + | ||
92 | + extracted().catch(console.error); | ||
93 | + }, []); | ||
94 | + | ||
95 | + const reloadInvoiceTable = () => { | ||
96 | + invoiceActionRef.current?.reload(); | ||
97 | + }; | ||
98 | + | ||
99 | + const reloadBankStatementTable = () => { | ||
100 | + bankActionRef.current?.reload(); | ||
101 | + }; | ||
102 | + const reloadRecordTable = () => { | ||
103 | + waitDealrecordActionRef.current?.reload(); | ||
104 | + processedRecordRef.current?.reload(); | ||
105 | + }; | ||
106 | + | ||
107 | + const getTableCellText = (target: any) => { | ||
108 | + if (!target) { | ||
109 | + return ''; | ||
110 | + } | ||
111 | + | ||
112 | + if (target.props) { | ||
113 | + return target.props.text; | ||
114 | + } | ||
115 | + | ||
116 | + return target; | ||
117 | + }; | ||
118 | + | ||
119 | + const waitDealRecordColumns = [ | ||
120 | + { | ||
121 | + dataIndex: 'index', | ||
122 | + valueType: 'indexBorder', | ||
123 | + hideInSearch: true, | ||
124 | + ellipsis: true, | ||
125 | + width: 48, | ||
126 | + }, | ||
127 | + { | ||
128 | + title: '开票编号', | ||
129 | + valueType: 'text', | ||
130 | + dataIndex: 'id', | ||
131 | + copyable: true, | ||
132 | + hideInSearch: true, | ||
133 | + ellipsis: true, | ||
134 | + width: 100, | ||
135 | + }, | ||
136 | + { | ||
137 | + title: '发票状态', | ||
138 | + valueType: 'Text', | ||
139 | + dataIndex: 'statusText', | ||
140 | + ellipsis: true, | ||
141 | + hideInSearch: true, | ||
142 | + }, | ||
143 | + { | ||
144 | + title: '申请开票时间', | ||
145 | + dataIndex: 'createTime', | ||
146 | + valueType: 'dateTime', | ||
147 | + hideInSearch: true, | ||
148 | + ellipsis: true, | ||
149 | + }, | ||
150 | + { | ||
151 | + title: '销售代表', | ||
152 | + valueType: 'text', | ||
153 | + hideInSearch: true, | ||
154 | + ellipsis: true, | ||
155 | + dataIndex: 'createByName', | ||
156 | + }, | ||
157 | + { | ||
158 | + title: '购方名称', | ||
159 | + valueType: 'text', | ||
160 | + dataIndex: 'partyAName', | ||
161 | + hideInSearch: true, | ||
162 | + ellipsis: true, | ||
163 | + }, | ||
164 | + { | ||
165 | + title: '购方税号', | ||
166 | + valueType: 'text', | ||
167 | + hideInSearch: true, | ||
168 | + dataIndex: 'partyATaxid', | ||
169 | + ellipsis: true, | ||
170 | + }, | ||
171 | + { | ||
172 | + title: '收款单位', | ||
173 | + valueType: 'text', | ||
174 | + hideInSearch: true, | ||
175 | + dataIndex: 'partyBName', | ||
176 | + ellipsis: true, | ||
177 | + }, | ||
178 | + { | ||
179 | + title: '开票金额', | ||
180 | + valueType: 'money', | ||
181 | + dataIndex: 'price', | ||
182 | + hideInSearch: true, | ||
183 | + ellipsis: true, | ||
184 | + }, | ||
185 | + { | ||
186 | + title: '开具类型', | ||
187 | + valueType: 'Text', | ||
188 | + dataIndex: 'invoicingTypeText', | ||
189 | + hideInSearch: true, | ||
190 | + ellipsis: true, | ||
191 | + }, | ||
192 | + { | ||
193 | + title: '发票类型', | ||
194 | + valueType: 'Text', | ||
195 | + dataIndex: 'typeText', | ||
196 | + hideInSearch: true, | ||
197 | + ellipsis: true, | ||
198 | + }, | ||
199 | + { | ||
200 | + title: '是否加急', | ||
201 | + valueType: 'Text', | ||
202 | + dataIndex: 'isUrgentText', | ||
203 | + hideInSearch: true, | ||
204 | + ellipsis: true, | ||
205 | + }, | ||
206 | + { | ||
207 | + title: '申请备注', | ||
208 | + valueType: 'text', | ||
209 | + dataIndex: 'applyInvoicingNotes', | ||
210 | + hideInSearch: true, | ||
211 | + ellipsis: true, | ||
212 | + }, | ||
213 | + { | ||
214 | + title: '购方名称', | ||
215 | + valueType: 'Text', | ||
216 | + dataIndex: 'partyANameLike', | ||
217 | + hideInTable: true, | ||
218 | + }, | ||
219 | + { | ||
220 | + title: '收款单位', | ||
221 | + valueType: 'select', | ||
222 | + dataIndex: 'partyB', | ||
223 | + filters: true, | ||
224 | + onFilter: true, | ||
225 | + hideInTable: true, | ||
226 | + valueEnum: enumToProTableEnumValue(PAYEE_OPTIONS), | ||
227 | + }, | ||
228 | + { | ||
229 | + title: '主订单号', | ||
230 | + valueType: 'Text', | ||
231 | + dataIndex: 'mainOrderId', | ||
232 | + hideInTable: true, | ||
233 | + }, | ||
234 | + { | ||
235 | + title: '子订单号', | ||
236 | + valueType: 'Text', | ||
237 | + dataIndex: 'subOrderId', | ||
238 | + hideInTable: true, | ||
239 | + }, | ||
240 | + { | ||
241 | + title: '销售代表', | ||
242 | + valueType: 'select', | ||
243 | + dataIndex: 'salesCode', | ||
244 | + filters: true, | ||
245 | + onFilter: true, | ||
246 | + hideInTable: true, | ||
247 | + valueEnum: salesCodeValueEnum, | ||
248 | + }, | ||
249 | + { | ||
250 | + title: '发票类型', | ||
251 | + valueType: 'select', | ||
252 | + dataIndex: 'type', | ||
253 | + filters: true, | ||
254 | + onFilter: true, | ||
255 | + hideInTable: true, | ||
256 | + valueEnum: enumToProTableEnumValue(invoiceTypeValueEnum), | ||
257 | + }, | ||
258 | + { | ||
259 | + title: '开具类型', | ||
260 | + valueType: 'select', | ||
261 | + dataIndex: 'invoicingType', | ||
262 | + filters: true, | ||
263 | + onFilter: true, | ||
264 | + hideInTable: true, | ||
265 | + valueEnum: enumToProTableEnumValue(invoicingTypeValueEnum), | ||
266 | + }, | ||
267 | + { | ||
268 | + title: '开票状态', | ||
269 | + valueType: 'select', | ||
270 | + dataIndex: 'status', | ||
271 | + filters: true, | ||
272 | + onFilter: true, | ||
273 | + hideInTable: true, | ||
274 | + request: async () => { | ||
275 | + const res = await postServiceConstBeforeInvoicingInvoiceRecordStatus(); | ||
276 | + return enumToSelect(res.data); | ||
277 | + }, | ||
278 | + }, | ||
279 | + { | ||
280 | + title: '是否加急', | ||
281 | + valueType: 'select', | ||
282 | + dataIndex: 'isUrgent', | ||
283 | + filters: true, | ||
284 | + onFilter: true, | ||
285 | + hideInTable: true, | ||
286 | + valueEnum: { | ||
287 | + true: { | ||
288 | + text: '是', | ||
289 | + status: true, | ||
290 | + }, | ||
291 | + false: { | ||
292 | + text: '否', | ||
293 | + status: false, | ||
294 | + }, | ||
295 | + }, | ||
296 | + }, | ||
297 | + { | ||
298 | + title: '申请开票时间', | ||
299 | + dataIndex: 'createTime', | ||
300 | + valueType: 'dateTimeRange', | ||
301 | + width: 200, | ||
302 | + hideInTable: true, | ||
303 | + search: { | ||
304 | + transform: (value) => { | ||
305 | + if (value) { | ||
306 | + return { | ||
307 | + createTimeGe: value[0], | ||
308 | + createTimeLe: value[1], | ||
309 | + }; | ||
310 | + } | ||
311 | + }, | ||
312 | + }, | ||
313 | + }, | ||
314 | + { | ||
315 | + title: '操作', | ||
316 | + valueType: 'option', | ||
317 | + key: 'option', | ||
318 | + render: (text, record) => { | ||
319 | + return [ | ||
320 | + /*<InvoiceRecordDetailModal | ||
321 | + key="detail" | ||
322 | + id={record.id} | ||
323 | + subOrderIds={record.subOrderIds} | ||
324 | + onClose={()=>{ | ||
325 | + waitDealrecordActionRef.current?.reload(); | ||
326 | + } | ||
327 | + } | ||
328 | + />*/ | ||
329 | + <> | ||
330 | + {record.paths.includes('DETAIL') && ( | ||
331 | + <a | ||
332 | + key="detail" | ||
333 | + onClick={() => { | ||
334 | + setInvoiceRecordDetailVisible(true); | ||
335 | + setInvoiceRecord(record); | ||
336 | + }} | ||
337 | + > | ||
338 | + 详情 | ||
339 | + </a> | ||
340 | + )} | ||
341 | + </>, | ||
342 | + <> | ||
343 | + {record.paths.includes('PREVIEW') && ( | ||
344 | + <InvoiceModal key="invoiceModal" recordId={record.id} /> | ||
345 | + )} | ||
346 | + </>, | ||
347 | + <> | ||
348 | + {record.paths.includes('INVOICING') && ( | ||
349 | + <ManualInvoicingModal | ||
350 | + key={'ManualInvoicingModal'} | ||
351 | + record={record} | ||
352 | + ></ManualInvoicingModal> | ||
353 | + )} | ||
354 | + </>, | ||
355 | + ]; | ||
356 | + }, | ||
357 | + }, | ||
358 | + ]; | ||
359 | + | ||
360 | + const processedRecordColumns = [ | ||
361 | + { | ||
362 | + dataIndex: 'index', | ||
363 | + valueType: 'indexBorder', | ||
364 | + }, | ||
365 | + { | ||
366 | + title: '开票编号', | ||
367 | + valueType: 'text', | ||
368 | + dataIndex: 'id', | ||
369 | + copyable: true, | ||
370 | + ellipsis: true, | ||
371 | + }, | ||
372 | + { | ||
373 | + title: '发票号码', | ||
374 | + valueType: 'text', | ||
375 | + dataIndex: 'invoiceNumber', | ||
376 | + copyable: true, | ||
377 | + ellipsis: true, | ||
378 | + }, | ||
379 | + { | ||
380 | + title: '开票日期', | ||
381 | + dataIndex: 'invoicingDate', | ||
382 | + valueType: 'date', | ||
383 | + hideInSearch: true, | ||
384 | + ellipsis: true, | ||
385 | + }, | ||
386 | + { | ||
387 | + title: '发票类型', | ||
388 | + valueType: 'Text', | ||
389 | + dataIndex: 'typeText', | ||
390 | + hideInSearch: true, | ||
391 | + ellipsis: true, | ||
392 | + }, | ||
393 | + { | ||
394 | + title: '发票状态', | ||
395 | + valueType: 'Text', | ||
396 | + dataIndex: 'statusText', | ||
397 | + hideInSearch: true, | ||
398 | + ellipsis: true, | ||
399 | + }, | ||
400 | + { | ||
401 | + title: '购方名称', | ||
402 | + valueType: 'text', | ||
403 | + dataIndex: 'partyAName', | ||
404 | + hideInSearch: true, | ||
405 | + ellipsis: true, | ||
406 | + }, | ||
407 | + { | ||
408 | + title: '购方税号', | ||
409 | + valueType: 'text', | ||
410 | + dataIndex: 'partyATaxid', | ||
411 | + ellipsis: true, | ||
412 | + }, | ||
413 | + { | ||
414 | + title: '收款单位', | ||
415 | + valueType: 'text', | ||
416 | + dataIndex: 'partyBName', | ||
417 | + hideInSearch: true, | ||
418 | + ellipsis: true, | ||
419 | + }, | ||
420 | + { | ||
421 | + title: '联系人', | ||
422 | + valueType: 'text', | ||
423 | + dataIndex: 'contacts', | ||
424 | + hideInSearch: true, | ||
425 | + ellipsis: true, | ||
426 | + }, | ||
427 | + { | ||
428 | + title: '申请人', | ||
429 | + valueType: 'text', | ||
430 | + dataIndex: 'createByName', | ||
431 | + hideInSearch: true, | ||
432 | + ellipsis: true, | ||
433 | + }, | ||
434 | + { | ||
435 | + title: '开票金额(元)', | ||
436 | + valueType: 'money', | ||
437 | + dataIndex: 'price', | ||
438 | + hideInSearch: true, | ||
439 | + ellipsis: true, | ||
440 | + }, | ||
441 | + { | ||
442 | + title: '备注', | ||
443 | + valueType: 'text', | ||
444 | + dataIndex: 'contacts', | ||
445 | + hideInSearch: true, | ||
446 | + ellipsis: true, | ||
447 | + }, | ||
448 | + { | ||
449 | + title: '失败原因', | ||
450 | + valueType: 'text', | ||
451 | + dataIndex: 'failureReason', | ||
452 | + hideInSearch: true, | ||
453 | + ellipsis: true, | ||
454 | + }, | ||
455 | + | ||
456 | + { | ||
457 | + title: '购方名称', | ||
458 | + valueType: 'text', | ||
459 | + dataIndex: 'partyANameLike', | ||
460 | + hideInTable: true, | ||
461 | + }, | ||
462 | + { | ||
463 | + title: '发票类型', | ||
464 | + valueType: 'select', | ||
465 | + dataIndex: 'type', | ||
466 | + filters: true, | ||
467 | + onFilter: true, | ||
468 | + hideInTable: true, | ||
469 | + valueEnum: enumToProTableEnumValue(invoiceTypeValueEnum), | ||
470 | + }, | ||
471 | + | ||
472 | + { | ||
473 | + title: '开票状态', | ||
474 | + valueType: 'select', | ||
475 | + dataIndex: 'status', | ||
476 | + filters: true, | ||
477 | + onFilter: true, | ||
478 | + hideInTable: true, | ||
479 | + request: async () => { | ||
480 | + const res = await postServiceConstAfterInvoicingInvoiceRecordStatus(); | ||
481 | + return enumToSelect(res.data); | ||
482 | + }, | ||
483 | + }, | ||
484 | + { | ||
485 | + title: '销售代表', | ||
486 | + valueType: 'select', | ||
487 | + dataIndex: 'salesCode', | ||
488 | + filters: true, | ||
489 | + onFilter: true, | ||
490 | + hideInTable: true, | ||
491 | + valueEnum: salesCodeValueEnum, | ||
492 | + }, | ||
493 | + { | ||
494 | + title: '联系人', | ||
495 | + valueType: 'text', | ||
496 | + dataIndex: 'contactsLike', | ||
497 | + hideInTable: true, | ||
498 | + }, | ||
499 | + { | ||
500 | + title: '开票日期', | ||
501 | + dataIndex: 'invoicingDate', | ||
502 | + valueType: 'dateRange', | ||
503 | + hideInTable: true, | ||
504 | + search: { | ||
505 | + transform: (value) => { | ||
506 | + if (value) { | ||
507 | + return { | ||
508 | + invoicingDateGe: value[0], | ||
509 | + invoicingDateLe: value[1], | ||
510 | + }; | ||
511 | + } | ||
512 | + }, | ||
513 | + }, | ||
514 | + }, | ||
515 | + { | ||
516 | + title: '收款单位', | ||
517 | + valueType: 'select', | ||
518 | + dataIndex: 'partyB', | ||
519 | + filters: true, | ||
520 | + onFilter: true, | ||
521 | + hideInTable: true, | ||
522 | + valueEnum: enumToProTableEnumValue(PAYEE_OPTIONS), | ||
523 | + }, | ||
524 | + { | ||
525 | + title: '操作', | ||
526 | + valueType: 'option', | ||
527 | + key: 'option', | ||
528 | + render: (text, record) => [ | ||
529 | + <> | ||
530 | + {record.status === 'SUCCESS' && record.paths.includes('DETAIL') && ( | ||
531 | + <a | ||
532 | + key="detail" | ||
533 | + onClick={() => { | ||
534 | + setInvoiceRecordDetailVisible(true); | ||
535 | + setInvoiceRecord(record); | ||
536 | + }} | ||
537 | + > | ||
538 | + 详情 | ||
539 | + </a> | ||
540 | + )} | ||
541 | + </>, | ||
542 | + <> | ||
543 | + {record.status === 'SUCCESS' && | ||
544 | + record.paths.includes('DOWNLOAD_INVOICE') && ( | ||
545 | + <a href={record.invoiceAddress} download> | ||
546 | + 下载发票 | ||
547 | + </a> | ||
548 | + )} | ||
549 | + </>, | ||
550 | + <> | ||
551 | + {record.status === 'FAIL' && record.paths.includes('RETRY') && ( | ||
552 | + <ModalForm | ||
553 | + title="提示" | ||
554 | + trigger={ | ||
555 | + <Button type="link" danger> | ||
556 | + 重试 | ||
557 | + </Button> | ||
558 | + } | ||
559 | + autoFocusFirstInput | ||
560 | + modalProps={{ | ||
561 | + destroyOnClose: true, | ||
562 | + }} | ||
563 | + submitTimeout={2000} | ||
564 | + onFinish={async () => { | ||
565 | + const res = await postServiceInvoiceInvoicing({ | ||
566 | + data: { | ||
567 | + invoiceRecordIds: [record.id], | ||
568 | + }, | ||
569 | + }); | ||
570 | + if (res) { | ||
571 | + message.success(res.message); | ||
572 | + processedRecordRef?.current?.reload(); | ||
573 | + } | ||
574 | + return true; | ||
575 | + }} | ||
576 | + > | ||
577 | + 确定重试订单信息吗? | ||
578 | + </ModalForm> | ||
579 | + )} | ||
580 | + </>, | ||
581 | + <> | ||
582 | + {record.paths.includes('INVOICING') && ( | ||
583 | + <ManualInvoicingModal | ||
584 | + key={'ManualInvoicingModal'} | ||
585 | + record={record} | ||
586 | + ></ManualInvoicingModal> | ||
587 | + )} | ||
588 | + </>, | ||
589 | + ], | ||
590 | + }, | ||
591 | + ]; | ||
592 | + /** | ||
593 | + * 加载发票列表表格的各个列格式 | ||
594 | + */ | ||
595 | + const invoicecColumnsInit = () => { | ||
596 | + let columns = INVOICE_COLUMNS.map((item) => { | ||
597 | + let newItem = { ...item }; | ||
598 | + let dataIndex = item.dataIndex; | ||
599 | + let dataType = item.valueType; | ||
600 | + | ||
601 | + newItem.render = (text, record) => { | ||
602 | + let textValue = record[dataIndex]; | ||
603 | + | ||
604 | + if (dataType === 'dateRange' || dataType === 'date') { | ||
605 | + textValue = formatDate(textValue); | ||
606 | + } | ||
607 | + | ||
608 | + if (dataType === 'dateTime') { | ||
609 | + textValue = formatDateTime(textValue); | ||
610 | + } | ||
611 | + | ||
612 | + if (dataType === 'money') { | ||
613 | + textValue = '¥' + textValue; | ||
614 | + } | ||
615 | + | ||
616 | + switch (dataIndex) { | ||
617 | + case 'invoiceStatus': | ||
618 | + return ( | ||
619 | + <EllipsisDiv | ||
620 | + text={enumValueToLabel( | ||
621 | + getTableCellText(textValue), | ||
622 | + INVOCING_STATUS, | ||
623 | + )} | ||
624 | + /> | ||
625 | + ); | ||
626 | + | ||
627 | + case 'status': | ||
628 | + return ( | ||
629 | + <EllipsisDiv | ||
630 | + text={enumValueToLabel( | ||
631 | + getTableCellText(textValue), | ||
632 | + INVOICE_STATUS, | ||
633 | + )} | ||
634 | + /> | ||
635 | + ); | ||
636 | + | ||
637 | + case 'payee': | ||
638 | + return ( | ||
639 | + <EllipsisDiv | ||
640 | + text={enumValueToLabel( | ||
641 | + getTableCellText(textValue), | ||
642 | + PAYEE_OPTIONS, | ||
643 | + )} | ||
644 | + /> | ||
645 | + ); | ||
646 | + | ||
647 | + default: | ||
648 | + return <EllipsisDiv text={getTableCellText(textValue)} />; | ||
649 | + } | ||
650 | + }; | ||
651 | + | ||
652 | + return newItem; | ||
653 | + }); | ||
654 | + | ||
655 | + columns.push({ | ||
656 | + title: '操作', | ||
657 | + valueType: 'option', | ||
658 | + key: 'option', | ||
659 | + fixed: 'right', | ||
660 | + width: 120, | ||
661 | + render: (text, record) => { | ||
662 | + let btns = []; | ||
663 | + if (record.path?.includes('writeOff')) { | ||
664 | + btns.push( | ||
665 | + <a | ||
666 | + key="editable" | ||
667 | + onClick={() => { | ||
668 | + setInvoiceVerificationVisible(true); | ||
669 | + setInvoiceId(record.invoiceId); | ||
670 | + }} | ||
671 | + > | ||
672 | + 核销 | ||
673 | + </a>, | ||
674 | + ); | ||
675 | + } | ||
676 | + | ||
677 | + if (record.path?.includes('queryInvoiceDetails')) { | ||
678 | + btns.push( | ||
679 | + <Button | ||
680 | + className="p-0" | ||
681 | + key="view" | ||
682 | + type="link" | ||
683 | + onClick={() => { | ||
684 | + setInvoiceVerificationVisible(true); | ||
685 | + setInvoiceId(record.invoiceId); | ||
686 | + }} | ||
687 | + > | ||
688 | + 查看 | ||
689 | + </Button>, | ||
690 | + ); | ||
691 | + } | ||
692 | + | ||
693 | + if (record.path?.includes('deleteInvoice')) { | ||
694 | + btns.push( | ||
695 | + <ButtonConfirm | ||
696 | + key="delete" | ||
697 | + className="p-0" | ||
698 | + title={ | ||
699 | + '确认删除发票号码为[ ' + record.invoiceNumber + ' ]的发票吗?' | ||
700 | + } | ||
701 | + text="删除" | ||
702 | + onConfirm={async () => { | ||
703 | + let res = await postServiceInvoiceDeleteInvoice({ | ||
704 | + data: { invoiceId: record.invoiceId }, | ||
705 | + }); | ||
706 | + if (res) { | ||
707 | + message.success(res.message); | ||
708 | + reloadInvoiceTable(); | ||
709 | + } | ||
710 | + }} | ||
711 | + />, | ||
712 | + ); | ||
713 | + } | ||
714 | + return btns; | ||
715 | + }, | ||
716 | + }); | ||
717 | + | ||
718 | + return columns; | ||
719 | + }; | ||
720 | + | ||
721 | + const bankStatemetColumnsInit = () => { | ||
722 | + let columns = BANK_STATEMENT_COLUMNS.map((item) => { | ||
723 | + let newItem = { ...item }; | ||
724 | + let dataIndex = item.dataIndex; | ||
725 | + let dataType = item.valueType; | ||
726 | + | ||
727 | + newItem.render = (text, record) => { | ||
728 | + let textValue = record[dataIndex]; | ||
729 | + | ||
730 | + if (dataType === 'date') { | ||
731 | + textValue = formatDate(textValue); | ||
732 | + } | ||
733 | + | ||
734 | + if (dataType === 'dateTime') { | ||
735 | + textValue = formatDateTime(textValue); | ||
736 | + } | ||
737 | + | ||
738 | + if (dataType === 'money') { | ||
739 | + if (textValue === null || textValue === undefined) { | ||
740 | + textValue = ''; | ||
741 | + } else { | ||
742 | + textValue = '¥' + textValue; | ||
743 | + } | ||
744 | + } | ||
745 | + | ||
746 | + switch (dataIndex) { | ||
747 | + case 'invoiceStatus': | ||
748 | + return ( | ||
749 | + <EllipsisDiv | ||
750 | + text={enumValueToLabel( | ||
751 | + getTableCellText(textValue), | ||
752 | + INVOCING_STATUS, | ||
753 | + )} | ||
754 | + /> | ||
755 | + ); | ||
756 | + | ||
757 | + case 'status': | ||
758 | + return ( | ||
759 | + <EllipsisDiv | ||
760 | + text={enumValueToLabel( | ||
761 | + getTableCellText(textValue), | ||
762 | + INVOICE_STATUS, | ||
763 | + )} | ||
764 | + /> | ||
765 | + ); | ||
766 | + | ||
767 | + case 'payee': | ||
768 | + return ( | ||
769 | + <EllipsisDiv | ||
770 | + text={enumValueToLabel( | ||
771 | + getTableCellText(textValue), | ||
772 | + PAYEE_OPTIONS, | ||
773 | + )} | ||
774 | + /> | ||
775 | + ); | ||
776 | + | ||
777 | + default: | ||
778 | + return <EllipsisDiv text={getTableCellText(textValue)} />; | ||
779 | + } | ||
780 | + }; | ||
781 | + | ||
782 | + return newItem; | ||
783 | + }); | ||
784 | + | ||
785 | + columns.push({ | ||
786 | + title: '操作', | ||
787 | + valueType: 'option', | ||
788 | + key: 'option', | ||
789 | + fixed: 'right', | ||
790 | + width: 120, | ||
791 | + render: (text, record, _, action) => { | ||
792 | + let btns = []; | ||
793 | + if (record.path?.includes('editBankStatement')) { | ||
794 | + btns.push( | ||
795 | + <a | ||
796 | + key="editable" | ||
797 | + onClick={() => { | ||
798 | + action?.startEditable?.(record.id); | ||
799 | + }} | ||
800 | + > | ||
801 | + 编辑 | ||
802 | + </a>, | ||
803 | + ); | ||
804 | + } | ||
805 | + | ||
806 | + if (record.path?.includes('deleteBankStatement')) { | ||
807 | + btns.push( | ||
808 | + <ButtonConfirm | ||
809 | + key="delete" | ||
810 | + className="p-0" | ||
811 | + title={'是否删除该银行流水记录?'} | ||
812 | + text="删除" | ||
813 | + onConfirm={async () => { | ||
814 | + let res = await postServiceBankStatementDeleteBankStatement({ | ||
815 | + data: { id: record.id }, | ||
816 | + }); | ||
817 | + if (res.result === RESPONSE_CODE.SUCCESS) { | ||
818 | + message.success(res.message); | ||
819 | + reloadBankStatementTable(); | ||
820 | + } | ||
821 | + }} | ||
822 | + />, | ||
823 | + ); | ||
824 | + } | ||
825 | + return btns; | ||
826 | + }, | ||
827 | + }); | ||
828 | + | ||
829 | + return columns; | ||
830 | + }; | ||
831 | + | ||
832 | + const tabsItems = [ | ||
833 | + { | ||
834 | + key: 1, | ||
835 | + label: '待处理', | ||
836 | + children: ( | ||
837 | + <ProTable | ||
838 | + columns={waitDealRecordColumns} | ||
839 | + actionRef={waitDealrecordActionRef} | ||
840 | + cardBordered | ||
841 | + pagination={{ | ||
842 | + showSizeChanger: true, // 显示可以选择每页显示条数的下拉菜单 | ||
843 | + pageSizeOptions: ['10', '20', '50', '100'], // 设置可以选择的每页显示条数选项 | ||
844 | + }} | ||
845 | + rowSelection={{ | ||
846 | + selections: [Table.SELECTION_ALL, Table.SELECTION_INVERT], | ||
847 | + alwaysShowAlert: true, | ||
848 | + }} | ||
849 | + tableAlertOptionRender={({ selectedRowKeys, selectedRows }) => { | ||
850 | + console.log(selectedRows); | ||
851 | + console.log(selectedRowKeys); | ||
852 | + return ( | ||
853 | + <Space size={16}> | ||
854 | + <InvoicingModal | ||
855 | + reloadRecordTable={reloadRecordTable} | ||
856 | + key="button" | ||
857 | + selectedRowKeys={selectedRowKeys} | ||
858 | + /> | ||
859 | + </Space> | ||
860 | + ); | ||
861 | + }} | ||
862 | + request={async (params) => { | ||
863 | + let res = await postServiceInvoiceQueryInvoiceRecordList({ | ||
864 | + data: { | ||
865 | + ...params, | ||
866 | + statusIn: [ | ||
867 | + 'WAITING_FOR_INVOICING', | ||
868 | + 'AUDITING', | ||
869 | + 'AUDITING_NOT_PASSED', | ||
870 | + 'CANCELED', | ||
871 | + ], | ||
872 | + needBuildDetails: true, | ||
873 | + needBuildSubOrders: true, | ||
874 | + }, | ||
875 | + }); | ||
876 | + return { | ||
877 | + data: res?.data?.data, | ||
878 | + total: res?.data?.total || 0, | ||
879 | + }; | ||
880 | + }} | ||
881 | + columnsState={{ | ||
882 | + persistenceKey: 'pro-table-singe-demos', | ||
883 | + persistenceType: 'localStorage', | ||
884 | + defaultValue: { | ||
885 | + option: { fixed: 'right', disable: true }, | ||
886 | + }, | ||
887 | + onChange(value) { | ||
888 | + console.log('value: ', value); | ||
889 | + }, | ||
890 | + }} | ||
891 | + rowKey="id" | ||
892 | + search={{ | ||
893 | + labelWidth: 'auto', | ||
894 | + }} | ||
895 | + options={{ | ||
896 | + setting: { | ||
897 | + listsHeight: 400, | ||
898 | + }, | ||
899 | + }} | ||
900 | + form={{}} | ||
901 | + dateFormatter="string" | ||
902 | + headerTitle="待开票列表" | ||
903 | + scroll={{ x: 1400, y: 360 }} | ||
904 | + /> | ||
905 | + ), | ||
906 | + }, | ||
907 | + { | ||
908 | + key: 2, | ||
909 | + label: '开票记录', | ||
910 | + children: ( | ||
911 | + <ProTable | ||
912 | + columns={processedRecordColumns} | ||
913 | + actionRef={processedRecordRef} | ||
914 | + cardBordered | ||
915 | + pagination={{ | ||
916 | + showSizeChanger: true, // 显示可以选择每页显示条数的下拉菜单 | ||
917 | + pageSizeOptions: ['10', '20', '50', '100'], // 设置可以选择的每页显示条数选项 | ||
918 | + }} | ||
919 | + editable={{ | ||
920 | + type: 'multiple', | ||
921 | + onSave: async (rowKey, data) => { | ||
922 | + await postServiceBankStatementEditBankStatement({ data: data }); | ||
923 | + }, | ||
924 | + actionRender: (row, config, defaultDom) => [ | ||
925 | + defaultDom.save, | ||
926 | + defaultDom.cancel, | ||
927 | + ], | ||
928 | + }} | ||
929 | + search={{ | ||
930 | + labelWidth: 'auto', | ||
931 | + defaultCollapsed: false, | ||
932 | + optionRender: (searchConfig, formProps, dom) => [ | ||
933 | + ...dom, | ||
934 | + <Button | ||
935 | + key="out" | ||
936 | + onClick={() => { | ||
937 | + const values = searchConfig?.form?.getFieldsValue(); | ||
938 | + console.log(values); | ||
939 | + messageApi.open({ | ||
940 | + type: 'loading', | ||
941 | + content: '正在导出文件...', | ||
942 | + }); | ||
943 | + excelExport( | ||
944 | + '/api/service/invoice/exportInvoiceRecords', | ||
945 | + { | ||
946 | + ...values, | ||
947 | + statusIn: ['INVOICING', 'SUCCESS', 'FAIL'], | ||
948 | + }, | ||
949 | + () => { | ||
950 | + messageApi.destroy(); | ||
951 | + }, | ||
952 | + ); | ||
953 | + }} | ||
954 | + > | ||
955 | + 导出 | ||
956 | + </Button>, | ||
957 | + ], | ||
958 | + }} | ||
959 | + request={async (params) => { | ||
960 | + let res = await postServiceInvoiceQueryInvoiceRecordList({ | ||
961 | + data: { | ||
962 | + ...params, | ||
963 | + statusIn: ['INVOICING', 'SUCCESS', 'FAIL'], | ||
964 | + }, | ||
965 | + }); | ||
966 | + return { | ||
967 | + data: res?.data?.data, | ||
968 | + total: res?.data?.total || 0, | ||
969 | + }; | ||
970 | + }} | ||
971 | + columnsState={{ | ||
972 | + persistenceKey: 'pro-table-singe-demos', | ||
973 | + persistenceType: 'localStorage', | ||
974 | + defaultValue: { | ||
975 | + option: { fixed: 'right', disable: true }, | ||
976 | + }, | ||
977 | + onChange(value) { | ||
978 | + console.log('value: ', value); | ||
979 | + }, | ||
980 | + }} | ||
981 | + rowKey="id" | ||
982 | + options={{ | ||
983 | + setting: { | ||
984 | + listsHeight: 400, | ||
985 | + }, | ||
986 | + }} | ||
987 | + form={{}} | ||
988 | + dateFormatter="string" | ||
989 | + headerTitle="待开票列表" | ||
990 | + scroll={{ x: 1400, y: 360 }} | ||
991 | + toolBarRender={() => []} | ||
992 | + /> | ||
993 | + ), | ||
994 | + }, | ||
995 | + { | ||
996 | + key: 3, | ||
997 | + label: '发票管理', | ||
998 | + children: ( | ||
999 | + <ProTable | ||
1000 | + columns={invoicecColumnsInit()} | ||
1001 | + actionRef={invoiceActionRef} | ||
1002 | + cardBordered | ||
1003 | + pagination={{ | ||
1004 | + pageSize: 10, | ||
1005 | + }} | ||
1006 | + request={async (params) => { | ||
1007 | + const res = await postServiceInvoiceQueryInvoice({ | ||
1008 | + data: { ...params }, | ||
1009 | + }); | ||
1010 | + if (res) { | ||
1011 | + return { | ||
1012 | + data: res?.data?.data || [], | ||
1013 | + total: res?.data?.total || 0, | ||
1014 | + }; | ||
1015 | + } | ||
1016 | + }} | ||
1017 | + columnsState={{ | ||
1018 | + persistenceKey: 'pro-table-singe-demos', | ||
1019 | + persistenceType: 'localStorage', | ||
1020 | + defaultValue: { | ||
1021 | + option: { fixed: 'right', disable: true }, | ||
1022 | + }, | ||
1023 | + onChange(value) { | ||
1024 | + console.log('value: ', value); | ||
1025 | + }, | ||
1026 | + }} | ||
1027 | + rowKey="id" | ||
1028 | + search={{ | ||
1029 | + labelWidth: 'auto', | ||
1030 | + }} | ||
1031 | + options={{ | ||
1032 | + setting: { | ||
1033 | + listsHeight: 400, | ||
1034 | + }, | ||
1035 | + }} | ||
1036 | + form={{}} | ||
1037 | + dateFormatter="string" | ||
1038 | + headerTitle="发票列表" | ||
1039 | + scroll={{ x: 1400, y: 360 }} | ||
1040 | + toolBarRender={() => [ | ||
1041 | + <AddInvoiceDrawerForm | ||
1042 | + onClose={() => { | ||
1043 | + invoiceActionRef.current?.reload(); | ||
1044 | + bankActionRef.current?.reload(); | ||
1045 | + }} | ||
1046 | + key="add" | ||
1047 | + ></AddInvoiceDrawerForm>, | ||
1048 | + ]} | ||
1049 | + /> | ||
1050 | + ), | ||
1051 | + }, | ||
1052 | + { | ||
1053 | + key: 4, | ||
1054 | + label: '银行流水', | ||
1055 | + children: ( | ||
1056 | + <ProTable | ||
1057 | + columns={bankStatemetColumnsInit()} | ||
1058 | + actionRef={bankActionRef} | ||
1059 | + cardBordered | ||
1060 | + pagination={{ | ||
1061 | + pageSize: 10, | ||
1062 | + }} | ||
1063 | + editable={{ | ||
1064 | + type: 'multiple', | ||
1065 | + onSave: async (rowKey, data) => { | ||
1066 | + await postServiceBankStatementEditBankStatement({ data: data }); | ||
1067 | + }, | ||
1068 | + actionRender: (row, config, defaultDom) => [ | ||
1069 | + defaultDom.save, | ||
1070 | + defaultDom.cancel, | ||
1071 | + ], | ||
1072 | + }} | ||
1073 | + request={async (params) => { | ||
1074 | + const res = await postServiceBankStatementQueryBankStatement({ | ||
1075 | + data: { ...params }, | ||
1076 | + }); | ||
1077 | + if (res) { | ||
1078 | + return { | ||
1079 | + data: res?.data?.data || [], | ||
1080 | + total: res?.data?.total || 0, | ||
1081 | + }; | ||
1082 | + } | ||
1083 | + }} | ||
1084 | + columnsState={{ | ||
1085 | + persistenceKey: 'pro-table-singe-demos', | ||
1086 | + persistenceType: 'localStorage', | ||
1087 | + defaultValue: { | ||
1088 | + option: { fixed: 'right', disable: true }, | ||
1089 | + }, | ||
1090 | + onChange(value) { | ||
1091 | + console.log('value: ', value); | ||
1092 | + }, | ||
1093 | + }} | ||
1094 | + rowKey="id" | ||
1095 | + search={{ | ||
1096 | + labelWidth: 'auto', | ||
1097 | + }} | ||
1098 | + options={{ | ||
1099 | + setting: { | ||
1100 | + listsHeight: 400, | ||
1101 | + }, | ||
1102 | + }} | ||
1103 | + form={{}} | ||
1104 | + dateFormatter="string" | ||
1105 | + headerTitle="银行流水列表" | ||
1106 | + scroll={{ x: 1400, y: 360 }} | ||
1107 | + toolBarRender={() => [ | ||
1108 | + <Button | ||
1109 | + key="button" | ||
1110 | + icon={<PlusOutlined />} | ||
1111 | + onClick={() => { | ||
1112 | + setBankImportModalVisible(true); | ||
1113 | + }} | ||
1114 | + type="primary" | ||
1115 | + > | ||
1116 | + 导入 | ||
1117 | + </Button>, | ||
1118 | + ]} | ||
1119 | + /> | ||
1120 | + ), | ||
1121 | + }, | ||
1122 | + ]; | ||
1123 | + return ( | ||
1124 | + <div className="invoice-index"> | ||
1125 | + <Tabs | ||
1126 | + defaultActiveKey="1" | ||
1127 | + items={tabsItems} | ||
1128 | + onChange={(value) => { | ||
1129 | + if (value === 1) { | ||
1130 | + invoiceActionRef.current?.reload(); | ||
1131 | + } else { | ||
1132 | + bankActionRef.current?.reload(); | ||
1133 | + } | ||
1134 | + }} | ||
1135 | + /> | ||
1136 | + | ||
1137 | + {bankImportModalVisible ? ( | ||
1138 | + <BankImportModal | ||
1139 | + setVisible={setBankImportModalVisible} | ||
1140 | + onClose={() => { | ||
1141 | + setBankImportModalVisible(false); | ||
1142 | + invoiceActionRef.current?.reload(); | ||
1143 | + bankActionRef.current?.reload(); | ||
1144 | + }} | ||
1145 | + ></BankImportModal> | ||
1146 | + ) : ( | ||
1147 | + '' | ||
1148 | + )} | ||
1149 | + | ||
1150 | + {invoiceVerificationVisible ? ( | ||
1151 | + <InvoiceVerificationModal | ||
1152 | + setVisible={setInvoiceVerificationVisible} | ||
1153 | + invoiceId={invoiceId} | ||
1154 | + onClose={() => { | ||
1155 | + invoiceActionRef.current?.reload(); | ||
1156 | + bankActionRef.current?.reload(); | ||
1157 | + }} | ||
1158 | + ></InvoiceVerificationModal> | ||
1159 | + ) : ( | ||
1160 | + '' | ||
1161 | + )} | ||
1162 | + {invoiceRecordDetailVisible ? ( | ||
1163 | + <InvoiceRecordDetailModal | ||
1164 | + key="detail" | ||
1165 | + id={invoiceRecord.id} | ||
1166 | + setVisible={setInvoiceRecordDetailVisible} | ||
1167 | + /> | ||
1168 | + ) : ( | ||
1169 | + '' | ||
1170 | + )} | ||
1171 | + {contextHolder} | ||
1172 | + </div> | ||
1173 | + ); | ||
1174 | +}; | ||
1175 | + | ||
1176 | +export default InvoiceRecord; |
src/pages/Invoice/components/Invoice.tsx
@@ -155,10 +155,7 @@ export default ({ data }) => { | @@ -155,10 +155,7 @@ export default ({ data }) => { | ||
155 | </Col> | 155 | </Col> |
156 | <Col className="title col_18 no-border"> | 156 | <Col className="title col_18 no-border"> |
157 | 电子发票( | 157 | 电子发票( |
158 | - {data.type === 'SPECIAL_TICKET' | ||
159 | - ? '增值税专用发票' | ||
160 | - : '增值税普通发票'} | ||
161 | - ) | 158 | + {data.type === 'SPECIAL_TICKET' ? '增值税专用发票' : '普通发票'}) |
162 | </Col> | 159 | </Col> |
163 | <UnderLine className="UnderLine"> | 160 | <UnderLine className="UnderLine"> |
164 | <div></div> | 161 | <div></div> |
@@ -198,13 +195,13 @@ export default ({ data }) => { | @@ -198,13 +195,13 @@ export default ({ data }) => { | ||
198 | <Col className=""> | 195 | <Col className=""> |
199 | <div className="text-center">单位</div> | 196 | <div className="text-center">单位</div> |
200 | </Col> | 197 | </Col> |
201 | - <Col className=""> | 198 | + <Col className="col_2"> |
202 | <div className="text-center">数量</div> | 199 | <div className="text-center">数量</div> |
203 | </Col> | 200 | </Col> |
204 | <Col className="col_2"> | 201 | <Col className="col_2"> |
205 | <div className="text-center">单价</div> | 202 | <div className="text-center">单价</div> |
206 | </Col> | 203 | </Col> |
207 | - <Col className="col_3"> | 204 | + <Col className="col_2"> |
208 | <div className="text-center">金额</div> | 205 | <div className="text-center">金额</div> |
209 | </Col> | 206 | </Col> |
210 | <Col className=""> | 207 | <Col className=""> |
@@ -242,22 +239,22 @@ export default ({ data }) => { | @@ -242,22 +239,22 @@ export default ({ data }) => { | ||
242 | > | 239 | > |
243 | <div className="text-center">{specification}</div> | 240 | <div className="text-center">{specification}</div> |
244 | </Col> | 241 | </Col> |
245 | - <Col className="col_4 transparent-border" key={'unit'}> | 242 | + <Col className=" transparent-border" key={'unit'}> |
246 | <div className="text-center">{unit}</div> | 243 | <div className="text-center">{unit}</div> |
247 | </Col> | 244 | </Col> |
248 | - <Col className="col_4 transparent-border" key={'quantity'}> | 245 | + <Col className="col_2 transparent-border" key={'quantity'}> |
249 | <div className="text-center">{quantity}</div> | 246 | <div className="text-center">{quantity}</div> |
250 | </Col> | 247 | </Col> |
251 | <Col className="col_2 transparent-border" key={'price'}> | 248 | <Col className="col_2 transparent-border" key={'price'}> |
252 | <div className="text-center">{price}</div> | 249 | <div className="text-center">{price}</div> |
253 | </Col> | 250 | </Col> |
254 | <Col | 251 | <Col |
255 | - className="col_3 transparent-border" | 252 | + className="col_2 transparent-border" |
256 | key={'totalPrice'} | 253 | key={'totalPrice'} |
257 | > | 254 | > |
258 | <div className="text-center">{totalPrice}</div> | 255 | <div className="text-center">{totalPrice}</div> |
259 | </Col> | 256 | </Col> |
260 | - <Col className="col_9 transparent-border" key={'taxRate'}> | 257 | + <Col className=" transparent-border" key={'taxRate'}> |
261 | <div className="text-center">{taxRate}</div> | 258 | <div className="text-center">{taxRate}</div> |
262 | </Col> | 259 | </Col> |
263 | <Col className="col_2 transparent-border" key={'taxPrice'}> | 260 | <Col className="col_2 transparent-border" key={'taxPrice'}> |
src/pages/Invoice/components/InvoiceModal.tsx
@@ -36,6 +36,7 @@ export default ({ recordId, getRecord, button }) => { | @@ -36,6 +36,7 @@ export default ({ recordId, getRecord, button }) => { | ||
36 | width={1200} | 36 | width={1200} |
37 | form={form} | 37 | form={form} |
38 | autoFocusFirstInput | 38 | autoFocusFirstInput |
39 | + submitter={false} | ||
39 | modalProps={{ | 40 | modalProps={{ |
40 | destroyOnClose: true, | 41 | destroyOnClose: true, |
41 | }} | 42 | }} |
src/pages/Invoice/components/InvoiceRecordDetailModal.tsx
@@ -12,7 +12,6 @@ import { | @@ -12,7 +12,6 @@ import { | ||
12 | ModalForm, | 12 | ModalForm, |
13 | ProCard, | 13 | ProCard, |
14 | ProForm, | 14 | ProForm, |
15 | - ProFormFieldSet, | ||
16 | ProFormInstance, | 15 | ProFormInstance, |
17 | ProFormList, | 16 | ProFormList, |
18 | ProFormSelect, | 17 | ProFormSelect, |
@@ -83,16 +82,15 @@ export default ({ id, setVisible }) => { | @@ -83,16 +82,15 @@ export default ({ id, setVisible }) => { | ||
83 | const data = ret.data; | 82 | const data = ret.data; |
84 | const orderIdMap = data.orderIdMap; | 83 | const orderIdMap = data.orderIdMap; |
85 | const orderIdList = []; | 84 | const orderIdList = []; |
86 | - //遍历orderIdMap属性。 | ||
87 | - for (const key in orderIdMap) { | ||
88 | - if (key in Object.getOwnPropertyNames(orderIdMap)) { | ||
89 | - const orderId = { | ||
90 | - mainId: key, | ||
91 | - subIds: orderIdMap[key], | ||
92 | - }; | ||
93 | - orderIdList.push(orderId); | ||
94 | - } | ||
95 | - } | 85 | + |
86 | + // 使用Object.entries()遍历属性 | ||
87 | + Object.entries(orderIdMap).forEach(([key, value]) => { | ||
88 | + const orderId = { | ||
89 | + mainId: key, | ||
90 | + subIds: value, | ||
91 | + }; | ||
92 | + orderIdList.push(orderId); | ||
93 | + }); | ||
96 | return { | 94 | return { |
97 | ...data, | 95 | ...data, |
98 | orderIdList: orderIdList, | 96 | orderIdList: orderIdList, |
@@ -248,53 +246,45 @@ export default ({ id, setVisible }) => { | @@ -248,53 +246,45 @@ export default ({ id, setVisible }) => { | ||
248 | { required: true, message: 'Please select your country!' }, | 246 | { required: true, message: 'Please select your country!' }, |
249 | ]} | 247 | ]} |
250 | /> | 248 | /> |
251 | - <ProFormFieldSet | ||
252 | - name="list" | 249 | + <ProFormList |
253 | label="订单号" | 250 | label="订单号" |
254 | - transform={(value: any) => ({ | ||
255 | - list: value, | ||
256 | - startTime: value[0], | ||
257 | - endTime: value[1], | ||
258 | - })} | 251 | + name="orderIdList" |
252 | + creatorButtonProps={false} | ||
253 | + itemRender={({}, { record }) => { | ||
254 | + console.log('record' + JSON.stringify(record)); | ||
255 | + return ( | ||
256 | + <Space> | ||
257 | + <Button | ||
258 | + key={record.mainId} | ||
259 | + className="pl-1 pr-0" | ||
260 | + type="link" | ||
261 | + target="_blank" | ||
262 | + href={'/order?id=' + record.mainId} | ||
263 | + > | ||
264 | + {record.mainId} | ||
265 | + </Button> | ||
266 | + ( | ||
267 | + {record.subIds.map((item) => { | ||
268 | + return ( | ||
269 | + <Button | ||
270 | + key={item} | ||
271 | + className="pl-1 pr-0" | ||
272 | + type="link" | ||
273 | + target="_blank" | ||
274 | + href={'/order?subOrderId=' + item} | ||
275 | + > | ||
276 | + {item} | ||
277 | + </Button> | ||
278 | + ); | ||
279 | + })} | ||
280 | + ) | ||
281 | + <Divider type="vertical" /> | ||
282 | + </Space> | ||
283 | + ); | ||
284 | + }} | ||
259 | > | 285 | > |
260 | - <ProFormList | ||
261 | - name="orderIdList" | ||
262 | - creatorButtonProps={false} | ||
263 | - itemRender={({}, { record }) => { | ||
264 | - return ( | ||
265 | - <Space> | ||
266 | - <Button | ||
267 | - key={record.mainId} | ||
268 | - className="pl-1 pr-0" | ||
269 | - type="link" | ||
270 | - target="_blank" | ||
271 | - href={'/order?id=' + record.mainId} | ||
272 | - > | ||
273 | - {record.mainId} | ||
274 | - </Button> | ||
275 | - ( | ||
276 | - {record.subIds.map((item) => { | ||
277 | - return ( | ||
278 | - <Button | ||
279 | - key={item} | ||
280 | - className="pl-1 pr-0" | ||
281 | - type="link" | ||
282 | - target="_blank" | ||
283 | - href={'/order?subOrderId=' + item} | ||
284 | - > | ||
285 | - {item} | ||
286 | - </Button> | ||
287 | - ); | ||
288 | - })} | ||
289 | - ) | ||
290 | - <Divider type="vertical" /> | ||
291 | - </Space> | ||
292 | - ); | ||
293 | - }} | ||
294 | - > | ||
295 | - <ProFormText allowClear={false} width="xs" name={['name']} /> | ||
296 | - </ProFormList> | ||
297 | - </ProFormFieldSet> | 286 | + <ProFormText allowClear={false} width="xs" name={['name']} /> |
287 | + </ProFormList> | ||
298 | </ProForm.Group> | 288 | </ProForm.Group> |
299 | </ProCard> | 289 | </ProCard> |
300 | <hr /> | 290 | <hr /> |
src/pages/Invoice/components/InvoicingModal.tsx
1 | import { RESPONSE_CODE } from '@/constants/enum'; | 1 | import { RESPONSE_CODE } from '@/constants/enum'; |
2 | -import { | ||
3 | - postServiceInvoiceGetInvoicingAccount, | ||
4 | - postServiceInvoiceInvoicing, | ||
5 | -} from '@/services'; | ||
6 | -import { ModalForm, ProFormSelect } from '@ant-design/pro-components'; | 2 | +import { postServiceInvoiceInvoicing } from '@/services'; |
3 | +import { ModalForm } from '@ant-design/pro-components'; | ||
7 | import { Button, Form, message } from 'antd'; | 4 | import { Button, Form, message } from 'antd'; |
8 | 5 | ||
9 | export default ({ selectedRowKeys, reloadRecordTable }) => { | 6 | export default ({ selectedRowKeys, reloadRecordTable }) => { |
@@ -41,7 +38,7 @@ export default ({ selectedRowKeys, reloadRecordTable }) => { | @@ -41,7 +38,7 @@ export default ({ selectedRowKeys, reloadRecordTable }) => { | ||
41 | return true; | 38 | return true; |
42 | }} | 39 | }} |
43 | > | 40 | > |
44 | - <ProFormSelect | 41 | + {/*<ProFormSelect |
45 | name="invoicingAccount" | 42 | name="invoicingAccount" |
46 | label="开票账号" | 43 | label="开票账号" |
47 | request={async () => { | 44 | request={async () => { |
@@ -55,7 +52,7 @@ export default ({ selectedRowKeys, reloadRecordTable }) => { | @@ -55,7 +52,7 @@ export default ({ selectedRowKeys, reloadRecordTable }) => { | ||
55 | }} | 52 | }} |
56 | placeholder="请选择开票账号" | 53 | placeholder="请选择开票账号" |
57 | rules={[{ required: true, message: '请选择开票账号!' }]} | 54 | rules={[{ required: true, message: '请选择开票账号!' }]} |
58 | - /> | 55 | + />*/} |
59 | </ModalForm> | 56 | </ModalForm> |
60 | ); | 57 | ); |
61 | }; | 58 | }; |
src/pages/Invoice/components/ManualInvoicingModal.tsx
@@ -6,11 +6,7 @@ import { | @@ -6,11 +6,7 @@ import { | ||
6 | } from '@/services'; | 6 | } from '@/services'; |
7 | import { | 7 | import { |
8 | ModalForm, | 8 | ModalForm, |
9 | - ProCard, | ||
10 | ProFormDatePicker, | 9 | ProFormDatePicker, |
11 | - ProFormDigit, | ||
12 | - ProFormList, | ||
13 | - ProFormMoney, | ||
14 | ProFormText, | 10 | ProFormText, |
15 | } from '@ant-design/pro-components'; | 11 | } from '@ant-design/pro-components'; |
16 | import { Col, Form, Row, message } from 'antd'; | 12 | import { Col, Form, Row, message } from 'antd'; |
@@ -52,12 +48,12 @@ export default ({ record }) => { | @@ -52,12 +48,12 @@ export default ({ record }) => { | ||
52 | } | 48 | } |
53 | }} | 49 | }} |
54 | > | 50 | > |
55 | - <ProFormText | 51 | + {/*<ProFormText |
56 | rules={[{ required: true, message: '此项为必填项' }]} | 52 | rules={[{ required: true, message: '此项为必填项' }]} |
57 | width={'md'} | 53 | width={'md'} |
58 | name="invoicingPerson" | 54 | name="invoicingPerson" |
59 | label="开票人" | 55 | label="开票人" |
60 | - /> | 56 | + />*/} |
61 | <ProFormText | 57 | <ProFormText |
62 | rules={[{ required: true, message: '此项为必填项' }]} | 58 | rules={[{ required: true, message: '此项为必填项' }]} |
63 | width={'md'} | 59 | width={'md'} |
@@ -102,7 +98,7 @@ export default ({ record }) => { | @@ -102,7 +98,7 @@ export default ({ record }) => { | ||
102 | ></UploadC> | 98 | ></UploadC> |
103 | </Col> | 99 | </Col> |
104 | </Row> | 100 | </Row> |
105 | - <ProFormList | 101 | + {/*<ProFormList |
106 | name="invoiceDetailDtoList" | 102 | name="invoiceDetailDtoList" |
107 | label="明细" | 103 | label="明细" |
108 | creatorButtonProps={false} | 104 | creatorButtonProps={false} |
@@ -128,7 +124,7 @@ export default ({ record }) => { | @@ -128,7 +124,7 @@ export default ({ record }) => { | ||
128 | /> | 124 | /> |
129 | <ProFormDigit label="税率" name="taxRate" min={0} max={100} /> | 125 | <ProFormDigit label="税率" name="taxRate" min={0} max={100} /> |
130 | <ProFormMoney label="税额" name="taxPrice" locale="zh-CN" min={0} /> | 126 | <ProFormMoney label="税额" name="taxPrice" locale="zh-CN" min={0} /> |
131 | - </ProFormList> | 127 | + </ProFormList>*/} |
132 | </ModalForm> | 128 | </ModalForm> |
133 | ); | 129 | ); |
134 | }; | 130 | }; |
src/pages/Invoice/index.tsx
@@ -298,7 +298,7 @@ const InvoicePage = () => { | @@ -298,7 +298,7 @@ const InvoicePage = () => { | ||
298 | { | 298 | { |
299 | title: '申请开票时间', | 299 | title: '申请开票时间', |
300 | dataIndex: 'createTime', | 300 | dataIndex: 'createTime', |
301 | - valueType: 'dateRange', | 301 | + valueType: 'dateTimeRange', |
302 | width: 200, | 302 | width: 200, |
303 | hideInTable: true, | 303 | hideInTable: true, |
304 | search: { | 304 | search: { |
@@ -319,24 +319,32 @@ const InvoicePage = () => { | @@ -319,24 +319,32 @@ const InvoicePage = () => { | ||
319 | render: (text, record) => { | 319 | render: (text, record) => { |
320 | return [ | 320 | return [ |
321 | /*<InvoiceRecordDetailModal | 321 | /*<InvoiceRecordDetailModal |
322 | - key="detail" | ||
323 | - id={record.id} | ||
324 | - subOrderIds={record.subOrderIds} | ||
325 | - onClose={()=>{ | ||
326 | - waitDealrecordActionRef.current?.reload(); | ||
327 | - } | ||
328 | - } | ||
329 | - />*/ | ||
330 | - <a | ||
331 | - key="detail" | ||
332 | - onClick={() => { | ||
333 | - setInvoiceRecordDetailVisible(true); | ||
334 | - setInvoiceRecord(record); | ||
335 | - }} | ||
336 | - > | ||
337 | - 详情 | ||
338 | - </a>, | ||
339 | - <InvoiceModal key="invoiceModal" recordId={record.id} />, | 322 | + key="detail" |
323 | + id={record.id} | ||
324 | + subOrderIds={record.subOrderIds} | ||
325 | + onClose={()=>{ | ||
326 | + waitDealrecordActionRef.current?.reload(); | ||
327 | + } | ||
328 | + } | ||
329 | + />*/ | ||
330 | + <> | ||
331 | + {record.paths.includes('DETAIL') && ( | ||
332 | + <a | ||
333 | + key="detail" | ||
334 | + onClick={() => { | ||
335 | + setInvoiceRecordDetailVisible(true); | ||
336 | + setInvoiceRecord(record); | ||
337 | + }} | ||
338 | + > | ||
339 | + 详情 | ||
340 | + </a> | ||
341 | + )} | ||
342 | + </>, | ||
343 | + <> | ||
344 | + {record.paths.includes('PREVIEW') && ( | ||
345 | + <InvoiceModal key="invoiceModal" recordId={record.id} /> | ||
346 | + )} | ||
347 | + </>, | ||
340 | <> | 348 | <> |
341 | {record.paths.includes('INVOICING') && ( | 349 | {record.paths.includes('INVOICING') && ( |
342 | <ManualInvoicingModal | 350 | <ManualInvoicingModal |
@@ -371,8 +379,8 @@ const InvoicePage = () => { | @@ -371,8 +379,8 @@ const InvoicePage = () => { | ||
371 | }, | 379 | }, |
372 | { | 380 | { |
373 | title: '开票日期', | 381 | title: '开票日期', |
374 | - dataIndex: 'invoicingTime', | ||
375 | - valueType: 'dateTime', | 382 | + dataIndex: 'invoicingDate', |
383 | + valueType: 'date', | ||
376 | hideInSearch: true, | 384 | hideInSearch: true, |
377 | ellipsis: true, | 385 | ellipsis: true, |
378 | }, | 386 | }, |
@@ -491,15 +499,15 @@ const InvoicePage = () => { | @@ -491,15 +499,15 @@ const InvoicePage = () => { | ||
491 | }, | 499 | }, |
492 | { | 500 | { |
493 | title: '开票日期', | 501 | title: '开票日期', |
494 | - dataIndex: 'invoicingTime', | 502 | + dataIndex: 'invoicingDate', |
495 | valueType: 'dateRange', | 503 | valueType: 'dateRange', |
496 | hideInTable: true, | 504 | hideInTable: true, |
497 | search: { | 505 | search: { |
498 | transform: (value) => { | 506 | transform: (value) => { |
499 | if (value) { | 507 | if (value) { |
500 | return { | 508 | return { |
501 | - invoicingTimeGe: value[0], | ||
502 | - invoicingTimeLe: value[1], | 509 | + invoicingDateGe: value[0], |
510 | + invoicingDateLe: value[1], | ||
503 | }; | 511 | }; |
504 | } | 512 | } |
505 | }, | 513 | }, |
@@ -519,28 +527,29 @@ const InvoicePage = () => { | @@ -519,28 +527,29 @@ const InvoicePage = () => { | ||
519 | valueType: 'option', | 527 | valueType: 'option', |
520 | key: 'option', | 528 | key: 'option', |
521 | render: (text, record) => [ | 529 | render: (text, record) => [ |
522 | - <a | ||
523 | - key="detail" | ||
524 | - onClick={() => { | ||
525 | - setInvoiceRecordDetailVisible(true); | ||
526 | - setInvoiceRecord(record); | ||
527 | - }} | ||
528 | - > | ||
529 | - 详情 | ||
530 | - </a>, | ||
531 | <> | 530 | <> |
532 | - {record.status === 'SUCCESS' && ( | ||
533 | - <> | ||
534 | - {record.status === 'SUCCESS' && ( | ||
535 | - <a href={record.invoiceAddress} download> | ||
536 | - 下载发票 | ||
537 | - </a> | ||
538 | - )} | ||
539 | - </> | 531 | + {record.status === 'SUCCESS' && record.paths.includes('DETAIL') && ( |
532 | + <a | ||
533 | + key="detail" | ||
534 | + onClick={() => { | ||
535 | + setInvoiceRecordDetailVisible(true); | ||
536 | + setInvoiceRecord(record); | ||
537 | + }} | ||
538 | + > | ||
539 | + 详情 | ||
540 | + </a> | ||
540 | )} | 541 | )} |
541 | </>, | 542 | </>, |
542 | <> | 543 | <> |
543 | - {record.status === 'FAIL' && ( | 544 | + {record.status === 'SUCCESS' && |
545 | + record.paths.includes('DOWNLOAD_INVOICE') && ( | ||
546 | + <a href={record.invoiceAddress} download> | ||
547 | + 下载发票 | ||
548 | + </a> | ||
549 | + )} | ||
550 | + </>, | ||
551 | + <> | ||
552 | + {record.status === 'FAIL' && record.paths.includes('RETRY') && ( | ||
544 | <ModalForm | 553 | <ModalForm |
545 | title="提示" | 554 | title="提示" |
546 | trigger={ | 555 | trigger={ |
@@ -831,7 +840,8 @@ const InvoicePage = () => { | @@ -831,7 +840,8 @@ const InvoicePage = () => { | ||
831 | actionRef={waitDealrecordActionRef} | 840 | actionRef={waitDealrecordActionRef} |
832 | cardBordered | 841 | cardBordered |
833 | pagination={{ | 842 | pagination={{ |
834 | - pageSize: 10, | 843 | + showSizeChanger: true, // 显示可以选择每页显示条数的下拉菜单 |
844 | + pageSizeOptions: ['10', '20', '50', '100'], // 设置可以选择的每页显示条数选项 | ||
835 | }} | 845 | }} |
836 | rowSelection={{ | 846 | rowSelection={{ |
837 | selections: [Table.SELECTION_ALL, Table.SELECTION_INVERT], | 847 | selections: [Table.SELECTION_ALL, Table.SELECTION_INVERT], |
@@ -904,7 +914,8 @@ const InvoicePage = () => { | @@ -904,7 +914,8 @@ const InvoicePage = () => { | ||
904 | actionRef={processedRecordRef} | 914 | actionRef={processedRecordRef} |
905 | cardBordered | 915 | cardBordered |
906 | pagination={{ | 916 | pagination={{ |
907 | - pageSize: 10, | 917 | + showSizeChanger: true, // 显示可以选择每页显示条数的下拉菜单 |
918 | + pageSizeOptions: ['10', '20', '50', '100'], // 设置可以选择的每页显示条数选项 | ||
908 | }} | 919 | }} |
909 | editable={{ | 920 | editable={{ |
910 | type: 'multiple', | 921 | type: 'multiple', |
src/pages/Order/components/InvoicingDrawerForm.tsx
@@ -2,6 +2,7 @@ | @@ -2,6 +2,7 @@ | ||
2 | import InvoiceModal from '@/pages/Invoice/components/InvoiceModal'; | 2 | import InvoiceModal from '@/pages/Invoice/components/InvoiceModal'; |
3 | import { | 3 | import { |
4 | postServiceConstGetPayeeEnum, | 4 | postServiceConstGetPayeeEnum, |
5 | + postServiceConstInitInvoiceDetailNames, | ||
5 | postServiceConstInvoiceType, | 6 | postServiceConstInvoiceType, |
6 | postServiceConstInvoicingType, | 7 | postServiceConstInvoicingType, |
7 | postServiceConstListInvoiceDetailNames, | 8 | postServiceConstListInvoiceDetailNames, |
@@ -15,33 +16,91 @@ import { | @@ -15,33 +16,91 @@ import { | ||
15 | ProCard, | 16 | ProCard, |
16 | ProFormDigit, | 17 | ProFormDigit, |
17 | ProFormGroup, | 18 | ProFormGroup, |
19 | + ProFormInstance, | ||
18 | ProFormList, | 20 | ProFormList, |
19 | ProFormMoney, | 21 | ProFormMoney, |
20 | ProFormSelect, | 22 | ProFormSelect, |
21 | ProFormText, | 23 | ProFormText, |
22 | ProFormTextArea, | 24 | ProFormTextArea, |
23 | } from '@ant-design/pro-components'; | 25 | } from '@ant-design/pro-components'; |
24 | -import { Button, Divider, Form } from 'antd'; | ||
25 | -import { useEffect } from 'react'; | 26 | +import { Button, Divider, Form, Space, Tooltip, message } from 'antd'; |
27 | +import { useEffect, useRef, useState } from 'react'; | ||
26 | 28 | ||
27 | export default ({ dataList, setVisible, onClose }) => { | 29 | export default ({ dataList, setVisible, onClose }) => { |
28 | // let subOrderIds = dataList?.map((item) => { | 30 | // let subOrderIds = dataList?.map((item) => { |
29 | // return item.id; | 31 | // return item.id; |
30 | - // }); | 32 | + // }) |
31 | const [form] = Form.useForm(); | 33 | const [form] = Form.useForm(); |
34 | + const [projectOptions] = useState(); | ||
35 | + const [dataListCopy] = useState(dataList); | ||
36 | + const formRef = useRef<ProFormInstance>(); | ||
37 | + useEffect(() => { | ||
38 | + const initOptions = async () => { | ||
39 | + const res = await postServiceConstInitInvoiceDetailNames({ | ||
40 | + data: dataListCopy.map((item) => { | ||
41 | + return item.productName; | ||
42 | + }), | ||
43 | + }); | ||
44 | + const options = res.data; | ||
45 | + const datas = dataListCopy.map((item) => { | ||
46 | + return { | ||
47 | + ...item, | ||
48 | + projectName: options[item.productName], | ||
49 | + }; | ||
50 | + }); | ||
51 | + const initialValue = datas.map((item) => { | ||
52 | + return { | ||
53 | + productName: item.productName, | ||
54 | + projectName: item.projectName, | ||
55 | + subOrderId: item.id, | ||
56 | + specification: item.parameters, | ||
57 | + unit: item.unit, | ||
58 | + quantity: item.quantity, | ||
59 | + price: item.productPrice, | ||
60 | + totalPrice: item.subOrderPayment, | ||
61 | + }; | ||
62 | + }); | ||
63 | + form.setFieldValue('invoiceDetails', initialValue); | ||
64 | + }; | ||
65 | + initOptions(); | ||
66 | + }, []); | ||
67 | + | ||
68 | + useEffect(() => {}, [projectOptions]); | ||
69 | + | ||
70 | + function copyToClipboard(text: string) { | ||
71 | + // 创建一个临时的textarea元素 | ||
72 | + const textarea = document.createElement('textarea'); | ||
73 | + textarea.value = text; | ||
74 | + | ||
75 | + // 将textarea元素添加到DOM中 | ||
76 | + document.body.appendChild(textarea); | ||
77 | + | ||
78 | + // 选中textarea中的文本 | ||
79 | + textarea.select(); | ||
80 | + | ||
81 | + try { | ||
82 | + // 尝试执行复制命令 | ||
83 | + document.execCommand('copy'); | ||
84 | + return true; | ||
85 | + } catch (err) { | ||
86 | + return false; | ||
87 | + } finally { | ||
88 | + // 移除临时的textarea元素 | ||
89 | + document.body.removeChild(textarea); | ||
90 | + } | ||
91 | + } | ||
92 | + | ||
32 | useEffect(() => {}, []); | 93 | useEffect(() => {}, []); |
33 | return ( | 94 | return ( |
34 | <DrawerForm | 95 | <DrawerForm |
35 | open | 96 | open |
36 | - title="合并开票" | 97 | + title="申请开票" |
37 | resize={{ | 98 | resize={{ |
38 | - onResize() { | ||
39 | - console.log('resize!'); | ||
40 | - }, | ||
41 | maxWidth: window.innerWidth * 0.8, | 99 | maxWidth: window.innerWidth * 0.8, |
42 | minWidth: 500, | 100 | minWidth: 500, |
43 | }} | 101 | }} |
44 | form={form} | 102 | form={form} |
103 | + formRef={formRef} | ||
45 | autoFocusFirstInput | 104 | autoFocusFirstInput |
46 | drawerProps={{ | 105 | drawerProps={{ |
47 | destroyOnClose: true, | 106 | destroyOnClose: true, |
@@ -53,12 +112,11 @@ export default ({ dataList, setVisible, onClose }) => { | @@ -53,12 +112,11 @@ export default ({ dataList, setVisible, onClose }) => { | ||
53 | key={'invoicePreview'} | 112 | key={'invoicePreview'} |
54 | button={<Button type="primary"> 发票预览 </Button>} | 113 | button={<Button type="primary"> 发票预览 </Button>} |
55 | getRecord={() => { | 114 | getRecord={() => { |
56 | - const totalPrice = dataList.reduce( | ||
57 | - (accumulator, currentValue) => { | ||
58 | - return accumulator + currentValue.subOrderPayment; | ||
59 | - }, | ||
60 | - 0, | ||
61 | - ); | 115 | + const totalPrice = form |
116 | + .getFieldValue('invoiceDetails') | ||
117 | + .reduce((accumulator, currentValue) => { | ||
118 | + return accumulator + currentValue.totalPrice; | ||
119 | + }, 0); | ||
62 | return { | 120 | return { |
63 | ...form.getFieldsValue(), | 121 | ...form.getFieldsValue(), |
64 | totalPrice: totalPrice, | 122 | totalPrice: totalPrice, |
@@ -75,7 +133,7 @@ export default ({ dataList, setVisible, onClose }) => { | @@ -75,7 +133,7 @@ export default ({ dataList, setVisible, onClose }) => { | ||
75 | postServiceInvoiceApplyInvoice({ | 133 | postServiceInvoiceApplyInvoice({ |
76 | data: { | 134 | data: { |
77 | ...values, | 135 | ...values, |
78 | - subOrderIds: dataList.map((item) => { | 136 | + subOrderIds: dataListCopy.map((item) => { |
79 | return item.id; | 137 | return item.id; |
80 | }), | 138 | }), |
81 | }, | 139 | }, |
@@ -90,7 +148,7 @@ export default ({ dataList, setVisible, onClose }) => { | @@ -90,7 +148,7 @@ export default ({ dataList, setVisible, onClose }) => { | ||
90 | name="subOrderIdObjs" | 148 | name="subOrderIdObjs" |
91 | readonly={true} | 149 | readonly={true} |
92 | label="开票订单" | 150 | label="开票订单" |
93 | - initialValue={dataList.map((item) => { | 151 | + initialValue={dataListCopy.map((item) => { |
94 | return { | 152 | return { |
95 | value: item.id, | 153 | value: item.id, |
96 | }; | 154 | }; |
@@ -181,7 +239,7 @@ export default ({ dataList, setVisible, onClose }) => { | @@ -181,7 +239,7 @@ export default ({ dataList, setVisible, onClose }) => { | ||
181 | name="price" | 239 | name="price" |
182 | locale="zh-CN" | 240 | locale="zh-CN" |
183 | rules={[{ required: true, message: '请填写开票金额!' }]} | 241 | rules={[{ required: true, message: '请填写开票金额!' }]} |
184 | - initialValue={dataList.reduce((accumulator, currentValue) => { | 242 | + initialValue={dataListCopy.reduce((accumulator, currentValue) => { |
185 | return accumulator + currentValue.subOrderPayment; | 243 | return accumulator + currentValue.subOrderPayment; |
186 | }, 0)} | 244 | }, 0)} |
187 | /> | 245 | /> |
@@ -257,23 +315,24 @@ export default ({ dataList, setVisible, onClose }) => { | @@ -257,23 +315,24 @@ export default ({ dataList, setVisible, onClose }) => { | ||
257 | <ProFormList | 315 | <ProFormList |
258 | name="invoiceDetails" | 316 | name="invoiceDetails" |
259 | label="开票明细" | 317 | label="开票明细" |
260 | - initialValue={dataList.map((item) => { | ||
261 | - console.log('item:' + JSON.stringify(item)); | ||
262 | - return { | ||
263 | - subOrderId: item.id, | ||
264 | - /*projectName: item.productName,*/ | ||
265 | - specification: item.parameters, | ||
266 | - unit: item.unit, | ||
267 | - quantity: item.quantity, | ||
268 | - price: item.productPrice, | ||
269 | - totalPrice: item.subOrderPayment, | ||
270 | - }; | ||
271 | - })} | 318 | + /*initialValue={dataListCopy.map((item) => { |
319 | + console.log("item"+JSON.stringify(item)); | ||
320 | + return { | ||
321 | + productName: item.productName, | ||
322 | + projectName: item.projectName, | ||
323 | + subOrderId: item.id, | ||
324 | + /!*projectName: item.productName,*!/ | ||
325 | + specification: item.parameters, | ||
326 | + unit: item.unit, | ||
327 | + quantity: item.quantity, | ||
328 | + price: item.productPrice, | ||
329 | + totalPrice: item.subOrderPayment, | ||
330 | + }; | ||
331 | + })}*/ | ||
272 | rules={[ | 332 | rules={[ |
273 | { | 333 | { |
274 | required: true, | 334 | required: true, |
275 | validator: async (_, value) => { | 335 | validator: async (_, value) => { |
276 | - console.log(value); | ||
277 | if (value && value.length > 0) { | 336 | if (value && value.length > 0) { |
278 | return; | 337 | return; |
279 | } | 338 | } |
@@ -282,7 +341,6 @@ export default ({ dataList, setVisible, onClose }) => { | @@ -282,7 +341,6 @@ export default ({ dataList, setVisible, onClose }) => { | ||
282 | }, | 341 | }, |
283 | ]} | 342 | ]} |
284 | itemRender={(doms, listMeta) => { | 343 | itemRender={(doms, listMeta) => { |
285 | - console.log(listMeta); | ||
286 | return ( | 344 | return ( |
287 | <ProCard | 345 | <ProCard |
288 | bordered | 346 | bordered |
@@ -292,12 +350,23 @@ export default ({ dataList, setVisible, onClose }) => { | @@ -292,12 +350,23 @@ export default ({ dataList, setVisible, onClose }) => { | ||
292 | marginBlockEnd: 8, | 350 | marginBlockEnd: 8, |
293 | }} | 351 | }} |
294 | > | 352 | > |
295 | - <ProFormText | ||
296 | - key={'subOrderId' + listMeta.index} | ||
297 | - name="subOrderId" | ||
298 | - label="子订单id" | ||
299 | - hidden | ||
300 | - /> | 353 | + <Tooltip title="点击复制商品名称"> |
354 | + <Space | ||
355 | + className="hover:cursor-pointer" | ||
356 | + style={{ | ||
357 | + margin: 16, | ||
358 | + marginTop: 4, | ||
359 | + marginLeft: 0, | ||
360 | + fontSize: 15, | ||
361 | + }} | ||
362 | + onClick={() => { | ||
363 | + copyToClipboard(listMeta.record.productName); | ||
364 | + message.info('商品名称复制成功!'); | ||
365 | + }} | ||
366 | + > | ||
367 | + 商品名称:{listMeta.record.productName} | ||
368 | + </Space> | ||
369 | + </Tooltip> | ||
301 | <ProFormSelect | 370 | <ProFormSelect |
302 | key={'projectName' + listMeta.index} | 371 | key={'projectName' + listMeta.index} |
303 | width="md" | 372 | width="md" |
@@ -343,12 +412,14 @@ export default ({ dataList, setVisible, onClose }) => { | @@ -343,12 +412,14 @@ export default ({ dataList, setVisible, onClose }) => { | ||
343 | option.productAndServiceCatagoryAbbreviation + | 412 | option.productAndServiceCatagoryAbbreviation + |
344 | '*' + | 413 | '*' + |
345 | option.name; | 414 | option.name; |
346 | - currentData.specification = option.specification; | ||
347 | - currentData.unit = option.unit; | 415 | + console.log( |
416 | + 'copyList' + JSON.stringify(listMeta.record.projectName), | ||
417 | + ); | ||
348 | form.setFieldValue('invoiceDetails', copyList); | 418 | form.setFieldValue('invoiceDetails', copyList); |
349 | }} | 419 | }} |
350 | debounceTime={1000} | 420 | debounceTime={1000} |
351 | label="项目名称" | 421 | label="项目名称" |
422 | + initialValue={listMeta.record.projectName} | ||
352 | placeholder="请输入名称" | 423 | placeholder="请输入名称" |
353 | /> | 424 | /> |
354 | <ProFormText | 425 | <ProFormText |
@@ -377,8 +448,6 @@ export default ({ dataList, setVisible, onClose }) => { | @@ -377,8 +448,6 @@ export default ({ dataList, setVisible, onClose }) => { | ||
377 | len += 1; // 半角字符 | 448 | len += 1; // 半角字符 |
378 | } | 449 | } |
379 | } | 450 | } |
380 | - console.log(value); | ||
381 | - console.log(len); | ||
382 | if (len <= 40) { | 451 | if (len <= 40) { |
383 | return Promise.resolve(); | 452 | return Promise.resolve(); |
384 | } | 453 | } |
@@ -400,18 +469,46 @@ export default ({ dataList, setVisible, onClose }) => { | @@ -400,18 +469,46 @@ export default ({ dataList, setVisible, onClose }) => { | ||
400 | key={'quantity' + listMeta.index} | 469 | key={'quantity' + listMeta.index} |
401 | label="数量" | 470 | label="数量" |
402 | name="quantity" | 471 | name="quantity" |
403 | - min={0} | 472 | + rules={[ |
473 | + { | ||
474 | + validator: (_, value) => { | ||
475 | + if (value === undefined || value > 0) { | ||
476 | + return Promise.resolve(); | ||
477 | + } | ||
478 | + return Promise.reject(new Error('数量必须大于0')); | ||
479 | + }, | ||
480 | + }, | ||
481 | + ]} | ||
404 | /> | 482 | /> |
405 | <ProFormDigit | 483 | <ProFormDigit |
406 | key={'price' + listMeta.index} | 484 | key={'price' + listMeta.index} |
407 | label="单价" | 485 | label="单价" |
408 | name="price" | 486 | name="price" |
409 | - min={0} | 487 | + rules={[ |
488 | + { | ||
489 | + validator: (_, value) => { | ||
490 | + if (value === undefined || value > 0) { | ||
491 | + return Promise.resolve(); | ||
492 | + } | ||
493 | + return Promise.reject(new Error('单价必须大于0')); | ||
494 | + }, | ||
495 | + }, | ||
496 | + ]} | ||
410 | /> | 497 | /> |
411 | <ProFormMoney | 498 | <ProFormMoney |
412 | key={'totalPrice' + listMeta.index} | 499 | key={'totalPrice' + listMeta.index} |
413 | label="金额" | 500 | label="金额" |
414 | name="totalPrice" | 501 | name="totalPrice" |
502 | + rules={[ | ||
503 | + { | ||
504 | + validator: (_, value) => { | ||
505 | + if (value === undefined || value > 0) { | ||
506 | + return Promise.resolve(); | ||
507 | + } | ||
508 | + return Promise.reject(new Error('金额必须大于0')); | ||
509 | + }, | ||
510 | + }, | ||
511 | + ]} | ||
415 | locale="zh-CN" | 512 | locale="zh-CN" |
416 | /> | 513 | /> |
417 | </ProCard> | 514 | </ProCard> |
src/pages/Order/index.tsx
@@ -1283,7 +1283,7 @@ const OrderPage = () => { | @@ -1283,7 +1283,7 @@ const OrderPage = () => { | ||
1283 | </div> | 1283 | </div> |
1284 | </Flex> | 1284 | </Flex> |
1285 | <Flex className="w-[18%]" wrap="wrap" gap="small"> | 1285 | <Flex className="w-[18%]" wrap="wrap" gap="small"> |
1286 | - {optRecord.subPath?.includes('postAudit') ? ( | 1286 | + {optRecord.paths?.includes('postAudit') ? ( |
1287 | <Button | 1287 | <Button |
1288 | className="p-0" | 1288 | className="p-0" |
1289 | type="link" | 1289 | type="link" |
@@ -1299,7 +1299,7 @@ const OrderPage = () => { | @@ -1299,7 +1299,7 @@ const OrderPage = () => { | ||
1299 | '' | 1299 | '' |
1300 | )} | 1300 | )} |
1301 | {/* 加急审核 */} | 1301 | {/* 加急审核 */} |
1302 | - {optRecord.subPath?.includes('URGENT_INVOICE_AUDITING') ? ( | 1302 | + {optRecord.paths?.includes('URGENT_INVOICE_AUDITING') ? ( |
1303 | <Button | 1303 | <Button |
1304 | className="p-0" | 1304 | className="p-0" |
1305 | type="link" | 1305 | type="link" |
@@ -1316,7 +1316,7 @@ const OrderPage = () => { | @@ -1316,7 +1316,7 @@ const OrderPage = () => { | ||
1316 | ) : ( | 1316 | ) : ( |
1317 | '' | 1317 | '' |
1318 | )} | 1318 | )} |
1319 | - {optRecord.subPath?.includes('URGENT_INVOICE_AUDITING_old') ? ( | 1319 | + {optRecord.paths?.includes('URGENT_INVOICE_AUDITING_old') ? ( |
1320 | <Button | 1320 | <Button |
1321 | className="p-0" | 1321 | className="p-0" |
1322 | type="link" | 1322 | type="link" |
@@ -1333,7 +1333,7 @@ const OrderPage = () => { | @@ -1333,7 +1333,7 @@ const OrderPage = () => { | ||
1333 | ) : ( | 1333 | ) : ( |
1334 | '' | 1334 | '' |
1335 | )} | 1335 | )} |
1336 | - {optRecord.subPath?.includes('salesConfirm') && ( | 1336 | + {optRecord.paths?.includes('salesConfirm') && ( |
1337 | <ButtonConfirm | 1337 | <ButtonConfirm |
1338 | className="p-0" | 1338 | className="p-0" |
1339 | title="是否确认此商城订单信息无误?确认无误之后订单将进入审核流程。" | 1339 | title="是否确认此商城订单信息无误?确认无误之后订单将进入审核流程。" |
@@ -1352,7 +1352,7 @@ const OrderPage = () => { | @@ -1352,7 +1352,7 @@ const OrderPage = () => { | ||
1352 | }} | 1352 | }} |
1353 | /> | 1353 | /> |
1354 | )} | 1354 | )} |
1355 | - {optRecord.subPath?.includes('uploadPaymentReceiptBill') ? ( | 1355 | + {optRecord.paths?.includes('uploadPaymentReceiptBill') ? ( |
1356 | <Button | 1356 | <Button |
1357 | className="p-0" | 1357 | className="p-0" |
1358 | type="link" | 1358 | type="link" |
@@ -1366,7 +1366,7 @@ const OrderPage = () => { | @@ -1366,7 +1366,7 @@ const OrderPage = () => { | ||
1366 | ) : ( | 1366 | ) : ( |
1367 | '' | 1367 | '' |
1368 | )} | 1368 | )} |
1369 | - {optRecord.subPath?.includes('reissue_old') ? ( | 1369 | + {optRecord.paths?.includes('reissue_old') ? ( |
1370 | /*optRecord.afterInvoicingStatus==='PARTIAL_INVOICING'|| | 1370 | /*optRecord.afterInvoicingStatus==='PARTIAL_INVOICING'|| |
1371 | optRecord.afterInvoicingStatus==='COMPLETE_INVOICING'*/ | 1371 | optRecord.afterInvoicingStatus==='COMPLETE_INVOICING'*/ |
1372 | <Button | 1372 | <Button |
@@ -1382,7 +1382,7 @@ const OrderPage = () => { | @@ -1382,7 +1382,7 @@ const OrderPage = () => { | ||
1382 | ) : ( | 1382 | ) : ( |
1383 | '' | 1383 | '' |
1384 | )} | 1384 | )} |
1385 | - {optRecord.subPath?.includes('reissue') ? ( | 1385 | + {optRecord.paths?.includes('reissue') ? ( |
1386 | /*optRecord.afterInvoicingStatus==='PARTIAL_INVOICING'|| | 1386 | /*optRecord.afterInvoicingStatus==='PARTIAL_INVOICING'|| |
1387 | optRecord.afterInvoicingStatus==='COMPLETE_INVOICING'*/ | 1387 | optRecord.afterInvoicingStatus==='COMPLETE_INVOICING'*/ |
1388 | <Button | 1388 | <Button |
@@ -1400,7 +1400,7 @@ const OrderPage = () => { | @@ -1400,7 +1400,7 @@ const OrderPage = () => { | ||
1400 | '' | 1400 | '' |
1401 | )} | 1401 | )} |
1402 | 1402 | ||
1403 | - {optRecord.subPath?.includes('confirmReissue_old') ? ( | 1403 | + {optRecord.paths?.includes('confirmReissue_old') ? ( |
1404 | <Button | 1404 | <Button |
1405 | className="p-0" | 1405 | className="p-0" |
1406 | type="link" | 1406 | type="link" |
@@ -1416,7 +1416,7 @@ const OrderPage = () => { | @@ -1416,7 +1416,7 @@ const OrderPage = () => { | ||
1416 | ) : ( | 1416 | ) : ( |
1417 | '' | 1417 | '' |
1418 | )} | 1418 | )} |
1419 | - {optRecord.subPath?.includes('confirmReissue') ? ( | 1419 | + {optRecord.paths?.includes('confirmReissue') ? ( |
1420 | <Button | 1420 | <Button |
1421 | className="p-0" | 1421 | className="p-0" |
1422 | type="link" | 1422 | type="link" |
@@ -1433,7 +1433,7 @@ const OrderPage = () => { | @@ -1433,7 +1433,7 @@ const OrderPage = () => { | ||
1433 | '' | 1433 | '' |
1434 | )} | 1434 | )} |
1435 | 1435 | ||
1436 | - {optRecord.subPath?.includes('leaderAudit') ? ( | 1436 | + {optRecord.paths?.includes('leaderAudit') ? ( |
1437 | <Button | 1437 | <Button |
1438 | className="p-0" | 1438 | className="p-0" |
1439 | type="link" | 1439 | type="link" |
@@ -1450,7 +1450,7 @@ const OrderPage = () => { | @@ -1450,7 +1450,7 @@ const OrderPage = () => { | ||
1450 | '' | 1450 | '' |
1451 | )} | 1451 | )} |
1452 | 1452 | ||
1453 | - {optRecord.subPath?.includes('creditAudit') ? ( | 1453 | + {optRecord.paths?.includes('creditAudit') ? ( |
1454 | <Button | 1454 | <Button |
1455 | className="p-0" | 1455 | className="p-0" |
1456 | type="link" | 1456 | type="link" |
@@ -1467,7 +1467,7 @@ const OrderPage = () => { | @@ -1467,7 +1467,7 @@ const OrderPage = () => { | ||
1467 | '' | 1467 | '' |
1468 | )} | 1468 | )} |
1469 | 1469 | ||
1470 | - {optRecord.subPath?.includes('auditPaymentReceipt') ? ( | 1470 | + {optRecord.paths?.includes('auditPaymentReceipt') ? ( |
1471 | <Button | 1471 | <Button |
1472 | className="p-0" | 1472 | className="p-0" |
1473 | type="link" | 1473 | type="link" |
@@ -1483,7 +1483,7 @@ const OrderPage = () => { | @@ -1483,7 +1483,7 @@ const OrderPage = () => { | ||
1483 | '' | 1483 | '' |
1484 | )} | 1484 | )} |
1485 | 1485 | ||
1486 | - {optRecord.subPath?.includes('modifiedAuditRequest') ? ( | 1486 | + {optRecord.paths?.includes('modifiedAuditRequest') ? ( |
1487 | <Button | 1487 | <Button |
1488 | className="p-0" | 1488 | className="p-0" |
1489 | type="link" | 1489 | type="link" |
@@ -1499,7 +1499,7 @@ const OrderPage = () => { | @@ -1499,7 +1499,7 @@ const OrderPage = () => { | ||
1499 | '' | 1499 | '' |
1500 | )} | 1500 | )} |
1501 | 1501 | ||
1502 | - {optRecord.subPath?.includes('applyModify') ? ( | 1502 | + {optRecord.paths?.includes('applyModify') ? ( |
1503 | <Button | 1503 | <Button |
1504 | className="p-0" | 1504 | className="p-0" |
1505 | type="link" | 1505 | type="link" |
@@ -1515,7 +1515,7 @@ const OrderPage = () => { | @@ -1515,7 +1515,7 @@ const OrderPage = () => { | ||
1515 | '' | 1515 | '' |
1516 | )} | 1516 | )} |
1517 | 1517 | ||
1518 | - {optRecord.subPath?.includes('modifiedLeaderAuditRequest') ? ( | 1518 | + {optRecord.paths?.includes('modifiedLeaderAuditRequest') ? ( |
1519 | <Button | 1519 | <Button |
1520 | className="p-0" | 1520 | className="p-0" |
1521 | type="link" | 1521 | type="link" |
@@ -1531,7 +1531,7 @@ const OrderPage = () => { | @@ -1531,7 +1531,7 @@ const OrderPage = () => { | ||
1531 | '' | 1531 | '' |
1532 | )} | 1532 | )} |
1533 | 1533 | ||
1534 | - {optRecord.subPath?.includes('shippingWarehouseChangeRequest') ? ( | 1534 | + {optRecord.paths?.includes('shippingWarehouseChangeRequest') ? ( |
1535 | <Button | 1535 | <Button |
1536 | className="p-0" | 1536 | className="p-0" |
1537 | type="link" | 1537 | type="link" |
@@ -1547,7 +1547,7 @@ const OrderPage = () => { | @@ -1547,7 +1547,7 @@ const OrderPage = () => { | ||
1547 | '' | 1547 | '' |
1548 | )} | 1548 | )} |
1549 | 1549 | ||
1550 | - {optRecord.subPath?.includes('saleCancelInvoicing_old') ? ( | 1550 | + {optRecord.paths?.includes('saleCancelInvoicing_old') ? ( |
1551 | <ButtonConfirm | 1551 | <ButtonConfirm |
1552 | className="p-0" | 1552 | className="p-0" |
1553 | title="确认取消申请开票?" | 1553 | title="确认取消申请开票?" |
@@ -1568,7 +1568,7 @@ const OrderPage = () => { | @@ -1568,7 +1568,7 @@ const OrderPage = () => { | ||
1568 | ) : ( | 1568 | ) : ( |
1569 | '' | 1569 | '' |
1570 | )} | 1570 | )} |
1571 | - {optRecord.subPath?.includes('saleCancelInvoicing') ? ( | 1571 | + {optRecord.paths?.includes('saleCancelInvoicing') ? ( |
1572 | <ButtonConfirm | 1572 | <ButtonConfirm |
1573 | className="p-0" | 1573 | className="p-0" |
1574 | title="确认取消申请开票?" | 1574 | title="确认取消申请开票?" |
@@ -1589,7 +1589,7 @@ const OrderPage = () => { | @@ -1589,7 +1589,7 @@ const OrderPage = () => { | ||
1589 | ) : ( | 1589 | ) : ( |
1590 | '' | 1590 | '' |
1591 | )} | 1591 | )} |
1592 | - {optRecord.subPath?.includes('noNeedInvoicingEdit') ? ( | 1592 | + {optRecord.paths?.includes('noNeedInvoicingEdit') ? ( |
1593 | <Button | 1593 | <Button |
1594 | className="p-0" | 1594 | className="p-0" |
1595 | type="link" | 1595 | type="link" |
@@ -1604,7 +1604,7 @@ const OrderPage = () => { | @@ -1604,7 +1604,7 @@ const OrderPage = () => { | ||
1604 | ) : ( | 1604 | ) : ( |
1605 | '' | 1605 | '' |
1606 | )} | 1606 | )} |
1607 | - {optRecord.subPath?.includes('sendProduct') ? ( | 1607 | + {optRecord.paths?.includes('sendProduct') ? ( |
1608 | <Button | 1608 | <Button |
1609 | className="p-0" | 1609 | className="p-0" |
1610 | type="link" | 1610 | type="link" |
@@ -1621,7 +1621,7 @@ const OrderPage = () => { | @@ -1621,7 +1621,7 @@ const OrderPage = () => { | ||
1621 | '' | 1621 | '' |
1622 | )} | 1622 | )} |
1623 | 1623 | ||
1624 | - {optRecord.subPath?.includes('supplierSendOrder') ? ( | 1624 | + {optRecord.paths?.includes('supplierSendOrder') ? ( |
1625 | <Button | 1625 | <Button |
1626 | className="p-0" | 1626 | className="p-0" |
1627 | type="link" | 1627 | type="link" |
@@ -1639,7 +1639,7 @@ const OrderPage = () => { | @@ -1639,7 +1639,7 @@ const OrderPage = () => { | ||
1639 | '' | 1639 | '' |
1640 | )} | 1640 | )} |
1641 | 1641 | ||
1642 | - {optRecord.subPath?.includes('procureSend') ? ( | 1642 | + {optRecord.paths?.includes('procureSend') ? ( |
1643 | <Button | 1643 | <Button |
1644 | className="p-0" | 1644 | className="p-0" |
1645 | type="link" | 1645 | type="link" |
@@ -1656,7 +1656,7 @@ const OrderPage = () => { | @@ -1656,7 +1656,7 @@ const OrderPage = () => { | ||
1656 | '' | 1656 | '' |
1657 | )} | 1657 | )} |
1658 | 1658 | ||
1659 | - {optRecord.subPath?.includes('editProductionTime') ? ( | 1659 | + {optRecord.paths?.includes('editProductionTime') ? ( |
1660 | <Button | 1660 | <Button |
1661 | className="p-0" | 1661 | className="p-0" |
1662 | type="link" | 1662 | type="link" |
@@ -1671,7 +1671,7 @@ const OrderPage = () => { | @@ -1671,7 +1671,7 @@ const OrderPage = () => { | ||
1671 | '' | 1671 | '' |
1672 | )} | 1672 | )} |
1673 | 1673 | ||
1674 | - {optRecord.subPath?.includes('queryAnnex') && | 1674 | + {optRecord.paths?.includes('queryAnnex') && |
1675 | optRecord.listAnnex?.length > 0 ? ( | 1675 | optRecord.listAnnex?.length > 0 ? ( |
1676 | <Button | 1676 | <Button |
1677 | className="p-0" | 1677 | className="p-0" |
@@ -1688,7 +1688,7 @@ const OrderPage = () => { | @@ -1688,7 +1688,7 @@ const OrderPage = () => { | ||
1688 | '' | 1688 | '' |
1689 | )} | 1689 | )} |
1690 | 1690 | ||
1691 | - {optRecord.subPath?.includes('modifySendInformation') ? ( | 1691 | + {optRecord.paths?.includes('modifySendInformation') ? ( |
1692 | <Button | 1692 | <Button |
1693 | className="p-0" | 1693 | className="p-0" |
1694 | type="link" | 1694 | type="link" |
@@ -1704,7 +1704,7 @@ const OrderPage = () => { | @@ -1704,7 +1704,7 @@ const OrderPage = () => { | ||
1704 | '' | 1704 | '' |
1705 | )} | 1705 | )} |
1706 | 1706 | ||
1707 | - {optRecord.subPath?.includes('printOrder') ? ( | 1707 | + {optRecord.paths?.includes('printOrder') ? ( |
1708 | <Button | 1708 | <Button |
1709 | className="p-0" | 1709 | className="p-0" |
1710 | type="link" | 1710 | type="link" |
@@ -1720,7 +1720,7 @@ const OrderPage = () => { | @@ -1720,7 +1720,7 @@ const OrderPage = () => { | ||
1720 | '' | 1720 | '' |
1721 | )} | 1721 | )} |
1722 | 1722 | ||
1723 | - {optRecord.subPath?.includes('supplierPrint') ? ( | 1723 | + {optRecord.paths?.includes('supplierPrint') ? ( |
1724 | <Button | 1724 | <Button |
1725 | className="p-0" | 1725 | className="p-0" |
1726 | type="link" | 1726 | type="link" |
@@ -1736,7 +1736,7 @@ const OrderPage = () => { | @@ -1736,7 +1736,7 @@ const OrderPage = () => { | ||
1736 | '' | 1736 | '' |
1737 | )} | 1737 | )} |
1738 | 1738 | ||
1739 | - {optRecord.subPath?.includes('procurePrint') ? ( | 1739 | + {optRecord.paths?.includes('procurePrint') ? ( |
1740 | <ButtonConfirm | 1740 | <ButtonConfirm |
1741 | className="p-0" | 1741 | className="p-0" |
1742 | title="确认打印?" | 1742 | title="确认打印?" |
@@ -1770,7 +1770,7 @@ const OrderPage = () => { | @@ -1770,7 +1770,7 @@ const OrderPage = () => { | ||
1770 | '' | 1770 | '' |
1771 | )} | 1771 | )} |
1772 | 1772 | ||
1773 | - {optRecord.subPath?.includes('editOrder') && false ? ( | 1773 | + {optRecord.paths?.includes('editOrder') && false ? ( |
1774 | <Button | 1774 | <Button |
1775 | className="p-0" | 1775 | className="p-0" |
1776 | type="link" | 1776 | type="link" |
@@ -1786,7 +1786,7 @@ const OrderPage = () => { | @@ -1786,7 +1786,7 @@ const OrderPage = () => { | ||
1786 | '' | 1786 | '' |
1787 | )} | 1787 | )} |
1788 | 1788 | ||
1789 | - {optRecord.subPath?.includes('invoicing') ? ( | 1789 | + {optRecord.paths?.includes('invoicing') ? ( |
1790 | <Button | 1790 | <Button |
1791 | className="p-0" | 1791 | className="p-0" |
1792 | type="link" | 1792 | type="link" |
@@ -1803,7 +1803,7 @@ const OrderPage = () => { | @@ -1803,7 +1803,7 @@ const OrderPage = () => { | ||
1803 | '' | 1803 | '' |
1804 | )} | 1804 | )} |
1805 | 1805 | ||
1806 | - {optRecord.subPath?.includes('applyInvoicing') ? ( | 1806 | + {optRecord.paths?.includes('applyInvoicing') ? ( |
1807 | <Button | 1807 | <Button |
1808 | className="p-0" | 1808 | className="p-0" |
1809 | type="link" | 1809 | type="link" |
@@ -1820,7 +1820,7 @@ const OrderPage = () => { | @@ -1820,7 +1820,7 @@ const OrderPage = () => { | ||
1820 | '' | 1820 | '' |
1821 | )} | 1821 | )} |
1822 | 1822 | ||
1823 | - {optRecord.subPath?.includes('applyInvoicing_old') ? ( | 1823 | + {optRecord.paths?.includes('applyInvoicing_old') ? ( |
1824 | <Button | 1824 | <Button |
1825 | className="p-0" | 1825 | className="p-0" |
1826 | type="link" | 1826 | type="link" |
@@ -1837,7 +1837,7 @@ const OrderPage = () => { | @@ -1837,7 +1837,7 @@ const OrderPage = () => { | ||
1837 | '' | 1837 | '' |
1838 | )} | 1838 | )} |
1839 | 1839 | ||
1840 | - {optRecord.subPath?.includes('checkOrder') ? ( | 1840 | + {optRecord.paths?.includes('checkOrder') ? ( |
1841 | <Button | 1841 | <Button |
1842 | className="p-0" | 1842 | className="p-0" |
1843 | type="link" | 1843 | type="link" |
@@ -1854,7 +1854,7 @@ const OrderPage = () => { | @@ -1854,7 +1854,7 @@ const OrderPage = () => { | ||
1854 | '' | 1854 | '' |
1855 | )} | 1855 | )} |
1856 | 1856 | ||
1857 | - {optRecord.subPath?.includes('afterSalesCheck') ? ( | 1857 | + {optRecord.paths?.includes('afterSalesCheck') ? ( |
1858 | <Button | 1858 | <Button |
1859 | className="p-0" | 1859 | className="p-0" |
1860 | type="link" | 1860 | type="link" |
@@ -1870,7 +1870,7 @@ const OrderPage = () => { | @@ -1870,7 +1870,7 @@ const OrderPage = () => { | ||
1870 | '' | 1870 | '' |
1871 | )} | 1871 | )} |
1872 | 1872 | ||
1873 | - {optRecord.subPath?.includes('financeCheckOrder') ? ( | 1873 | + {optRecord.paths?.includes('financeCheckOrder') ? ( |
1874 | <Button | 1874 | <Button |
1875 | className="p-0" | 1875 | className="p-0" |
1876 | type="link" | 1876 | type="link" |
@@ -1886,7 +1886,7 @@ const OrderPage = () => { | @@ -1886,7 +1886,7 @@ const OrderPage = () => { | ||
1886 | '' | 1886 | '' |
1887 | )} | 1887 | )} |
1888 | 1888 | ||
1889 | - {optRecord.subPath?.includes('procureCheckOrder') ? ( | 1889 | + {optRecord.paths?.includes('procureCheckOrder') ? ( |
1890 | <Button | 1890 | <Button |
1891 | className="p-0" | 1891 | className="p-0" |
1892 | type="link" | 1892 | type="link" |
@@ -1902,7 +1902,7 @@ const OrderPage = () => { | @@ -1902,7 +1902,7 @@ const OrderPage = () => { | ||
1902 | '' | 1902 | '' |
1903 | )} | 1903 | )} |
1904 | 1904 | ||
1905 | - {optRecord.subPath?.includes('procureConvertProcure') ? ( | 1905 | + {optRecord.paths?.includes('procureConvertProcure') ? ( |
1906 | <Button | 1906 | <Button |
1907 | className="p-0" | 1907 | className="p-0" |
1908 | type="link" | 1908 | type="link" |
@@ -1918,7 +1918,7 @@ const OrderPage = () => { | @@ -1918,7 +1918,7 @@ const OrderPage = () => { | ||
1918 | '' | 1918 | '' |
1919 | )} | 1919 | )} |
1920 | 1920 | ||
1921 | - {optRecord.subPath?.includes('rePrintOrder') ? ( | 1921 | + {optRecord.paths?.includes('rePrintOrder') ? ( |
1922 | <Button | 1922 | <Button |
1923 | className="p-0" | 1923 | className="p-0" |
1924 | type="link" | 1924 | type="link" |
@@ -1934,7 +1934,7 @@ const OrderPage = () => { | @@ -1934,7 +1934,7 @@ const OrderPage = () => { | ||
1934 | '' | 1934 | '' |
1935 | )} | 1935 | )} |
1936 | 1936 | ||
1937 | - {optRecord.subPath?.includes('confirmReceipt') ? ( | 1937 | + {optRecord.paths?.includes('confirmReceipt') ? ( |
1938 | <Button | 1938 | <Button |
1939 | className="p-0" | 1939 | className="p-0" |
1940 | type="link" | 1940 | type="link" |
@@ -1949,7 +1949,7 @@ const OrderPage = () => { | @@ -1949,7 +1949,7 @@ const OrderPage = () => { | ||
1949 | '' | 1949 | '' |
1950 | )} | 1950 | )} |
1951 | 1951 | ||
1952 | - {optRecord.subPath?.includes('applyAfterSales') ? ( | 1952 | + {optRecord.paths?.includes('applyAfterSales') ? ( |
1953 | <Button | 1953 | <Button |
1954 | className="p-0" | 1954 | className="p-0" |
1955 | type="link" | 1955 | type="link" |
@@ -1965,7 +1965,7 @@ const OrderPage = () => { | @@ -1965,7 +1965,7 @@ const OrderPage = () => { | ||
1965 | '' | 1965 | '' |
1966 | )} | 1966 | )} |
1967 | 1967 | ||
1968 | - {optRecord.subPath?.includes('procureOrder') ? ( | 1968 | + {optRecord.paths?.includes('procureOrder') ? ( |
1969 | <ButtonConfirm | 1969 | <ButtonConfirm |
1970 | className="p-0" | 1970 | className="p-0" |
1971 | title="是否已下单?" | 1971 | title="是否已下单?" |
@@ -1985,7 +1985,7 @@ const OrderPage = () => { | @@ -1985,7 +1985,7 @@ const OrderPage = () => { | ||
1985 | '' | 1985 | '' |
1986 | )} | 1986 | )} |
1987 | 1987 | ||
1988 | - {optRecord.subPath?.includes('cancelSend') ? ( | 1988 | + {optRecord.paths?.includes('cancelSend') ? ( |
1989 | <ButtonConfirm | 1989 | <ButtonConfirm |
1990 | className="p-0" | 1990 | className="p-0" |
1991 | title="是否取消发货" | 1991 | title="是否取消发货" |
@@ -2005,7 +2005,7 @@ const OrderPage = () => { | @@ -2005,7 +2005,7 @@ const OrderPage = () => { | ||
2005 | '' | 2005 | '' |
2006 | )} | 2006 | )} |
2007 | 2007 | ||
2008 | - {optRecord.subPath?.includes('noNeedSend') ? ( | 2008 | + {optRecord.paths?.includes('noNeedSend') ? ( |
2009 | <ButtonConfirm | 2009 | <ButtonConfirm |
2010 | className="p-0" | 2010 | className="p-0" |
2011 | title="此订单是否无需发货?" | 2011 | title="此订单是否无需发货?" |
@@ -2025,7 +2025,7 @@ const OrderPage = () => { | @@ -2025,7 +2025,7 @@ const OrderPage = () => { | ||
2025 | '' | 2025 | '' |
2026 | )} | 2026 | )} |
2027 | 2027 | ||
2028 | - {optRecord.subPath?.includes('viewImages') ? ( | 2028 | + {optRecord.paths?.includes('viewImages') ? ( |
2029 | <Button | 2029 | <Button |
2030 | className="p-0" | 2030 | className="p-0" |
2031 | type="link" | 2031 | type="link" |
@@ -2041,7 +2041,7 @@ const OrderPage = () => { | @@ -2041,7 +2041,7 @@ const OrderPage = () => { | ||
2041 | '' | 2041 | '' |
2042 | )} | 2042 | )} |
2043 | 2043 | ||
2044 | - {optRecord.subPath?.includes('confirmDeliver') ? ( | 2044 | + {optRecord.paths?.includes('confirmDeliver') ? ( |
2045 | <Button | 2045 | <Button |
2046 | className="p-0" | 2046 | className="p-0" |
2047 | type="link" | 2047 | type="link" |
@@ -2057,7 +2057,7 @@ const OrderPage = () => { | @@ -2057,7 +2057,7 @@ const OrderPage = () => { | ||
2057 | '' | 2057 | '' |
2058 | )} | 2058 | )} |
2059 | 2059 | ||
2060 | - {optRecord.subPath?.includes('orderCancel') ? ( | 2060 | + {optRecord.paths?.includes('orderCancel') ? ( |
2061 | <ButtonConfirm | 2061 | <ButtonConfirm |
2062 | className="p-0" | 2062 | className="p-0" |
2063 | title="确认作废?" | 2063 | title="确认作废?" |
@@ -2677,7 +2677,7 @@ const OrderPage = () => { | @@ -2677,7 +2677,7 @@ const OrderPage = () => { | ||
2677 | <Flex justify="flex-end"> | 2677 | <Flex justify="flex-end"> |
2678 | <Space.Compact direction="vertical" align="end"> | 2678 | <Space.Compact direction="vertical" align="end"> |
2679 | <Space wrap> | 2679 | <Space wrap> |
2680 | - {record.mainPath?.includes('postAudit') ? ( | 2680 | + {record.paths?.includes('postAudit') ? ( |
2681 | <Button | 2681 | <Button |
2682 | className="p-0" | 2682 | className="p-0" |
2683 | type="link" | 2683 | type="link" |
@@ -2693,7 +2693,7 @@ const OrderPage = () => { | @@ -2693,7 +2693,7 @@ const OrderPage = () => { | ||
2693 | ) : ( | 2693 | ) : ( |
2694 | '' | 2694 | '' |
2695 | )} | 2695 | )} |
2696 | - {record.mainPath?.includes('URGENT_INVOICE_AUDITING') ? ( | 2696 | + {record.paths?.includes('URGENT_INVOICE_AUDITING') ? ( |
2697 | <Button | 2697 | <Button |
2698 | className="p-0" | 2698 | className="p-0" |
2699 | type="link" | 2699 | type="link" |
@@ -2708,7 +2708,7 @@ const OrderPage = () => { | @@ -2708,7 +2708,7 @@ const OrderPage = () => { | ||
2708 | ) : ( | 2708 | ) : ( |
2709 | '' | 2709 | '' |
2710 | )} | 2710 | )} |
2711 | - {record.mainPath?.includes('URGENT_INVOICE_AUDITING_old') ? ( | 2711 | + {record.paths?.includes('URGENT_INVOICE_AUDITING_old') ? ( |
2712 | <Button | 2712 | <Button |
2713 | className="p-0" | 2713 | className="p-0" |
2714 | type="link" | 2714 | type="link" |
@@ -2725,7 +2725,7 @@ const OrderPage = () => { | @@ -2725,7 +2725,7 @@ const OrderPage = () => { | ||
2725 | ) : ( | 2725 | ) : ( |
2726 | '' | 2726 | '' |
2727 | )} | 2727 | )} |
2728 | - {record.mainPath?.includes('salesConfirm') && ( | 2728 | + {record.paths?.includes('salesConfirm') && ( |
2729 | <ButtonConfirm | 2729 | <ButtonConfirm |
2730 | className="p-0" | 2730 | className="p-0" |
2731 | title="是否确认此商城订单信息无误?确认无误之后订单将进入审核流程。" | 2731 | title="是否确认此商城订单信息无误?确认无误之后订单将进入审核流程。" |
@@ -2756,7 +2756,7 @@ const OrderPage = () => { | @@ -2756,7 +2756,7 @@ const OrderPage = () => { | ||
2756 | }} | 2756 | }} |
2757 | /> | 2757 | /> |
2758 | )} | 2758 | )} |
2759 | - {record.mainPath?.includes('uploadPaymentReceiptBill') ? ( | 2759 | + {record.paths?.includes('uploadPaymentReceiptBill') ? ( |
2760 | <Button | 2760 | <Button |
2761 | className="p-0" | 2761 | className="p-0" |
2762 | type="link" | 2762 | type="link" |
@@ -2771,7 +2771,7 @@ const OrderPage = () => { | @@ -2771,7 +2771,7 @@ const OrderPage = () => { | ||
2771 | '' | 2771 | '' |
2772 | )} | 2772 | )} |
2773 | 2773 | ||
2774 | - {record.mainPath?.includes('modifiedAuditRequest') ? ( | 2774 | + {record.paths?.includes('modifiedAuditRequest') ? ( |
2775 | <Button | 2775 | <Button |
2776 | className="p-0" | 2776 | className="p-0" |
2777 | type="link" | 2777 | type="link" |
@@ -2787,7 +2787,7 @@ const OrderPage = () => { | @@ -2787,7 +2787,7 @@ const OrderPage = () => { | ||
2787 | '' | 2787 | '' |
2788 | )} | 2788 | )} |
2789 | 2789 | ||
2790 | - {record.mainPath?.includes('auditPaymentReceipt') ? ( | 2790 | + {record.paths?.includes('auditPaymentReceipt') ? ( |
2791 | <Button | 2791 | <Button |
2792 | className="p-0" | 2792 | className="p-0" |
2793 | type="link" | 2793 | type="link" |
@@ -2803,7 +2803,7 @@ const OrderPage = () => { | @@ -2803,7 +2803,7 @@ const OrderPage = () => { | ||
2803 | '' | 2803 | '' |
2804 | )} | 2804 | )} |
2805 | 2805 | ||
2806 | - {record.mainPath?.includes('modifiedLeaderAuditRequest') ? ( | 2806 | + {record.paths?.includes('modifiedLeaderAuditRequest') ? ( |
2807 | <Button | 2807 | <Button |
2808 | className="p-0" | 2808 | className="p-0" |
2809 | type="link" | 2809 | type="link" |
@@ -2835,7 +2835,7 @@ const OrderPage = () => { | @@ -2835,7 +2835,7 @@ const OrderPage = () => { | ||
2835 | '' | 2835 | '' |
2836 | )} | 2836 | )} |
2837 | 2837 | ||
2838 | - {record.mainPath?.includes('reissue_old') ? ( | 2838 | + {record.paths?.includes('reissue_old') ? ( |
2839 | /*optRecord.afterInvoicingStatus==='PARTIAL_INVOICING'|| | 2839 | /*optRecord.afterInvoicingStatus==='PARTIAL_INVOICING'|| |
2840 | optRecord.afterInvoicingStatus==='COMPLETE_INVOICING'*/ | 2840 | optRecord.afterInvoicingStatus==='COMPLETE_INVOICING'*/ |
2841 | <Button | 2841 | <Button |
@@ -2853,7 +2853,7 @@ const OrderPage = () => { | @@ -2853,7 +2853,7 @@ const OrderPage = () => { | ||
2853 | '' | 2853 | '' |
2854 | )} | 2854 | )} |
2855 | 2855 | ||
2856 | - {record.mainPath?.includes('confirmReissue_old') ? ( | 2856 | + {record.paths?.includes('confirmReissue_old') ? ( |
2857 | <Button | 2857 | <Button |
2858 | className="p-0" | 2858 | className="p-0" |
2859 | type="link" | 2859 | type="link" |
@@ -2870,7 +2870,7 @@ const OrderPage = () => { | @@ -2870,7 +2870,7 @@ const OrderPage = () => { | ||
2870 | '' | 2870 | '' |
2871 | )} | 2871 | )} |
2872 | 2872 | ||
2873 | - {record.mainPath?.includes('reissue') ? ( | 2873 | + {record.paths?.includes('reissue') ? ( |
2874 | /*optRecord.afterInvoicingStatus==='PARTIAL_INVOICING'|| | 2874 | /*optRecord.afterInvoicingStatus==='PARTIAL_INVOICING'|| |
2875 | optRecord.afterInvoicingStatus==='COMPLETE_INVOICING'*/ | 2875 | optRecord.afterInvoicingStatus==='COMPLETE_INVOICING'*/ |
2876 | <Button | 2876 | <Button |
@@ -2887,7 +2887,7 @@ const OrderPage = () => { | @@ -2887,7 +2887,7 @@ const OrderPage = () => { | ||
2887 | '' | 2887 | '' |
2888 | )} | 2888 | )} |
2889 | 2889 | ||
2890 | - {record.mainPath?.includes('confirmReissue') ? ( | 2890 | + {record.paths?.includes('confirmReissue') ? ( |
2891 | <Button | 2891 | <Button |
2892 | className="p-0" | 2892 | className="p-0" |
2893 | type="link" | 2893 | type="link" |
@@ -2904,7 +2904,7 @@ const OrderPage = () => { | @@ -2904,7 +2904,7 @@ const OrderPage = () => { | ||
2904 | '' | 2904 | '' |
2905 | )} | 2905 | )} |
2906 | 2906 | ||
2907 | - {record.mainPath?.includes('procureOrder') ? ( | 2907 | + {record.paths?.includes('procureOrder') ? ( |
2908 | <ButtonConfirm | 2908 | <ButtonConfirm |
2909 | className="p-0" | 2909 | className="p-0" |
2910 | title="是否下单?" | 2910 | title="是否下单?" |
@@ -2936,7 +2936,7 @@ const OrderPage = () => { | @@ -2936,7 +2936,7 @@ const OrderPage = () => { | ||
2936 | '' | 2936 | '' |
2937 | )} | 2937 | )} |
2938 | 2938 | ||
2939 | - {record.mainPath?.includes('cancelSend') ? ( | 2939 | + {record.paths?.includes('cancelSend') ? ( |
2940 | <ButtonConfirm | 2940 | <ButtonConfirm |
2941 | className="p-0" | 2941 | className="p-0" |
2942 | title="是否取消发货?" | 2942 | title="是否取消发货?" |
@@ -2968,7 +2968,7 @@ const OrderPage = () => { | @@ -2968,7 +2968,7 @@ const OrderPage = () => { | ||
2968 | '' | 2968 | '' |
2969 | )} | 2969 | )} |
2970 | 2970 | ||
2971 | - {record.mainPath?.includes('applyModify') ? ( | 2971 | + {record.paths?.includes('applyModify') ? ( |
2972 | <Button | 2972 | <Button |
2973 | className="p-0" | 2973 | className="p-0" |
2974 | type="link" | 2974 | type="link" |
@@ -2984,7 +2984,7 @@ const OrderPage = () => { | @@ -2984,7 +2984,7 @@ const OrderPage = () => { | ||
2984 | '' | 2984 | '' |
2985 | )} | 2985 | )} |
2986 | 2986 | ||
2987 | - {record.mainPath?.includes('leaderAudit') ? ( | 2987 | + {record.paths?.includes('leaderAudit') ? ( |
2988 | <Button | 2988 | <Button |
2989 | className="p-0" | 2989 | className="p-0" |
2990 | type="link" | 2990 | type="link" |
@@ -3016,7 +3016,7 @@ const OrderPage = () => { | @@ -3016,7 +3016,7 @@ const OrderPage = () => { | ||
3016 | '' | 3016 | '' |
3017 | )} | 3017 | )} |
3018 | 3018 | ||
3019 | - {record.mainPath?.includes('changeOrderAudit') ? ( | 3019 | + {record.paths?.includes('changeOrderAudit') ? ( |
3020 | <Button | 3020 | <Button |
3021 | className="p-0" | 3021 | className="p-0" |
3022 | type="link" | 3022 | type="link" |
@@ -3050,7 +3050,7 @@ const OrderPage = () => { | @@ -3050,7 +3050,7 @@ const OrderPage = () => { | ||
3050 | '' | 3050 | '' |
3051 | )} | 3051 | )} |
3052 | 3052 | ||
3053 | - {record.mainPath?.includes('creditAudit') ? ( | 3053 | + {record.paths?.includes('creditAudit') ? ( |
3054 | <Button | 3054 | <Button |
3055 | className="p-0" | 3055 | className="p-0" |
3056 | type="link" | 3056 | type="link" |
@@ -3082,7 +3082,7 @@ const OrderPage = () => { | @@ -3082,7 +3082,7 @@ const OrderPage = () => { | ||
3082 | '' | 3082 | '' |
3083 | )} | 3083 | )} |
3084 | 3084 | ||
3085 | - {record.mainPath?.includes('editProductionTime') ? ( | 3085 | + {record.paths?.includes('editProductionTime') ? ( |
3086 | <Button | 3086 | <Button |
3087 | className="p-0" | 3087 | className="p-0" |
3088 | type="link" | 3088 | type="link" |
@@ -3097,7 +3097,7 @@ const OrderPage = () => { | @@ -3097,7 +3097,7 @@ const OrderPage = () => { | ||
3097 | '' | 3097 | '' |
3098 | )} | 3098 | )} |
3099 | 3099 | ||
3100 | - {record.mainPath?.includes('procureConvertProcure') ? ( | 3100 | + {record.paths?.includes('procureConvertProcure') ? ( |
3101 | <Button | 3101 | <Button |
3102 | className="p-0" | 3102 | className="p-0" |
3103 | type="link" | 3103 | type="link" |
@@ -3111,7 +3111,7 @@ const OrderPage = () => { | @@ -3111,7 +3111,7 @@ const OrderPage = () => { | ||
3111 | 3111 | ||
3112 | for (let i = 0; i < selectedSubOrders.length; i++) { | 3112 | for (let i = 0; i < selectedSubOrders.length; i++) { |
3113 | if ( | 3113 | if ( |
3114 | - !selectedSubOrders[i].subPath.includes( | 3114 | + !selectedSubOrders[i].paths.includes( |
3115 | 'procureConvertProcure', | 3115 | 'procureConvertProcure', |
3116 | ) | 3116 | ) |
3117 | ) { | 3117 | ) { |
@@ -3129,7 +3129,7 @@ const OrderPage = () => { | @@ -3129,7 +3129,7 @@ const OrderPage = () => { | ||
3129 | ) : ( | 3129 | ) : ( |
3130 | '' | 3130 | '' |
3131 | )} | 3131 | )} |
3132 | - {record.mainPath?.includes('sendProduct') ? ( | 3132 | + {record.paths?.includes('sendProduct') ? ( |
3133 | <Button | 3133 | <Button |
3134 | className="p-0" | 3134 | className="p-0" |
3135 | type="link" | 3135 | type="link" |
@@ -3150,7 +3150,7 @@ const OrderPage = () => { | @@ -3150,7 +3150,7 @@ const OrderPage = () => { | ||
3150 | )} | 3150 | )} |
3151 | 3151 | ||
3152 | {/* 供应商发货 */} | 3152 | {/* 供应商发货 */} |
3153 | - {record.mainPath?.includes('supplierSendOrder') ? ( | 3153 | + {record.paths?.includes('supplierSendOrder') ? ( |
3154 | <Button | 3154 | <Button |
3155 | className="p-0" | 3155 | className="p-0" |
3156 | type="link" | 3156 | type="link" |
@@ -3170,7 +3170,7 @@ const OrderPage = () => { | @@ -3170,7 +3170,7 @@ const OrderPage = () => { | ||
3170 | '' | 3170 | '' |
3171 | )} | 3171 | )} |
3172 | 3172 | ||
3173 | - {record.mainPath?.includes('procureSend') ? ( | 3173 | + {record.paths?.includes('procureSend') ? ( |
3174 | <Button | 3174 | <Button |
3175 | className="p-0" | 3175 | className="p-0" |
3176 | type="link" | 3176 | type="link" |
@@ -3190,7 +3190,7 @@ const OrderPage = () => { | @@ -3190,7 +3190,7 @@ const OrderPage = () => { | ||
3190 | '' | 3190 | '' |
3191 | )} | 3191 | )} |
3192 | 3192 | ||
3193 | - {record.mainPath?.includes('printOrder') ? ( | 3193 | + {record.paths?.includes('printOrder') ? ( |
3194 | <Button | 3194 | <Button |
3195 | className="p-0" | 3195 | className="p-0" |
3196 | type="link" | 3196 | type="link" |
@@ -3203,8 +3203,8 @@ const OrderPage = () => { | @@ -3203,8 +3203,8 @@ const OrderPage = () => { | ||
3203 | } | 3203 | } |
3204 | 3204 | ||
3205 | for (let subOrderRecord of selectedSubOrders) { | 3205 | for (let subOrderRecord of selectedSubOrders) { |
3206 | - let subPath = subOrderRecord.subPath; | ||
3207 | - if (!checkePrintable(subPath)) { | 3206 | + let paths = subOrderRecord.paths; |
3207 | + if (!checkePrintable(paths)) { | ||
3208 | return message.error('请选择可以打印的子订单'); | 3208 | return message.error('请选择可以打印的子订单'); |
3209 | } | 3209 | } |
3210 | } | 3210 | } |
@@ -3219,7 +3219,7 @@ const OrderPage = () => { | @@ -3219,7 +3219,7 @@ const OrderPage = () => { | ||
3219 | '' | 3219 | '' |
3220 | )} | 3220 | )} |
3221 | 3221 | ||
3222 | - {record.mainPath?.includes('supplierPrint') ? ( | 3222 | + {record.paths?.includes('supplierPrint') ? ( |
3223 | <Button | 3223 | <Button |
3224 | className="p-0" | 3224 | className="p-0" |
3225 | type="link" | 3225 | type="link" |
@@ -3239,7 +3239,7 @@ const OrderPage = () => { | @@ -3239,7 +3239,7 @@ const OrderPage = () => { | ||
3239 | '' | 3239 | '' |
3240 | )} | 3240 | )} |
3241 | 3241 | ||
3242 | - {record.mainPath?.includes('rePrintOrder') ? ( | 3242 | + {record.paths?.includes('rePrintOrder') ? ( |
3243 | <Button | 3243 | <Button |
3244 | className="p-0" | 3244 | className="p-0" |
3245 | type="link" | 3245 | type="link" |
@@ -3257,7 +3257,7 @@ const OrderPage = () => { | @@ -3257,7 +3257,7 @@ const OrderPage = () => { | ||
3257 | ) : ( | 3257 | ) : ( |
3258 | '' | 3258 | '' |
3259 | )} | 3259 | )} |
3260 | - {record.mainPath?.includes('confirmReceipt') ? ( | 3260 | + {record.paths?.includes('confirmReceipt') ? ( |
3261 | <Button | 3261 | <Button |
3262 | className="p-0" | 3262 | className="p-0" |
3263 | type="link" | 3263 | type="link" |
@@ -3271,7 +3271,7 @@ const OrderPage = () => { | @@ -3271,7 +3271,7 @@ const OrderPage = () => { | ||
3271 | ) : ( | 3271 | ) : ( |
3272 | '' | 3272 | '' |
3273 | )} | 3273 | )} |
3274 | - {record.mainPath?.includes('modifySendInformation') ? ( | 3274 | + {record.paths?.includes('modifySendInformation') ? ( |
3275 | <Button | 3275 | <Button |
3276 | className="p-0" | 3276 | className="p-0" |
3277 | type="link" | 3277 | type="link" |
@@ -3301,7 +3301,7 @@ const OrderPage = () => { | @@ -3301,7 +3301,7 @@ const OrderPage = () => { | ||
3301 | ) : ( | 3301 | ) : ( |
3302 | '' | 3302 | '' |
3303 | )} | 3303 | )} |
3304 | - {record.mainPath?.includes('invoicing') ? ( | 3304 | + {record.paths?.includes('invoicing') ? ( |
3305 | <Button | 3305 | <Button |
3306 | type="link" | 3306 | type="link" |
3307 | className="p-0" | 3307 | className="p-0" |
@@ -3317,7 +3317,7 @@ const OrderPage = () => { | @@ -3317,7 +3317,7 @@ const OrderPage = () => { | ||
3317 | '' | 3317 | '' |
3318 | )} | 3318 | )} |
3319 | 3319 | ||
3320 | - {record.mainPath?.includes('applyInvoicing_old') ? ( | 3320 | + {record.paths?.includes('applyInvoicing_old') ? ( |
3321 | <Button | 3321 | <Button |
3322 | type="link" | 3322 | type="link" |
3323 | className="p-0" | 3323 | className="p-0" |
@@ -3354,7 +3354,7 @@ const OrderPage = () => { | @@ -3354,7 +3354,7 @@ const OrderPage = () => { | ||
3354 | '' | 3354 | '' |
3355 | )} | 3355 | )} |
3356 | 3356 | ||
3357 | - {record.mainPath?.includes('applyInvoicing') ? ( | 3357 | + {record.paths?.includes('applyInvoicing') ? ( |
3358 | <Button | 3358 | <Button |
3359 | type="link" | 3359 | type="link" |
3360 | className="p-0" | 3360 | className="p-0" |
@@ -3391,7 +3391,7 @@ const OrderPage = () => { | @@ -3391,7 +3391,7 @@ const OrderPage = () => { | ||
3391 | '' | 3391 | '' |
3392 | )} | 3392 | )} |
3393 | 3393 | ||
3394 | - {record.mainPath?.includes('updateOrder') ? ( | 3394 | + {record.paths?.includes('updateOrder') ? ( |
3395 | <Button | 3395 | <Button |
3396 | className="p-0" | 3396 | className="p-0" |
3397 | type="link" | 3397 | type="link" |
@@ -3456,7 +3456,7 @@ const OrderPage = () => { | @@ -3456,7 +3456,7 @@ const OrderPage = () => { | ||
3456 | '' | 3456 | '' |
3457 | )} | 3457 | )} |
3458 | 3458 | ||
3459 | - {record?.subOrderInformationLists[0].subPath?.includes( | 3459 | + {record?.subOrderInformationLists[0].paths?.includes( |
3460 | 'noNeedInvoicingEdit', | 3460 | 'noNeedInvoicingEdit', |
3461 | ) ? ( | 3461 | ) ? ( |
3462 | <Button | 3462 | <Button |
@@ -3474,7 +3474,7 @@ const OrderPage = () => { | @@ -3474,7 +3474,7 @@ const OrderPage = () => { | ||
3474 | '' | 3474 | '' |
3475 | )} | 3475 | )} |
3476 | 3476 | ||
3477 | - {record.mainPath?.includes('checkOrder') ? ( | 3477 | + {record.paths?.includes('checkOrder') ? ( |
3478 | <Button | 3478 | <Button |
3479 | className="p-0" | 3479 | className="p-0" |
3480 | type="link" | 3480 | type="link" |
@@ -3511,7 +3511,7 @@ const OrderPage = () => { | @@ -3511,7 +3511,7 @@ const OrderPage = () => { | ||
3511 | '' | 3511 | '' |
3512 | )} | 3512 | )} |
3513 | 3513 | ||
3514 | - {record.mainPath?.includes('afterSalesCheck') ? ( | 3514 | + {record.paths?.includes('afterSalesCheck') ? ( |
3515 | <Button | 3515 | <Button |
3516 | className="p-0" | 3516 | className="p-0" |
3517 | type="link" | 3517 | type="link" |
@@ -3544,7 +3544,7 @@ const OrderPage = () => { | @@ -3544,7 +3544,7 @@ const OrderPage = () => { | ||
3544 | '' | 3544 | '' |
3545 | )} | 3545 | )} |
3546 | 3546 | ||
3547 | - {record.mainPath?.includes('noNeedSend') ? ( | 3547 | + {record.paths?.includes('noNeedSend') ? ( |
3548 | <ButtonConfirm | 3548 | <ButtonConfirm |
3549 | className="p-0" | 3549 | className="p-0" |
3550 | title="此订单是否无需发货?" | 3550 | title="此订单是否无需发货?" |
@@ -3594,7 +3594,7 @@ const OrderPage = () => { | @@ -3594,7 +3594,7 @@ const OrderPage = () => { | ||
3594 | '' | 3594 | '' |
3595 | )} | 3595 | )} |
3596 | 3596 | ||
3597 | - {record.mainPath?.includes('saleCancelInvoicing_old') ? ( | 3597 | + {record.paths?.includes('saleCancelInvoicing_old') ? ( |
3598 | <ButtonConfirm | 3598 | <ButtonConfirm |
3599 | className="p-0" | 3599 | className="p-0" |
3600 | title="确认取消申请开票?" | 3600 | title="确认取消申请开票?" |
@@ -3637,7 +3637,7 @@ const OrderPage = () => { | @@ -3637,7 +3637,7 @@ const OrderPage = () => { | ||
3637 | '' | 3637 | '' |
3638 | )} | 3638 | )} |
3639 | {/* 财务审核:主订单暂无 */} | 3639 | {/* 财务审核:主订单暂无 */} |
3640 | - {record.mainPath?.includes('financeCheckOrder') ? ( | 3640 | + {record.paths?.includes('financeCheckOrder') ? ( |
3641 | <Button | 3641 | <Button |
3642 | className="p-0" | 3642 | className="p-0" |
3643 | type="link" | 3643 | type="link" |
@@ -3675,7 +3675,7 @@ const OrderPage = () => { | @@ -3675,7 +3675,7 @@ const OrderPage = () => { | ||
3675 | )} | 3675 | )} |
3676 | 3676 | ||
3677 | {/* 采购审核 */} | 3677 | {/* 采购审核 */} |
3678 | - {record.mainPath?.includes('procureCheckOrder') ? ( | 3678 | + {record.paths?.includes('procureCheckOrder') ? ( |
3679 | <Button | 3679 | <Button |
3680 | className="p-0" | 3680 | className="p-0" |
3681 | type="link" | 3681 | type="link" |
@@ -3708,7 +3708,7 @@ const OrderPage = () => { | @@ -3708,7 +3708,7 @@ const OrderPage = () => { | ||
3708 | '' | 3708 | '' |
3709 | )} | 3709 | )} |
3710 | 3710 | ||
3711 | - {record.mainPath?.includes('applyAfterSales') ? ( | 3711 | + {record.paths?.includes('applyAfterSales') ? ( |
3712 | <Button | 3712 | <Button |
3713 | className="p-0" | 3713 | className="p-0" |
3714 | type="link" | 3714 | type="link" |
@@ -3743,7 +3743,7 @@ const OrderPage = () => { | @@ -3743,7 +3743,7 @@ const OrderPage = () => { | ||
3743 | '' | 3743 | '' |
3744 | )} | 3744 | )} |
3745 | 3745 | ||
3746 | - {/* {record.mainPath?.includes('afterSalesCompletion') ? ( | 3746 | + {/* {record.paths?.includes('afterSalesCompletion') ? ( |
3747 | <ButtonConfirm | 3747 | <ButtonConfirm |
3748 | className="p-0" | 3748 | className="p-0" |
3749 | title="售后是否已完成?" | 3749 | title="售后是否已完成?" |
@@ -3787,7 +3787,7 @@ const OrderPage = () => { | @@ -3787,7 +3787,7 @@ const OrderPage = () => { | ||
3787 | '' | 3787 | '' |
3788 | )} */} | 3788 | )} */} |
3789 | 3789 | ||
3790 | - {record.mainPath?.includes('salOrderSave') ? ( | 3790 | + {record.paths?.includes('salOrderSave') ? ( |
3791 | <ButtonConfirm | 3791 | <ButtonConfirm |
3792 | className="p-0" | 3792 | className="p-0" |
3793 | title="是否推送至金蝶ERP?" | 3793 | title="是否推送至金蝶ERP?" |
@@ -3809,7 +3809,7 @@ const OrderPage = () => { | @@ -3809,7 +3809,7 @@ const OrderPage = () => { | ||
3809 | '' | 3809 | '' |
3810 | )} | 3810 | )} |
3811 | 3811 | ||
3812 | - {record.mainPath?.includes('salBillOutbound') ? ( | 3812 | + {record.paths?.includes('salBillOutbound') ? ( |
3813 | <ButtonConfirm | 3813 | <ButtonConfirm |
3814 | className="p-0" | 3814 | className="p-0" |
3815 | title="是否下推金蝶ERP出库单?" | 3815 | title="是否下推金蝶ERP出库单?" |
@@ -3831,7 +3831,7 @@ const OrderPage = () => { | @@ -3831,7 +3831,7 @@ const OrderPage = () => { | ||
3831 | '' | 3831 | '' |
3832 | )} | 3832 | )} |
3833 | 3833 | ||
3834 | - {record.mainPath?.includes('orderCancel') ? ( | 3834 | + {record.paths?.includes('orderCancel') ? ( |
3835 | <ButtonConfirm | 3835 | <ButtonConfirm |
3836 | className="p-0" | 3836 | className="p-0" |
3837 | title="确认作废?" | 3837 | title="确认作废?" |
@@ -3854,7 +3854,7 @@ const OrderPage = () => { | @@ -3854,7 +3854,7 @@ const OrderPage = () => { | ||
3854 | '' | 3854 | '' |
3855 | )} | 3855 | )} |
3856 | 3856 | ||
3857 | - {record.mainPath?.includes('procurePrint') ? ( | 3857 | + {record.paths?.includes('procurePrint') ? ( |
3858 | <ButtonConfirm | 3858 | <ButtonConfirm |
3859 | className="p-0" | 3859 | className="p-0" |
3860 | title="确认打印?" | 3860 | title="确认打印?" |
@@ -4205,6 +4205,7 @@ const OrderPage = () => { | @@ -4205,6 +4205,7 @@ const OrderPage = () => { | ||
4205 | { | 4205 | { |
4206 | label: '加急开票审核(旧)', | 4206 | label: '加急开票审核(旧)', |
4207 | key: '2', | 4207 | key: '2', |
4208 | + disabled: true, | ||
4208 | onClick: async () => { | 4209 | onClick: async () => { |
4209 | setIsMainOrder(true); | 4210 | setIsMainOrder(true); |
4210 | setCheckVisible(true); | 4211 | setCheckVisible(true); |
@@ -4313,7 +4314,7 @@ const OrderPage = () => { | @@ -4313,7 +4314,7 @@ const OrderPage = () => { | ||
4313 | setIsMainOrder(true); | 4314 | setIsMainOrder(true); |
4314 | setApplyForInvoicingVisible(true); | 4315 | setApplyForInvoicingVisible(true); |
4315 | }} | 4316 | }} |
4316 | - disabled={selectedSubOrderKeys?.length === 0} | 4317 | + disabled={true} /*{selectedSubOrderKeys?.length === 0}*/ |
4317 | > | 4318 | > |
4318 | {roleCode === 'admin' ? '合并(销售)' : '合并开票'} | 4319 | {roleCode === 'admin' ? '合并(销售)' : '合并开票'} |
4319 | </Button>, | 4320 | </Button>, |
src/pages/Order/type.d.ts
@@ -19,7 +19,7 @@ export interface OrderListItemType { | @@ -19,7 +19,7 @@ export interface OrderListItemType { | ||
19 | goodsWeight: any; | 19 | goodsWeight: any; |
20 | receivingCompany: any; | 20 | receivingCompany: any; |
21 | modified: any; | 21 | modified: any; |
22 | - mainPath: any; | 22 | + paths: any; |
23 | totalPayment: ReactNode; | 23 | totalPayment: ReactNode; |
24 | notes: ReactNode; | 24 | notes: ReactNode; |
25 | invoiceIdentificationNumber: ReactNode; | 25 | invoiceIdentificationNumber: ReactNode; |
src/pages/User/ZoNing/components/constant.tsx deleted
100644 → 0
1 | -import { List } from 'lodash'; | ||
2 | - | ||
3 | -export type zoningItem = { | ||
4 | - id?: number; //id | ||
5 | - zoning: string; //区域名称 | ||
6 | - orderProvinceVoList: List<provinceItem>; //所包含的省份列表 | ||
7 | - orderUserVoList: List<userItem>; //所包含的销售列表 | ||
8 | -}; | ||
9 | - | ||
10 | -export type zoningShowItem = { | ||
11 | - id?: number; //id | ||
12 | - zoning: string; //区域名称 | ||
13 | - orderProvinceShowList: string; //所包含的省份列表 | ||
14 | - orderUserShowList: string; //所包含的销售列表 | ||
15 | - orderUserNumberShowList: number[]; //销售对应的uId | ||
16 | -}; | ||
17 | - | ||
18 | -export type provinceItem = { | ||
19 | - pId?: number; | ||
20 | - province: string; | ||
21 | -}; | ||
22 | - | ||
23 | -export type userItem = { | ||
24 | - uId: number; | ||
25 | - userName?: string; | ||
26 | -}; | ||
27 | - | ||
28 | -export const provinceEnum = { | ||
29 | - 全选: '全选', | ||
30 | - 北京市: '北京市', | ||
31 | - 天津市: '天津市', | ||
32 | - 河北省: '河北省', | ||
33 | - 山西省: '山西省', | ||
34 | - 内蒙古自治区: '内蒙古自治区', | ||
35 | - 辽宁省: '辽宁省', | ||
36 | - 吉林省: '吉林省', | ||
37 | - 黑龙江省: '黑龙江省', | ||
38 | - 上海市: '上海市', | ||
39 | - 江苏省: '江苏省', | ||
40 | - 浙江省: '浙江省', | ||
41 | - 安徽省: '安徽省', | ||
42 | - 福建省: '福建省', | ||
43 | - 江西省: '江西省', | ||
44 | - 山东省: '山东省', | ||
45 | - 河南省: '河南省', | ||
46 | - 湖北省: '湖北省', | ||
47 | - 湖南省: '湖南省', | ||
48 | - 广东省: '广东省', | ||
49 | - 广西壮族自治区: '广西壮族自治区', | ||
50 | - 海南省: '海南省', | ||
51 | - 重庆市: '重庆市', | ||
52 | - 四川省: '四川省', | ||
53 | - 贵州省: '贵州省', | ||
54 | - 云南省: '云南省', | ||
55 | - 西藏自治区: '西藏自治区', | ||
56 | - 陕西省: '陕西省', | ||
57 | - 甘肃省: '甘肃省', | ||
58 | - 青海省: '青海省', | ||
59 | - 宁夏回族自治区: '宁夏回族自治区', | ||
60 | - 新疆维吾尔自治区: '新疆维吾尔自治区', | ||
61 | - 台湾省: '台湾省', | ||
62 | - 香港特别行政区: '香港特别行政区', | ||
63 | - 澳门特别行政区: '澳门特别行政区', | ||
64 | -}; |
src/pages/User/ZoNing/components/modal.tsx deleted
100644 → 0
1 | -import { | ||
2 | - getOrderErpOrderZoNingSelectUserAll, | ||
3 | - postOrderErpOrderZoNingSaveOrUpdate, | ||
4 | -} from '@/services'; | ||
5 | -import { PlusOutlined } from '@ant-design/icons'; | ||
6 | -import { | ||
7 | - ModalForm, | ||
8 | - ProForm, | ||
9 | - ProFormSelect, | ||
10 | - ProFormText, | ||
11 | -} from '@ant-design/pro-components'; | ||
12 | -import { Button, Form, message } from 'antd'; | ||
13 | -import { provinceEnum, zoningItem } from './constant'; | ||
14 | -const waitTime = (time: number = 100) => { | ||
15 | - return new Promise((resolve) => { | ||
16 | - setTimeout(() => { | ||
17 | - resolve(true); | ||
18 | - }, time); | ||
19 | - }); | ||
20 | -}; | ||
21 | - | ||
22 | -export default ({ toReload, option, needEditBody }) => { | ||
23 | - const [form] = Form.useForm<zoningItem>(); | ||
24 | - | ||
25 | - return ( | ||
26 | - <ModalForm<{ | ||
27 | - zoning: string; | ||
28 | - province: string[]; | ||
29 | - user: number[]; | ||
30 | - }> | ||
31 | - title={option} | ||
32 | - trigger={ | ||
33 | - <Button type="primary" key={option.id}> | ||
34 | - {option !== '编辑' && <PlusOutlined />} | ||
35 | - {option} | ||
36 | - </Button> | ||
37 | - } | ||
38 | - form={form} | ||
39 | - autoFocusFirstInput | ||
40 | - initialValues={{ | ||
41 | - zoning: needEditBody.zoning ? needEditBody.zoning : '', | ||
42 | - province: needEditBody.orderProvinceShowList | ||
43 | - ? needEditBody.orderProvinceShowList.split('、') | ||
44 | - : [], | ||
45 | - user: needEditBody.orderUserNumberShowList | ||
46 | - ? needEditBody.orderUserNumberShowList | ||
47 | - : [], | ||
48 | - }} | ||
49 | - modalProps={{ | ||
50 | - destroyOnClose: true, | ||
51 | - }} | ||
52 | - submitTimeout={500} | ||
53 | - onFinish={async (values) => { | ||
54 | - console.log(values); | ||
55 | - const orderProvinceList = values.province.map((item) => { | ||
56 | - return { province: item }; | ||
57 | - }); | ||
58 | - const orderUserList = values.user.map((item) => { | ||
59 | - return { uId: item }; | ||
60 | - }); | ||
61 | - const fetchData: zoningItem = { | ||
62 | - zoning: values.zoning, | ||
63 | - orderProvinceVoList: orderProvinceList, | ||
64 | - orderUserVoList: orderUserList, | ||
65 | - }; | ||
66 | - let res = await postOrderErpOrderZoNingSaveOrUpdate({ | ||
67 | - data: fetchData, | ||
68 | - }); | ||
69 | - if (res) { | ||
70 | - console.log(res); | ||
71 | - await waitTime(500); | ||
72 | - console.log(values); | ||
73 | - message.success('提交成功'); | ||
74 | - toReload(); | ||
75 | - return true; | ||
76 | - } | ||
77 | - return false; | ||
78 | - }} | ||
79 | - > | ||
80 | - <ProForm.Group> | ||
81 | - <ProFormText | ||
82 | - width="lg" | ||
83 | - name="zoning" | ||
84 | - label="区域名称" | ||
85 | - placeholder="请输入" | ||
86 | - rules={[{ required: true, message: '此项为必填项' }]} | ||
87 | - /> | ||
88 | - </ProForm.Group> | ||
89 | - <ProForm.Group> | ||
90 | - <ProFormSelect | ||
91 | - name="user" | ||
92 | - width="lg" | ||
93 | - label="负责销售" | ||
94 | - request={async () => { | ||
95 | - const userList = await getOrderErpOrderZoNingSelectUserAll(); | ||
96 | - if (userList) { | ||
97 | - let userSelList = []; | ||
98 | - userList.data.forEach((item: { uId: any; userName: any }) => | ||
99 | - userSelList.push({ | ||
100 | - value: item.uId, | ||
101 | - label: item.userName, | ||
102 | - }), | ||
103 | - ); | ||
104 | - userSelList.unshift({ | ||
105 | - value: 0, | ||
106 | - label: '全选', | ||
107 | - }); | ||
108 | - return userSelList; | ||
109 | - } | ||
110 | - return []; | ||
111 | - }} | ||
112 | - fieldProps={{ | ||
113 | - mode: 'multiple', | ||
114 | - }} | ||
115 | - placeholder="请选择" | ||
116 | - rules={[ | ||
117 | - { | ||
118 | - required: true, | ||
119 | - message: '请选择!', | ||
120 | - type: 'array', | ||
121 | - }, | ||
122 | - ]} | ||
123 | - /> | ||
124 | - </ProForm.Group> | ||
125 | - <ProForm.Group> | ||
126 | - <ProFormSelect | ||
127 | - name="province" | ||
128 | - width="lg" | ||
129 | - label="管辖地区" | ||
130 | - valueEnum={provinceEnum} | ||
131 | - fieldProps={{ | ||
132 | - mode: 'multiple', | ||
133 | - }} | ||
134 | - placeholder="请选择" | ||
135 | - rules={[ | ||
136 | - { | ||
137 | - required: true, | ||
138 | - message: '请选择!', | ||
139 | - type: 'array', | ||
140 | - }, | ||
141 | - ]} | ||
142 | - /> | ||
143 | - </ProForm.Group> | ||
144 | - </ModalForm> | ||
145 | - ); | ||
146 | -}; |
src/pages/User/ZoNing/components/table.tsx deleted
100644 → 0
1 | -import { | ||
2 | - deleteOrderErpOrderZoNingDelete, | ||
3 | - getOrderErpOrderZoNingSelectAll, | ||
4 | -} from '@/services'; | ||
5 | -import type { ProColumns } from '@ant-design/pro-components'; | ||
6 | -import { EditableProTable } from '@ant-design/pro-components'; | ||
7 | -import { Button, Popconfirm, PopconfirmProps, message } from 'antd'; | ||
8 | -import React, { useRef, useState } from 'react'; | ||
9 | -import '../index.less'; | ||
10 | -import { zoningItem, zoningShowItem } from './constant'; | ||
11 | -import Modal from './modal'; | ||
12 | - | ||
13 | -const waitTime = (time: number = 100) => { | ||
14 | - return new Promise((resolve) => { | ||
15 | - setTimeout(() => { | ||
16 | - resolve(true); | ||
17 | - }, time); | ||
18 | - }); | ||
19 | -}; | ||
20 | - | ||
21 | -function changeToShow(array: zoningItem[]) { | ||
22 | - console.log(JSON.parse(localStorage.getItem('userInfo')).username); | ||
23 | - const showArray: zoningShowItem[] = array.map((item) => { | ||
24 | - let orderProvinceShowList = ''; | ||
25 | - let orderUserShowList = ''; | ||
26 | - let orderUserNumberShowList: number[] = []; | ||
27 | - item.orderProvinceVoList.forEach((element, index) => { | ||
28 | - orderProvinceShowList += element.province; | ||
29 | - if (index < item.orderProvinceVoList.length - 1) { | ||
30 | - orderProvinceShowList += '、'; | ||
31 | - } | ||
32 | - }); | ||
33 | - | ||
34 | - item.orderUserVoList.forEach((event, index) => { | ||
35 | - orderUserShowList += event.userName; | ||
36 | - orderUserNumberShowList.push(event.uId); | ||
37 | - if (index < item.orderUserVoList.length - 1) { | ||
38 | - orderUserShowList += '、'; | ||
39 | - } | ||
40 | - }); | ||
41 | - | ||
42 | - if (orderUserShowList === '') { | ||
43 | - orderUserShowList = '全选'; | ||
44 | - orderUserNumberShowList.push(0); | ||
45 | - } | ||
46 | - | ||
47 | - return { | ||
48 | - id: item.id, | ||
49 | - zoning: item.zoning, | ||
50 | - orderProvinceShowList, | ||
51 | - orderUserShowList, | ||
52 | - orderUserNumberShowList, | ||
53 | - }; | ||
54 | - }); | ||
55 | - return showArray; | ||
56 | -} | ||
57 | - | ||
58 | -export default () => { | ||
59 | - const [editableKeys, setEditableRowKeys] = useState<React.Key[]>([]); | ||
60 | - const [dataSource, setDataSource] = useState<readonly zoningItem[]>([]); | ||
61 | - const [position] = useState<'top' | 'bottom' | 'hidden'>('hidden'); | ||
62 | - | ||
63 | - interface ActionType { | ||
64 | - reload: (resetPageIndex?: boolean) => void; | ||
65 | - reloadAndRest: () => void; | ||
66 | - reset: () => void; | ||
67 | - clearSelected?: () => void; | ||
68 | - startEditable: (rowKey: Key) => boolean; | ||
69 | - cancelEditable: (rowKey: Key) => boolean; | ||
70 | - } | ||
71 | - | ||
72 | - const ref = useRef<ActionType>({ | ||
73 | - reload: () => {}, | ||
74 | - reloadAndRest: () => {}, | ||
75 | - reset: () => {}, | ||
76 | - startEditable: () => {}, | ||
77 | - cancelEditable: () => {}, | ||
78 | - }); | ||
79 | - | ||
80 | - function reload() { | ||
81 | - ref.current.reload(); | ||
82 | - } | ||
83 | - | ||
84 | - const confirm: PopconfirmProps['onConfirm'] = async (id) => { | ||
85 | - await deleteOrderErpOrderZoNingDelete({ | ||
86 | - data: id, | ||
87 | - }); | ||
88 | - reload(); | ||
89 | - message.success('删除成功'); | ||
90 | - }; | ||
91 | - | ||
92 | - const cancel: PopconfirmProps['onCancel'] = () => { | ||
93 | - message.error('取消删除'); | ||
94 | - }; | ||
95 | - | ||
96 | - const columns: ProColumns<zoningItem>[] = [ | ||
97 | - { | ||
98 | - title: '区域名称', | ||
99 | - dataIndex: 'zoning', | ||
100 | - width: 200, | ||
101 | - }, | ||
102 | - { | ||
103 | - title: '管辖省份', | ||
104 | - dataIndex: 'orderProvinceShowList', | ||
105 | - readonly: true, | ||
106 | - width: 600, | ||
107 | - }, | ||
108 | - { | ||
109 | - title: '负责销售', | ||
110 | - key: 'state', | ||
111 | - dataIndex: 'orderUserShowList', | ||
112 | - valueType: 'select', | ||
113 | - width: 200, | ||
114 | - }, | ||
115 | - { | ||
116 | - title: '操作', | ||
117 | - valueType: 'option', | ||
118 | - width: 200, | ||
119 | - render: (text, record) => [ | ||
120 | - <> | ||
121 | - <Modal | ||
122 | - toReload={reload} | ||
123 | - option={'编辑'} | ||
124 | - needEditBody={record} | ||
125 | - key={record.id} | ||
126 | - /> | ||
127 | - <Popconfirm | ||
128 | - title="删除此项" | ||
129 | - description="你确定你要删除此项吗?" | ||
130 | - onConfirm={() => { | ||
131 | - confirm(record.id); | ||
132 | - }} | ||
133 | - onCancel={cancel} | ||
134 | - okText="确定" | ||
135 | - cancelText="取消" | ||
136 | - > | ||
137 | - <Button>删除</Button> | ||
138 | - </Popconfirm> | ||
139 | - </>, | ||
140 | - ], | ||
141 | - }, | ||
142 | - ]; | ||
143 | - | ||
144 | - return ( | ||
145 | - <EditableProTable<zoningItem> | ||
146 | - rowKey="id" | ||
147 | - className="table-index" | ||
148 | - deletePopconfirmMessage | ||
149 | - actionRef={ref} | ||
150 | - headerTitle={ | ||
151 | - <Modal toReload={reload} option={'新增区域'} needEditBody={{}}></Modal> | ||
152 | - } | ||
153 | - maxLength={5} | ||
154 | - scroll={{ | ||
155 | - x: 960, | ||
156 | - }} | ||
157 | - recordCreatorProps={ | ||
158 | - position !== 'hidden' | ||
159 | - ? { | ||
160 | - position: position as 'top', | ||
161 | - record: () => ({ id: (Math.random() * 1000000).toFixed(0) }), | ||
162 | - } | ||
163 | - : false | ||
164 | - } | ||
165 | - loading={false} | ||
166 | - columns={columns} | ||
167 | - request={async () => { | ||
168 | - const res = await getOrderErpOrderZoNingSelectAll(); | ||
169 | - if (res) { | ||
170 | - const initDataSource = changeToShow(res.data); | ||
171 | - return { data: initDataSource || [] }; | ||
172 | - } | ||
173 | - }} | ||
174 | - value={dataSource} | ||
175 | - onChange={setDataSource} | ||
176 | - editable={{ | ||
177 | - type: 'multiple', | ||
178 | - editableKeys, | ||
179 | - onSave: async (rowKey, data, row) => { | ||
180 | - console.log(rowKey, data, row); | ||
181 | - await waitTime(2000); | ||
182 | - }, | ||
183 | - onChange: setEditableRowKeys, | ||
184 | - }} | ||
185 | - /> | ||
186 | - ); | ||
187 | -}; |
src/pages/User/ZoNing/index.tsx deleted
100644 → 0
src/services/definition.ts
@@ -221,8 +221,9 @@ export interface AdminDeptVO { | @@ -221,8 +221,9 @@ export interface AdminDeptVO { | ||
221 | pid?: number; | 221 | pid?: number; |
222 | } | 222 | } |
223 | 223 | ||
224 | -export interface AdminInvoicingAccountDto { | 224 | +export interface AdminInvoicingAccountDTO { |
225 | account?: string; | 225 | account?: string; |
226 | + accountText?: string; | ||
226 | createByName?: string; | 227 | createByName?: string; |
227 | /** @format date-time */ | 228 | /** @format date-time */ |
228 | createTime?: string; | 229 | createTime?: string; |
@@ -230,6 +231,7 @@ export interface AdminInvoicingAccountDto { | @@ -230,6 +231,7 @@ export interface AdminInvoicingAccountDto { | ||
230 | id?: number; | 231 | id?: number; |
231 | logicDelete?: boolean; | 232 | logicDelete?: boolean; |
232 | password?: string; | 233 | password?: string; |
234 | + paths?: Array<string>; | ||
233 | updateByName?: string; | 235 | updateByName?: string; |
234 | /** @format date-time */ | 236 | /** @format date-time */ |
235 | updateTime?: string; | 237 | updateTime?: string; |
@@ -698,7 +700,7 @@ export interface ApiQueryOrderStatusCountsRequest { | @@ -698,7 +700,7 @@ export interface ApiQueryOrderStatusCountsRequest { | ||
698 | uid?: number; | 700 | uid?: number; |
699 | } | 701 | } |
700 | 702 | ||
701 | -export interface ApplyInvoiceDto { | 703 | +export interface ApplyInvoiceDTO { |
702 | /** | 704 | /** |
703 | * @description | 705 | * @description |
704 | * 备注 | 706 | * 备注 |
@@ -749,6 +751,9 @@ export interface ApplyInvoiceDto { | @@ -749,6 +751,9 @@ export interface ApplyInvoiceDto { | ||
749 | * 发票号码 | 751 | * 发票号码 |
750 | */ | 752 | */ |
751 | invoiceNumber?: string; | 753 | invoiceNumber?: string; |
754 | + invoicingAccount?: string; | ||
755 | + /** @format date */ | ||
756 | + invoicingDate?: string; | ||
752 | /** | 757 | /** |
753 | * @description | 758 | * @description |
754 | * 开票人 | 759 | * 开票人 |
@@ -770,8 +775,6 @@ export interface ApplyInvoiceDto { | @@ -770,8 +775,6 @@ export interface ApplyInvoiceDto { | ||
770 | * 开具类型 | 775 | * 开具类型 |
771 | */ | 776 | */ |
772 | invoicingTypeText?: string; | 777 | invoicingTypeText?: string; |
773 | - /** @format date */ | ||
774 | - invoicingdate?: string; | ||
775 | /** | 778 | /** |
776 | * @description | 779 | * @description |
777 | * 是否加急 | 780 | * 是否加急 |
@@ -1437,7 +1440,7 @@ export interface InvoiceDto { | @@ -1437,7 +1440,7 @@ export interface InvoiceDto { | ||
1437 | subOrderIds?: Array<number>; | 1440 | subOrderIds?: Array<number>; |
1438 | } | 1441 | } |
1439 | 1442 | ||
1440 | -export interface InvoiceRecordDto { | 1443 | +export interface InvoiceRecordDTO { |
1441 | applyInvoicingNotes?: string; | 1444 | applyInvoicingNotes?: string; |
1442 | /** | 1445 | /** |
1443 | * @description | 1446 | * @description |
@@ -1484,6 +1487,9 @@ export interface InvoiceRecordDto { | @@ -1484,6 +1487,9 @@ export interface InvoiceRecordDto { | ||
1484 | * 发票号码 | 1487 | * 发票号码 |
1485 | */ | 1488 | */ |
1486 | invoiceNumber?: string; | 1489 | invoiceNumber?: string; |
1490 | + invoicingAccount?: string; | ||
1491 | + /** @format date */ | ||
1492 | + invoicingDate?: string; | ||
1487 | /** | 1493 | /** |
1488 | * @description | 1494 | * @description |
1489 | * 开票人 | 1495 | * 开票人 |
@@ -1505,8 +1511,6 @@ export interface InvoiceRecordDto { | @@ -1505,8 +1511,6 @@ export interface InvoiceRecordDto { | ||
1505 | * 开具类型 | 1511 | * 开具类型 |
1506 | */ | 1512 | */ |
1507 | invoicingTypeText?: string; | 1513 | invoicingTypeText?: string; |
1508 | - /** @format date */ | ||
1509 | - invoicingdate?: string; | ||
1510 | /** | 1514 | /** |
1511 | * @description | 1515 | * @description |
1512 | * 是否加急 | 1516 | * 是否加急 |
@@ -1695,6 +1699,18 @@ export interface InvoiceRecordQueryRequest { | @@ -1695,6 +1699,18 @@ export interface InvoiceRecordQueryRequest { | ||
1695 | /** | 1699 | /** |
1696 | * @description | 1700 | * @description |
1697 | * 开票时间 | 1701 | * 开票时间 |
1702 | + * @format date | ||
1703 | + */ | ||
1704 | + invoicingDateGe?: string; | ||
1705 | + /** | ||
1706 | + * @description | ||
1707 | + * 开票时间 | ||
1708 | + * @format date | ||
1709 | + */ | ||
1710 | + invoicingDateLe?: string; | ||
1711 | + /** | ||
1712 | + * @description | ||
1713 | + * 开票时间 | ||
1698 | * @format date-time | 1714 | * @format date-time |
1699 | */ | 1715 | */ |
1700 | invoicingTimeGe?: string; | 1716 | invoicingTimeGe?: string; |
@@ -2589,6 +2605,7 @@ export interface QueryClientDto { | @@ -2589,6 +2605,7 @@ export interface QueryClientDto { | ||
2589 | companyAddressLike?: string; | 2605 | companyAddressLike?: string; |
2590 | companyIds?: Array<number>; | 2606 | companyIds?: Array<number>; |
2591 | companyNameLike?: string; | 2607 | companyNameLike?: string; |
2608 | + createByUserIdIn?: Array<number>; | ||
2592 | /** @format date-time */ | 2609 | /** @format date-time */ |
2593 | createTimeGe?: string; | 2610 | createTimeGe?: string; |
2594 | /** @format date-time */ | 2611 | /** @format date-time */ |
@@ -2597,6 +2614,7 @@ export interface QueryClientDto { | @@ -2597,6 +2614,7 @@ export interface QueryClientDto { | ||
2597 | current?: number; | 2614 | current?: number; |
2598 | /** @format int32 */ | 2615 | /** @format int32 */ |
2599 | end?: number; | 2616 | end?: number; |
2617 | + groupFilter?: string; | ||
2600 | hasScheme?: boolean; | 2618 | hasScheme?: boolean; |
2601 | level?: string; | 2619 | level?: string; |
2602 | namelike?: string; | 2620 | namelike?: string; |
@@ -2728,6 +2746,18 @@ export interface QueryInvoiceRecordDto { | @@ -2728,6 +2746,18 @@ export interface QueryInvoiceRecordDto { | ||
2728 | /** | 2746 | /** |
2729 | * @description | 2747 | * @description |
2730 | * 开票时间 | 2748 | * 开票时间 |
2749 | + * @format date | ||
2750 | + */ | ||
2751 | + invoicingDateGe?: string; | ||
2752 | + /** | ||
2753 | + * @description | ||
2754 | + * 开票时间 | ||
2755 | + * @format date | ||
2756 | + */ | ||
2757 | + invoicingDateLe?: string; | ||
2758 | + /** | ||
2759 | + * @description | ||
2760 | + * 开票时间 | ||
2731 | * @format date-time | 2761 | * @format date-time |
2732 | */ | 2762 | */ |
2733 | invoicingTimeGe?: string; | 2763 | invoicingTimeGe?: string; |
@@ -2908,75 +2938,53 @@ export interface ReissueInvoiceDto { | @@ -2908,75 +2938,53 @@ export interface ReissueInvoiceDto { | ||
2908 | purchaser?: string; | 2938 | purchaser?: string; |
2909 | } | 2939 | } |
2910 | 2940 | ||
2911 | -export interface ResearchGroupAccountAddRequest { | ||
2912 | - /** | ||
2913 | - * @description | ||
2914 | - * 关联的账号id | ||
2915 | - * @format int64 | ||
2916 | - */ | ||
2917 | - accountId?: number; | ||
2918 | - /** | ||
2919 | - * @description | ||
2920 | - * 关联的账号名称 | ||
2921 | - */ | ||
2922 | - accountName?: string; | 2941 | +export interface ResearchGroupAddRequest { |
2942 | + accounts?: Array<ResearchGroupAccounts>; | ||
2923 | /** | 2943 | /** |
2924 | * @description | 2944 | * @description |
2925 | - * 关联的账号手机号 | 2945 | + * 单位名称 |
2926 | */ | 2946 | */ |
2927 | - accountPhone?: string; | 2947 | + companyName?: string; |
2948 | + createByName?: string; | ||
2949 | + /** @format date-time */ | ||
2950 | + createTime?: string; | ||
2928 | /** | 2951 | /** |
2929 | * @description | 2952 | * @description |
2930 | - * 课题组id | ||
2931 | - * @format int64 | 2953 | + * 课题组名称 |
2932 | */ | 2954 | */ |
2933 | - groupId?: number; | ||
2934 | -} | ||
2935 | - | ||
2936 | -export interface ResearchGroupAccountEditRequest { | 2955 | + groupName?: string; |
2937 | /** | 2956 | /** |
2938 | * @description | 2957 | * @description |
2939 | - * 关联的账号id | 2958 | + * 主键id |
2940 | * @format int64 | 2959 | * @format int64 |
2941 | */ | 2960 | */ |
2942 | - accountId?: number; | ||
2943 | - /** | ||
2944 | - * @description | ||
2945 | - * 关联的账号名称 | ||
2946 | - */ | ||
2947 | - accountName?: string; | ||
2948 | - /** | ||
2949 | - * @description | ||
2950 | - * 关联的账号手机号 | ||
2951 | - */ | ||
2952 | - accountPhone?: string; | 2961 | + id?: number; |
2953 | /** | 2962 | /** |
2954 | * @description | 2963 | * @description |
2955 | - * 课题组id | ||
2956 | - * @format int64 | 2964 | + * 负责人 |
2957 | */ | 2965 | */ |
2958 | - groupId?: number; | 2966 | + leaderName?: string; |
2967 | + logicDelete?: boolean; | ||
2968 | + members?: Array<ResearchGroupMembers>; | ||
2969 | + paths?: Array<string>; | ||
2959 | /** | 2970 | /** |
2960 | * @description | 2971 | * @description |
2961 | - * 主键id | ||
2962 | - * @format int64 | 2972 | + * 状态 |
2963 | */ | 2973 | */ |
2964 | - id?: number; | ||
2965 | -} | ||
2966 | - | ||
2967 | -export interface ResearchGroupAddRequest { | ||
2968 | - accounts?: Array<ResearchGroupAccountAddRequest>; | 2974 | + status?: string; |
2969 | /** | 2975 | /** |
2970 | * @description | 2976 | * @description |
2971 | - * 课题组名称 | 2977 | + * 冗余字段,当前状态备注 |
2972 | */ | 2978 | */ |
2973 | - group?: string; | 2979 | + statusNotes?: string; |
2974 | /** | 2980 | /** |
2975 | * @description | 2981 | * @description |
2976 | - * 课题组负责人 | 2982 | + * 状态文本 |
2977 | */ | 2983 | */ |
2978 | - leader?: string; | ||
2979 | - members?: Array<ResearchGroupMemberAddRequest>; | 2984 | + statusText?: string; |
2985 | + updateByName?: string; | ||
2986 | + /** @format date-time */ | ||
2987 | + updateTime?: string; | ||
2980 | } | 2988 | } |
2981 | 2989 | ||
2982 | export interface ResearchGroupDeleteRequest { | 2990 | export interface ResearchGroupDeleteRequest { |
@@ -2997,16 +3005,20 @@ export interface ResearchGroupDetailRequest { | @@ -2997,16 +3005,20 @@ export interface ResearchGroupDetailRequest { | ||
2997 | } | 3005 | } |
2998 | 3006 | ||
2999 | export interface ResearchGroupEditRequest { | 3007 | export interface ResearchGroupEditRequest { |
3008 | + accounts?: Array<ResearchGroupAccounts>; | ||
3000 | /** | 3009 | /** |
3001 | * @description | 3010 | * @description |
3002 | - * 课题组预存账号 | 3011 | + * 单位名称 |
3003 | */ | 3012 | */ |
3004 | - accounts?: Array<ResearchGroupAccountEditRequest>; | 3013 | + companyName?: string; |
3014 | + createByName?: string; | ||
3015 | + /** @format date-time */ | ||
3016 | + createTime?: string; | ||
3005 | /** | 3017 | /** |
3006 | * @description | 3018 | * @description |
3007 | * 课题组名称 | 3019 | * 课题组名称 |
3008 | */ | 3020 | */ |
3009 | - group?: string; | 3021 | + groupName?: string; |
3010 | /** | 3022 | /** |
3011 | * @description | 3023 | * @description |
3012 | * 主键id | 3024 | * 主键id |
@@ -3015,14 +3027,30 @@ export interface ResearchGroupEditRequest { | @@ -3015,14 +3027,30 @@ export interface ResearchGroupEditRequest { | ||
3015 | id?: number; | 3027 | id?: number; |
3016 | /** | 3028 | /** |
3017 | * @description | 3029 | * @description |
3018 | - * 课题组负责人 | 3030 | + * 负责人 |
3019 | */ | 3031 | */ |
3020 | - leader?: string; | 3032 | + leaderName?: string; |
3033 | + logicDelete?: boolean; | ||
3034 | + members?: Array<ResearchGroupMembers>; | ||
3035 | + paths?: Array<string>; | ||
3021 | /** | 3036 | /** |
3022 | * @description | 3037 | * @description |
3023 | - * 课题组成员集合 | 3038 | + * 状态 |
3024 | */ | 3039 | */ |
3025 | - members?: Array<ResearchGroupMemberEditRequest>; | 3040 | + status?: string; |
3041 | + /** | ||
3042 | + * @description | ||
3043 | + * 冗余字段,当前状态备注 | ||
3044 | + */ | ||
3045 | + statusNotes?: string; | ||
3046 | + /** | ||
3047 | + * @description | ||
3048 | + * 状态文本 | ||
3049 | + */ | ||
3050 | + statusText?: string; | ||
3051 | + updateByName?: string; | ||
3052 | + /** @format date-time */ | ||
3053 | + updateTime?: string; | ||
3026 | } | 3054 | } |
3027 | 3055 | ||
3028 | export interface ResearchGroupListRequest { | 3056 | export interface ResearchGroupListRequest { |
@@ -3031,6 +3059,11 @@ export interface ResearchGroupListRequest { | @@ -3031,6 +3059,11 @@ export interface ResearchGroupListRequest { | ||
3031 | * 预存账号手机号 | 3059 | * 预存账号手机号 |
3032 | */ | 3060 | */ |
3033 | accountPhone?: string; | 3061 | accountPhone?: string; |
3062 | + /** | ||
3063 | + * @description | ||
3064 | + * 公司名称 | ||
3065 | + */ | ||
3066 | + companyNameLike?: string; | ||
3034 | /** @format int32 */ | 3067 | /** @format int32 */ |
3035 | current?: number; | 3068 | current?: number; |
3036 | /** @format int32 */ | 3069 | /** @format int32 */ |
@@ -3042,6 +3075,11 @@ export interface ResearchGroupListRequest { | @@ -3042,6 +3075,11 @@ export interface ResearchGroupListRequest { | ||
3042 | groupName?: string; | 3075 | groupName?: string; |
3043 | /** | 3076 | /** |
3044 | * @description | 3077 | * @description |
3078 | + * id | ||
3079 | + */ | ||
3080 | + idIn?: Array<number>; | ||
3081 | + /** | ||
3082 | + * @description | ||
3045 | * 课题组负责人 | 3083 | * 课题组负责人 |
3046 | */ | 3084 | */ |
3047 | leaderName?: string; | 3085 | leaderName?: string; |
@@ -3059,30 +3097,34 @@ export interface ResearchGroupListRequest { | @@ -3059,30 +3097,34 @@ export interface ResearchGroupListRequest { | ||
3059 | pageSize?: number; | 3097 | pageSize?: number; |
3060 | /** @format int32 */ | 3098 | /** @format int32 */ |
3061 | start?: number; | 3099 | start?: number; |
3100 | + /** | ||
3101 | + * @description | ||
3102 | + * 状态 | ||
3103 | + */ | ||
3104 | + status?: string; | ||
3062 | /** @format int32 */ | 3105 | /** @format int32 */ |
3063 | total?: number; | 3106 | total?: number; |
3064 | } | 3107 | } |
3065 | 3108 | ||
3066 | -export interface ResearchGroupMemberAddRequest { | 3109 | +export interface ResearchGroupMemberRequestAddRequest { |
3067 | /** | 3110 | /** |
3068 | * @description | 3111 | * @description |
3069 | - * 课题组ID | ||
3070 | - * @format int64 | 3112 | + * 审核备注 |
3071 | */ | 3113 | */ |
3072 | - groupId?: number; | 3114 | + auditNotes?: string; |
3073 | /** | 3115 | /** |
3074 | * @description | 3116 | * @description |
3075 | - * 成员名称 | 3117 | + * 审核状态:CREATED-未审核 AUDIT_FAIL-审核不通过 AUDIT_PASS-审核通过 |
3076 | */ | 3118 | */ |
3077 | - memberName?: string; | 3119 | + auditStatus?: string; |
3078 | /** | 3120 | /** |
3079 | * @description | 3121 | * @description |
3080 | - * 成员手机号 | 3122 | + * 审核状态:CREATED-未审核 AUDIT_FAIL-审核不通过 AUDIT_PASS-审核通过 |
3081 | */ | 3123 | */ |
3082 | - memberPhone?: string; | ||
3083 | -} | ||
3084 | - | ||
3085 | -export interface ResearchGroupMemberEditRequest { | 3124 | + auditStatusText?: string; |
3125 | + createByName?: string; | ||
3126 | + /** @format date-time */ | ||
3127 | + createTime?: string; | ||
3086 | /** | 3128 | /** |
3087 | * @description | 3129 | * @description |
3088 | * 课题组ID | 3130 | * 课题组ID |
@@ -3091,10 +3133,16 @@ export interface ResearchGroupMemberEditRequest { | @@ -3091,10 +3133,16 @@ export interface ResearchGroupMemberEditRequest { | ||
3091 | groupId?: number; | 3133 | groupId?: number; |
3092 | /** | 3134 | /** |
3093 | * @description | 3135 | * @description |
3136 | + * 课题组名称 | ||
3137 | + */ | ||
3138 | + groupName?: string; | ||
3139 | + /** | ||
3140 | + * @description | ||
3094 | * 主键id | 3141 | * 主键id |
3095 | * @format int64 | 3142 | * @format int64 |
3096 | */ | 3143 | */ |
3097 | id?: number; | 3144 | id?: number; |
3145 | + logicDelete?: boolean; | ||
3098 | /** | 3146 | /** |
3099 | * @description | 3147 | * @description |
3100 | * 成员名称 | 3148 | * 成员名称 |
@@ -3105,26 +3153,26 @@ export interface ResearchGroupMemberEditRequest { | @@ -3105,26 +3153,26 @@ export interface ResearchGroupMemberEditRequest { | ||
3105 | * 成员手机号 | 3153 | * 成员手机号 |
3106 | */ | 3154 | */ |
3107 | memberPhone?: string; | 3155 | memberPhone?: string; |
3108 | -} | ||
3109 | - | ||
3110 | -export interface ResearchGroupMemberRequestAddRequest { | 3156 | + members?: Array<ResearchGroupMembers>; |
3157 | + paths?: Array<string>; | ||
3111 | /** | 3158 | /** |
3112 | * @description | 3159 | * @description |
3113 | - * 课题组ID | ||
3114 | - * @format int64 | 3160 | + * 权限 |
3115 | */ | 3161 | */ |
3116 | - groupId?: number; | 3162 | + permissions?: Array<string>; |
3117 | /** | 3163 | /** |
3118 | * @description | 3164 | * @description |
3119 | - * 课题组名称 | 3165 | + * 申请备注 |
3120 | */ | 3166 | */ |
3121 | - groupName?: string; | ||
3122 | - members?: Array<ResearchGroupMemberAddRequest>; | 3167 | + requestNotes?: string; |
3123 | /** | 3168 | /** |
3124 | * @description | 3169 | * @description |
3125 | - * 申请备注 | 3170 | + * 申请类型:APPEND-新增 REMOVE-删除 MODIFY-修改 |
3126 | */ | 3171 | */ |
3127 | - requestNotes?: string; | 3172 | + requestType?: string; |
3173 | + updateByName?: string; | ||
3174 | + /** @format date-time */ | ||
3175 | + updateTime?: string; | ||
3128 | } | 3176 | } |
3129 | 3177 | ||
3130 | export interface ResearchGroupMemberRequestDeleteRequest { | 3178 | export interface ResearchGroupMemberRequestDeleteRequest { |
@@ -3147,6 +3195,24 @@ export interface ResearchGroupMemberRequestDetailRequest { | @@ -3147,6 +3195,24 @@ export interface ResearchGroupMemberRequestDetailRequest { | ||
3147 | export interface ResearchGroupMemberRequestEditRequest { | 3195 | export interface ResearchGroupMemberRequestEditRequest { |
3148 | /** | 3196 | /** |
3149 | * @description | 3197 | * @description |
3198 | + * 审核备注 | ||
3199 | + */ | ||
3200 | + auditNotes?: string; | ||
3201 | + /** | ||
3202 | + * @description | ||
3203 | + * 审核状态:CREATED-未审核 AUDIT_FAIL-审核不通过 AUDIT_PASS-审核通过 | ||
3204 | + */ | ||
3205 | + auditStatus?: string; | ||
3206 | + /** | ||
3207 | + * @description | ||
3208 | + * 审核状态:CREATED-未审核 AUDIT_FAIL-审核不通过 AUDIT_PASS-审核通过 | ||
3209 | + */ | ||
3210 | + auditStatusText?: string; | ||
3211 | + createByName?: string; | ||
3212 | + /** @format date-time */ | ||
3213 | + createTime?: string; | ||
3214 | + /** | ||
3215 | + * @description | ||
3150 | * 课题组ID | 3216 | * 课题组ID |
3151 | * @format int64 | 3217 | * @format int64 |
3152 | */ | 3218 | */ |
@@ -3162,6 +3228,7 @@ export interface ResearchGroupMemberRequestEditRequest { | @@ -3162,6 +3228,7 @@ export interface ResearchGroupMemberRequestEditRequest { | ||
3162 | * @format int64 | 3228 | * @format int64 |
3163 | */ | 3229 | */ |
3164 | id?: number; | 3230 | id?: number; |
3231 | + logicDelete?: boolean; | ||
3165 | /** | 3232 | /** |
3166 | * @description | 3233 | * @description |
3167 | * 成员名称 | 3234 | * 成员名称 |
@@ -3172,11 +3239,25 @@ export interface ResearchGroupMemberRequestEditRequest { | @@ -3172,11 +3239,25 @@ export interface ResearchGroupMemberRequestEditRequest { | ||
3172 | * 成员手机号 | 3239 | * 成员手机号 |
3173 | */ | 3240 | */ |
3174 | memberPhone?: string; | 3241 | memberPhone?: string; |
3242 | + paths?: Array<string>; | ||
3243 | + /** | ||
3244 | + * @description | ||
3245 | + * 权限 | ||
3246 | + */ | ||
3247 | + permissions?: Array<string>; | ||
3175 | /** | 3248 | /** |
3176 | * @description | 3249 | * @description |
3177 | * 申请备注 | 3250 | * 申请备注 |
3178 | */ | 3251 | */ |
3179 | requestNotes?: string; | 3252 | requestNotes?: string; |
3253 | + /** | ||
3254 | + * @description | ||
3255 | + * 申请类型:APPEND-新增 REMOVE-删除 MODIFY-修改 | ||
3256 | + */ | ||
3257 | + requestType?: string; | ||
3258 | + updateByName?: string; | ||
3259 | + /** @format date-time */ | ||
3260 | + updateTime?: string; | ||
3180 | } | 3261 | } |
3181 | 3262 | ||
3182 | export interface ResearchGroupMemberRequestsRequest { | 3263 | export interface ResearchGroupMemberRequestsRequest { |
@@ -3385,6 +3466,7 @@ export interface SubOrder { | @@ -3385,6 +3466,7 @@ export interface SubOrder { | ||
3385 | /** @format date-time */ | 3466 | /** @format date-time */ |
3386 | updateTime?: string; | 3467 | updateTime?: string; |
3387 | urgentInvoiceAuditNotes?: string; | 3468 | urgentInvoiceAuditNotes?: string; |
3469 | + useOldInvoicingProcess?: boolean; | ||
3388 | /** @format int32 */ | 3470 | /** @format int32 */ |
3389 | version?: number; | 3471 | version?: number; |
3390 | } | 3472 | } |
@@ -3815,6 +3897,76 @@ export interface InvoiceDetail { | @@ -3815,6 +3897,76 @@ export interface InvoiceDetail { | ||
3815 | unit?: string; | 3897 | unit?: string; |
3816 | } | 3898 | } |
3817 | 3899 | ||
3900 | +export interface ResearchGroupAccounts { | ||
3901 | + /** | ||
3902 | + * @description | ||
3903 | + * 关联的账号id | ||
3904 | + * @format int64 | ||
3905 | + */ | ||
3906 | + accountId?: number; | ||
3907 | + /** | ||
3908 | + * @description | ||
3909 | + * 关联的账号名称 | ||
3910 | + */ | ||
3911 | + accountName?: string; | ||
3912 | + /** | ||
3913 | + * @description | ||
3914 | + * 关联的账号手机号 | ||
3915 | + */ | ||
3916 | + accountPhone?: string; | ||
3917 | + createByName?: string; | ||
3918 | + /** @format date-time */ | ||
3919 | + createTime?: string; | ||
3920 | + /** | ||
3921 | + * @description | ||
3922 | + * 课题组id | ||
3923 | + * @format int64 | ||
3924 | + */ | ||
3925 | + groupId?: number; | ||
3926 | + /** | ||
3927 | + * @description | ||
3928 | + * 主键id | ||
3929 | + * @format int64 | ||
3930 | + */ | ||
3931 | + id?: number; | ||
3932 | + logicDelete?: boolean; | ||
3933 | + updateByName?: string; | ||
3934 | + /** @format date-time */ | ||
3935 | + updateTime?: string; | ||
3936 | +} | ||
3937 | + | ||
3938 | +export interface ResearchGroupMembers { | ||
3939 | + createByName?: string; | ||
3940 | + /** @format date-time */ | ||
3941 | + createTime?: string; | ||
3942 | + /** | ||
3943 | + * @description | ||
3944 | + * 课题组ID | ||
3945 | + * @format int64 | ||
3946 | + */ | ||
3947 | + groupId?: number; | ||
3948 | + /** | ||
3949 | + * @description | ||
3950 | + * 主键id | ||
3951 | + * @format int64 | ||
3952 | + */ | ||
3953 | + id?: number; | ||
3954 | + logicDelete?: boolean; | ||
3955 | + /** | ||
3956 | + * @description | ||
3957 | + * 成员名称 | ||
3958 | + */ | ||
3959 | + memberName?: string; | ||
3960 | + /** | ||
3961 | + * @description | ||
3962 | + * 成员手机号 | ||
3963 | + */ | ||
3964 | + memberPhone?: string; | ||
3965 | + updateByName?: string; | ||
3966 | + /** @format date-time */ | ||
3967 | + updateTime?: string; | ||
3968 | +} | ||
3969 | + | ||
3818 | export interface SalesRechargePrepaymentAuditRequest { | 3970 | export interface SalesRechargePrepaymentAuditRequest { |
3819 | /** | 3971 | /** |
3820 | * @description | 3972 | * @description |
src/services/request.ts
@@ -9,7 +9,7 @@ import type { | @@ -9,7 +9,7 @@ import type { | ||
9 | AdminClientDto, | 9 | AdminClientDto, |
10 | AdminDeptQueryVO, | 10 | AdminDeptQueryVO, |
11 | AdminDeptVO, | 11 | AdminDeptVO, |
12 | - AdminInvoicingAccountDto, | 12 | + AdminInvoicingAccountDTO, |
13 | AdminJobQueryVO, | 13 | AdminJobQueryVO, |
14 | AdminJobVO, | 14 | AdminJobVO, |
15 | AdminMenuQueryVO, | 15 | AdminMenuQueryVO, |
@@ -31,7 +31,7 @@ import type { | @@ -31,7 +31,7 @@ import type { | ||
31 | ApiOrderEvaluatedRequest, | 31 | ApiOrderEvaluatedRequest, |
32 | ApiQueryOrderDetailRequest, | 32 | ApiQueryOrderDetailRequest, |
33 | ApiQueryOrderStatusCountsRequest, | 33 | ApiQueryOrderStatusCountsRequest, |
34 | - ApplyInvoiceDto, | 34 | + ApplyInvoiceDTO, |
35 | AuditDto, | 35 | AuditDto, |
36 | AuditVO, | 36 | AuditVO, |
37 | CancelInvoiceAndBankStatementDto, | 37 | CancelInvoiceAndBankStatementDto, |
@@ -54,7 +54,7 @@ import type { | @@ -54,7 +54,7 @@ import type { | ||
54 | Dto, | 54 | Dto, |
55 | InventoryMaterialStockReq, | 55 | InventoryMaterialStockReq, |
56 | InvoiceDto, | 56 | InvoiceDto, |
57 | - InvoiceRecordDto, | 57 | + InvoiceRecordDTO, |
58 | InvoiceRecordQueryRequest, | 58 | InvoiceRecordQueryRequest, |
59 | MainOrderqueryRequest, | 59 | MainOrderqueryRequest, |
60 | MaterialListReply, | 60 | MaterialListReply, |
@@ -63,7 +63,6 @@ import type { | @@ -63,7 +63,6 @@ import type { | ||
63 | MaterialUnitListRes, | 63 | MaterialUnitListRes, |
64 | MeasureUnitListRes, | 64 | MeasureUnitListRes, |
65 | MessageQueryDTO, | 65 | MessageQueryDTO, |
66 | - ModelAndView, | ||
67 | OrderAddVO, | 66 | OrderAddVO, |
68 | OrderAuditLogQueryVO, | 67 | OrderAuditLogQueryVO, |
69 | OrderBaseInfoQueryVO, | 68 | OrderBaseInfoQueryVO, |
@@ -474,6 +473,60 @@ export const postAdminClientExportClients = /* #__PURE__ */ (() => { | @@ -474,6 +473,60 @@ export const postAdminClientExportClients = /* #__PURE__ */ (() => { | ||
474 | return request; | 473 | return request; |
475 | })(); | 474 | })(); |
476 | 475 | ||
476 | +/** @description response type for postAdminClientGetStatisticalData */ | ||
477 | +export interface PostAdminClientGetStatisticalDataResponse { | ||
478 | + /** | ||
479 | + * @description | ||
480 | + * OK | ||
481 | + */ | ||
482 | + 200: ServerResult; | ||
483 | + /** | ||
484 | + * @description | ||
485 | + * Created | ||
486 | + */ | ||
487 | + 201: any; | ||
488 | + /** | ||
489 | + * @description | ||
490 | + * Unauthorized | ||
491 | + */ | ||
492 | + 401: any; | ||
493 | + /** | ||
494 | + * @description | ||
495 | + * Forbidden | ||
496 | + */ | ||
497 | + 403: any; | ||
498 | + /** | ||
499 | + * @description | ||
500 | + * Not Found | ||
501 | + */ | ||
502 | + 404: any; | ||
503 | +} | ||
504 | + | ||
505 | +export type PostAdminClientGetStatisticalDataResponseSuccess = | ||
506 | + PostAdminClientGetStatisticalDataResponse[200]; | ||
507 | +/** | ||
508 | + * @description | ||
509 | + * 修改跟进信息 | ||
510 | + * @tags 客户管理 | ||
511 | + * @produces * | ||
512 | + * @consumes application/json | ||
513 | + */ | ||
514 | +export const postAdminClientGetStatisticalData = /* #__PURE__ */ (() => { | ||
515 | + const method = 'post'; | ||
516 | + const url = '/admin/client/getStatisticalData'; | ||
517 | + function request(): Promise<PostAdminClientGetStatisticalDataResponseSuccess> { | ||
518 | + return requester(request.url, { | ||
519 | + method: request.method, | ||
520 | + }) as unknown as Promise<PostAdminClientGetStatisticalDataResponseSuccess>; | ||
521 | + } | ||
522 | + | ||
523 | + /** http method */ | ||
524 | + request.method = method; | ||
525 | + /** request url */ | ||
526 | + request.url = url; | ||
527 | + return request; | ||
528 | +})(); | ||
529 | + | ||
477 | /** @description request parameter type for postAdminClientImportClient */ | 530 | /** @description request parameter type for postAdminClientImportClient */ |
478 | export interface PostAdminClientImportClientOption { | 531 | export interface PostAdminClientImportClientOption { |
479 | /** | 532 | /** |
@@ -3172,7 +3225,9 @@ export interface GetErrorResponse { | @@ -3172,7 +3225,9 @@ export interface GetErrorResponse { | ||
3172 | * @description | 3225 | * @description |
3173 | * OK | 3226 | * OK |
3174 | */ | 3227 | */ |
3175 | - 200: ModelAndView; | 3228 | + 200: { |
3229 | + [propertyName: string]: any; | ||
3230 | + }; | ||
3176 | /** | 3231 | /** |
3177 | * @description | 3232 | * @description |
3178 | * Unauthorized | 3233 | * Unauthorized |
@@ -3193,9 +3248,9 @@ export interface GetErrorResponse { | @@ -3193,9 +3248,9 @@ export interface GetErrorResponse { | ||
3193 | export type GetErrorResponseSuccess = GetErrorResponse[200]; | 3248 | export type GetErrorResponseSuccess = GetErrorResponse[200]; |
3194 | /** | 3249 | /** |
3195 | * @description | 3250 | * @description |
3196 | - * errorHtml | 3251 | + * error |
3197 | * @tags basic-error-controller | 3252 | * @tags basic-error-controller |
3198 | - * @produces text/html | 3253 | + * @produces * |
3199 | */ | 3254 | */ |
3200 | export const getError = /* #__PURE__ */ (() => { | 3255 | export const getError = /* #__PURE__ */ (() => { |
3201 | const method = 'get'; | 3256 | const method = 'get'; |
@@ -3219,7 +3274,9 @@ export interface PutErrorResponse { | @@ -3219,7 +3274,9 @@ export interface PutErrorResponse { | ||
3219 | * @description | 3274 | * @description |
3220 | * OK | 3275 | * OK |
3221 | */ | 3276 | */ |
3222 | - 200: ModelAndView; | 3277 | + 200: { |
3278 | + [propertyName: string]: any; | ||
3279 | + }; | ||
3223 | /** | 3280 | /** |
3224 | * @description | 3281 | * @description |
3225 | * Created | 3282 | * Created |
@@ -3245,9 +3302,9 @@ export interface PutErrorResponse { | @@ -3245,9 +3302,9 @@ export interface PutErrorResponse { | ||
3245 | export type PutErrorResponseSuccess = PutErrorResponse[200]; | 3302 | export type PutErrorResponseSuccess = PutErrorResponse[200]; |
3246 | /** | 3303 | /** |
3247 | * @description | 3304 | * @description |
3248 | - * errorHtml | 3305 | + * error |
3249 | * @tags basic-error-controller | 3306 | * @tags basic-error-controller |
3250 | - * @produces text/html | 3307 | + * @produces * |
3251 | * @consumes application/json | 3308 | * @consumes application/json |
3252 | */ | 3309 | */ |
3253 | export const putError = /* #__PURE__ */ (() => { | 3310 | export const putError = /* #__PURE__ */ (() => { |
@@ -3272,7 +3329,9 @@ export interface PostErrorResponse { | @@ -3272,7 +3329,9 @@ export interface PostErrorResponse { | ||
3272 | * @description | 3329 | * @description |
3273 | * OK | 3330 | * OK |
3274 | */ | 3331 | */ |
3275 | - 200: ModelAndView; | 3332 | + 200: { |
3333 | + [propertyName: string]: any; | ||
3334 | + }; | ||
3276 | /** | 3335 | /** |
3277 | * @description | 3336 | * @description |
3278 | * Created | 3337 | * Created |
@@ -3298,9 +3357,9 @@ export interface PostErrorResponse { | @@ -3298,9 +3357,9 @@ export interface PostErrorResponse { | ||
3298 | export type PostErrorResponseSuccess = PostErrorResponse[200]; | 3357 | export type PostErrorResponseSuccess = PostErrorResponse[200]; |
3299 | /** | 3358 | /** |
3300 | * @description | 3359 | * @description |
3301 | - * errorHtml | 3360 | + * error |
3302 | * @tags basic-error-controller | 3361 | * @tags basic-error-controller |
3303 | - * @produces text/html | 3362 | + * @produces * |
3304 | * @consumes application/json | 3363 | * @consumes application/json |
3305 | */ | 3364 | */ |
3306 | export const postError = /* #__PURE__ */ (() => { | 3365 | export const postError = /* #__PURE__ */ (() => { |
@@ -3325,7 +3384,9 @@ export interface DeleteErrorResponse { | @@ -3325,7 +3384,9 @@ export interface DeleteErrorResponse { | ||
3325 | * @description | 3384 | * @description |
3326 | * OK | 3385 | * OK |
3327 | */ | 3386 | */ |
3328 | - 200: ModelAndView; | 3387 | + 200: { |
3388 | + [propertyName: string]: any; | ||
3389 | + }; | ||
3329 | /** | 3390 | /** |
3330 | * @description | 3391 | * @description |
3331 | * No Content | 3392 | * No Content |
@@ -3346,9 +3407,9 @@ export interface DeleteErrorResponse { | @@ -3346,9 +3407,9 @@ export interface DeleteErrorResponse { | ||
3346 | export type DeleteErrorResponseSuccess = DeleteErrorResponse[200]; | 3407 | export type DeleteErrorResponseSuccess = DeleteErrorResponse[200]; |
3347 | /** | 3408 | /** |
3348 | * @description | 3409 | * @description |
3349 | - * errorHtml | 3410 | + * error |
3350 | * @tags basic-error-controller | 3411 | * @tags basic-error-controller |
3351 | - * @produces text/html | 3412 | + * @produces * |
3352 | */ | 3413 | */ |
3353 | export const deleteError = /* #__PURE__ */ (() => { | 3414 | export const deleteError = /* #__PURE__ */ (() => { |
3354 | const method = 'delete'; | 3415 | const method = 'delete'; |
@@ -3372,7 +3433,9 @@ export interface OptionsErrorResponse { | @@ -3372,7 +3433,9 @@ export interface OptionsErrorResponse { | ||
3372 | * @description | 3433 | * @description |
3373 | * OK | 3434 | * OK |
3374 | */ | 3435 | */ |
3375 | - 200: ModelAndView; | 3436 | + 200: { |
3437 | + [propertyName: string]: any; | ||
3438 | + }; | ||
3376 | /** | 3439 | /** |
3377 | * @description | 3440 | * @description |
3378 | * No Content | 3441 | * No Content |
@@ -3393,9 +3456,9 @@ export interface OptionsErrorResponse { | @@ -3393,9 +3456,9 @@ export interface OptionsErrorResponse { | ||
3393 | export type OptionsErrorResponseSuccess = OptionsErrorResponse[200]; | 3456 | export type OptionsErrorResponseSuccess = OptionsErrorResponse[200]; |
3394 | /** | 3457 | /** |
3395 | * @description | 3458 | * @description |
3396 | - * errorHtml | 3459 | + * error |
3397 | * @tags basic-error-controller | 3460 | * @tags basic-error-controller |
3398 | - * @produces text/html | 3461 | + * @produces * |
3399 | * @consumes application/json | 3462 | * @consumes application/json |
3400 | */ | 3463 | */ |
3401 | export const optionsError = /* #__PURE__ */ (() => { | 3464 | export const optionsError = /* #__PURE__ */ (() => { |
@@ -3420,7 +3483,9 @@ export interface HeadErrorResponse { | @@ -3420,7 +3483,9 @@ export interface HeadErrorResponse { | ||
3420 | * @description | 3483 | * @description |
3421 | * OK | 3484 | * OK |
3422 | */ | 3485 | */ |
3423 | - 200: ModelAndView; | 3486 | + 200: { |
3487 | + [propertyName: string]: any; | ||
3488 | + }; | ||
3424 | /** | 3489 | /** |
3425 | * @description | 3490 | * @description |
3426 | * No Content | 3491 | * No Content |
@@ -3441,9 +3506,9 @@ export interface HeadErrorResponse { | @@ -3441,9 +3506,9 @@ export interface HeadErrorResponse { | ||
3441 | export type HeadErrorResponseSuccess = HeadErrorResponse[200]; | 3506 | export type HeadErrorResponseSuccess = HeadErrorResponse[200]; |
3442 | /** | 3507 | /** |
3443 | * @description | 3508 | * @description |
3444 | - * errorHtml | 3509 | + * error |
3445 | * @tags basic-error-controller | 3510 | * @tags basic-error-controller |
3446 | - * @produces text/html | 3511 | + * @produces * |
3447 | * @consumes application/json | 3512 | * @consumes application/json |
3448 | */ | 3513 | */ |
3449 | export const headError = /* #__PURE__ */ (() => { | 3514 | export const headError = /* #__PURE__ */ (() => { |
@@ -3468,7 +3533,9 @@ export interface PatchErrorResponse { | @@ -3468,7 +3533,9 @@ export interface PatchErrorResponse { | ||
3468 | * @description | 3533 | * @description |
3469 | * OK | 3534 | * OK |
3470 | */ | 3535 | */ |
3471 | - 200: ModelAndView; | 3536 | + 200: { |
3537 | + [propertyName: string]: any; | ||
3538 | + }; | ||
3472 | /** | 3539 | /** |
3473 | * @description | 3540 | * @description |
3474 | * No Content | 3541 | * No Content |
@@ -3489,9 +3556,9 @@ export interface PatchErrorResponse { | @@ -3489,9 +3556,9 @@ export interface PatchErrorResponse { | ||
3489 | export type PatchErrorResponseSuccess = PatchErrorResponse[200]; | 3556 | export type PatchErrorResponseSuccess = PatchErrorResponse[200]; |
3490 | /** | 3557 | /** |
3491 | * @description | 3558 | * @description |
3492 | - * errorHtml | 3559 | + * error |
3493 | * @tags basic-error-controller | 3560 | * @tags basic-error-controller |
3494 | - * @produces text/html | 3561 | + * @produces * |
3495 | * @consumes application/json | 3562 | * @consumes application/json |
3496 | */ | 3563 | */ |
3497 | export const patchError = /* #__PURE__ */ (() => { | 3564 | export const patchError = /* #__PURE__ */ (() => { |
@@ -10517,7 +10584,7 @@ export type PostResearchGroupMemberRequestsAddResponseSuccess = | @@ -10517,7 +10584,7 @@ export type PostResearchGroupMemberRequestsAddResponseSuccess = | ||
10517 | /** | 10584 | /** |
10518 | * @description | 10585 | * @description |
10519 | * 新增申请信息 | 10586 | * 新增申请信息 |
10520 | - * @tags research-group-member-requests-controller | 10587 | + * @tags research-group-request-controller |
10521 | * @produces * | 10588 | * @produces * |
10522 | * @consumes application/json | 10589 | * @consumes application/json |
10523 | */ | 10590 | */ |
@@ -10588,7 +10655,7 @@ export type PostResearchGroupMemberRequestsDeleteResponseSuccess = | @@ -10588,7 +10655,7 @@ export type PostResearchGroupMemberRequestsDeleteResponseSuccess = | ||
10588 | /** | 10655 | /** |
10589 | * @description | 10656 | * @description |
10590 | * 删除申请信息 | 10657 | * 删除申请信息 |
10591 | - * @tags research-group-member-requests-controller | 10658 | + * @tags research-group-request-controller |
10592 | * @produces * | 10659 | * @produces * |
10593 | * @consumes application/json | 10660 | * @consumes application/json |
10594 | */ | 10661 | */ |
@@ -10659,7 +10726,7 @@ export type PostResearchGroupMemberRequestsDetailResponseSuccess = | @@ -10659,7 +10726,7 @@ export type PostResearchGroupMemberRequestsDetailResponseSuccess = | ||
10659 | /** | 10726 | /** |
10660 | * @description | 10727 | * @description |
10661 | * 查询申请信息 | 10728 | * 查询申请信息 |
10662 | - * @tags research-group-member-requests-controller | 10729 | + * @tags research-group-request-controller |
10663 | * @produces * | 10730 | * @produces * |
10664 | * @consumes application/json | 10731 | * @consumes application/json |
10665 | */ | 10732 | */ |
@@ -10730,7 +10797,7 @@ export type PostResearchGroupMemberRequestsEditResponseSuccess = | @@ -10730,7 +10797,7 @@ export type PostResearchGroupMemberRequestsEditResponseSuccess = | ||
10730 | /** | 10797 | /** |
10731 | * @description | 10798 | * @description |
10732 | * 编辑申请信息 | 10799 | * 编辑申请信息 |
10733 | - * @tags research-group-member-requests-controller | 10800 | + * @tags research-group-request-controller |
10734 | * @produces * | 10801 | * @produces * |
10735 | * @consumes application/json | 10802 | * @consumes application/json |
10736 | */ | 10803 | */ |
@@ -10801,7 +10868,7 @@ export type PostResearchGroupMemberRequestsListResponseSuccess = | @@ -10801,7 +10868,7 @@ export type PostResearchGroupMemberRequestsListResponseSuccess = | ||
10801 | /** | 10868 | /** |
10802 | * @description | 10869 | * @description |
10803 | * 申请列表 | 10870 | * 申请列表 |
10804 | - * @tags research-group-member-requests-controller | 10871 | + * @tags research-group-request-controller |
10805 | * @produces * | 10872 | * @produces * |
10806 | * @consumes application/json | 10873 | * @consumes application/json |
10807 | */ | 10874 | */ |
@@ -11865,6 +11932,60 @@ export const postServiceConstCanApplyAfterInvoicingStatus = | @@ -11865,6 +11932,60 @@ export const postServiceConstCanApplyAfterInvoicingStatus = | ||
11865 | return request; | 11932 | return request; |
11866 | })(); | 11933 | })(); |
11867 | 11934 | ||
11935 | +/** @description response type for postServiceConstClientGroupFilters */ | ||
11936 | +export interface PostServiceConstClientGroupFiltersResponse { | ||
11937 | + /** | ||
11938 | + * @description | ||
11939 | + * OK | ||
11940 | + */ | ||
11941 | + 200: ServerResult; | ||
11942 | + /** | ||
11943 | + * @description | ||
11944 | + * Created | ||
11945 | + */ | ||
11946 | + 201: any; | ||
11947 | + /** | ||
11948 | + * @description | ||
11949 | + * Unauthorized | ||
11950 | + */ | ||
11951 | + 401: any; | ||
11952 | + /** | ||
11953 | + * @description | ||
11954 | + * Forbidden | ||
11955 | + */ | ||
11956 | + 403: any; | ||
11957 | + /** | ||
11958 | + * @description | ||
11959 | + * Not Found | ||
11960 | + */ | ||
11961 | + 404: any; | ||
11962 | +} | ||
11963 | + | ||
11964 | +export type PostServiceConstClientGroupFiltersResponseSuccess = | ||
11965 | + PostServiceConstClientGroupFiltersResponse[200]; | ||
11966 | +/** | ||
11967 | + * @description | ||
11968 | + * 获取客户分组 | ||
11969 | + * @tags front-const-controller | ||
11970 | + * @produces * | ||
11971 | + * @consumes application/json | ||
11972 | + */ | ||
11973 | +export const postServiceConstClientGroupFilters = /* #__PURE__ */ (() => { | ||
11974 | + const method = 'post'; | ||
11975 | + const url = '/service/const/clientGroupFilters'; | ||
11976 | + function request(): Promise<PostServiceConstClientGroupFiltersResponseSuccess> { | ||
11977 | + return requester(request.url, { | ||
11978 | + method: request.method, | ||
11979 | + }) as unknown as Promise<PostServiceConstClientGroupFiltersResponseSuccess>; | ||
11980 | + } | ||
11981 | + | ||
11982 | + /** http method */ | ||
11983 | + request.method = method; | ||
11984 | + /** request url */ | ||
11985 | + request.url = url; | ||
11986 | + return request; | ||
11987 | +})(); | ||
11988 | + | ||
11868 | /** @description response type for postServiceConstClientLevels */ | 11989 | /** @description response type for postServiceConstClientLevels */ |
11869 | export interface PostServiceConstClientLevelsResponse { | 11990 | export interface PostServiceConstClientLevelsResponse { |
11870 | /** | 11991 | /** |
@@ -11973,6 +12094,77 @@ export const postServiceConstGetPayeeEnum = /* #__PURE__ */ (() => { | @@ -11973,6 +12094,77 @@ export const postServiceConstGetPayeeEnum = /* #__PURE__ */ (() => { | ||
11973 | return request; | 12094 | return request; |
11974 | })(); | 12095 | })(); |
11975 | 12096 | ||
12097 | +/** @description request parameter type for postServiceConstInitInvoiceDetailNames */ | ||
12098 | +export interface PostServiceConstInitInvoiceDetailNamesOption { | ||
12099 | + /** | ||
12100 | + * @description | ||
12101 | + * productNames | ||
12102 | + */ | ||
12103 | + body: { | ||
12104 | + /** | ||
12105 | + @description | ||
12106 | + productNames */ | ||
12107 | + productNames: Array<string>; | ||
12108 | + }; | ||
12109 | +} | ||
12110 | + | ||
12111 | +/** @description response type for postServiceConstInitInvoiceDetailNames */ | ||
12112 | +export interface PostServiceConstInitInvoiceDetailNamesResponse { | ||
12113 | + /** | ||
12114 | + * @description | ||
12115 | + * OK | ||
12116 | + */ | ||
12117 | + 200: ServerResult; | ||
12118 | + /** | ||
12119 | + * @description | ||
12120 | + * Created | ||
12121 | + */ | ||
12122 | + 201: any; | ||
12123 | + /** | ||
12124 | + * @description | ||
12125 | + * Unauthorized | ||
12126 | + */ | ||
12127 | + 401: any; | ||
12128 | + /** | ||
12129 | + * @description | ||
12130 | + * Forbidden | ||
12131 | + */ | ||
12132 | + 403: any; | ||
12133 | + /** | ||
12134 | + * @description | ||
12135 | + * Not Found | ||
12136 | + */ | ||
12137 | + 404: any; | ||
12138 | +} | ||
12139 | + | ||
12140 | +export type PostServiceConstInitInvoiceDetailNamesResponseSuccess = | ||
12141 | + PostServiceConstInitInvoiceDetailNamesResponse[200]; | ||
12142 | +/** | ||
12143 | + * @description | ||
12144 | + * 根据公司名获取收款方 | ||
12145 | + * @tags front-const-controller | ||
12146 | + * @produces * | ||
12147 | + * @consumes application/json | ||
12148 | + */ | ||
12149 | +export const postServiceConstInitInvoiceDetailNames = /* #__PURE__ */ (() => { | ||
12150 | + const method = 'post'; | ||
12151 | + const url = '/service/const/initInvoiceDetailNames'; | ||
12152 | + function request( | ||
12153 | + option: PostServiceConstInitInvoiceDetailNamesOption, | ||
12154 | + ): Promise<PostServiceConstInitInvoiceDetailNamesResponseSuccess> { | ||
12155 | + return requester(request.url, { | ||
12156 | + method: request.method, | ||
12157 | + ...option, | ||
12158 | + }) as unknown as Promise<PostServiceConstInitInvoiceDetailNamesResponseSuccess>; | ||
12159 | + } | ||
12160 | + | ||
12161 | + /** http method */ | ||
12162 | + request.method = method; | ||
12163 | + /** request url */ | ||
12164 | + request.url = url; | ||
12165 | + return request; | ||
12166 | +})(); | ||
12167 | + | ||
11976 | /** @description response type for postServiceConstInvoiceType */ | 12168 | /** @description response type for postServiceConstInvoiceType */ |
11977 | export interface PostServiceConstInvoiceTypeResponse { | 12169 | export interface PostServiceConstInvoiceTypeResponse { |
11978 | /** | 12170 | /** |
@@ -12152,6 +12344,60 @@ export const postServiceConstListInvoiceDetailNames = /* #__PURE__ */ (() => { | @@ -12152,6 +12344,60 @@ export const postServiceConstListInvoiceDetailNames = /* #__PURE__ */ (() => { | ||
12152 | return request; | 12344 | return request; |
12153 | })(); | 12345 | })(); |
12154 | 12346 | ||
12347 | +/** @description response type for postServiceConstListResearchGroupsStatus */ | ||
12348 | +export interface PostServiceConstListResearchGroupsStatusResponse { | ||
12349 | + /** | ||
12350 | + * @description | ||
12351 | + * OK | ||
12352 | + */ | ||
12353 | + 200: ServerResult; | ||
12354 | + /** | ||
12355 | + * @description | ||
12356 | + * Created | ||
12357 | + */ | ||
12358 | + 201: any; | ||
12359 | + /** | ||
12360 | + * @description | ||
12361 | + * Unauthorized | ||
12362 | + */ | ||
12363 | + 401: any; | ||
12364 | + /** | ||
12365 | + * @description | ||
12366 | + * Forbidden | ||
12367 | + */ | ||
12368 | + 403: any; | ||
12369 | + /** | ||
12370 | + * @description | ||
12371 | + * Not Found | ||
12372 | + */ | ||
12373 | + 404: any; | ||
12374 | +} | ||
12375 | + | ||
12376 | +export type PostServiceConstListResearchGroupsStatusResponseSuccess = | ||
12377 | + PostServiceConstListResearchGroupsStatusResponse[200]; | ||
12378 | +/** | ||
12379 | + * @description | ||
12380 | + * 获取课题组状态 | ||
12381 | + * @tags front-const-controller | ||
12382 | + * @produces * | ||
12383 | + * @consumes application/json | ||
12384 | + */ | ||
12385 | +export const postServiceConstListResearchGroupsStatus = /* #__PURE__ */ (() => { | ||
12386 | + const method = 'post'; | ||
12387 | + const url = '/service/const/listResearchGroupsStatus'; | ||
12388 | + function request(): Promise<PostServiceConstListResearchGroupsStatusResponseSuccess> { | ||
12389 | + return requester(request.url, { | ||
12390 | + method: request.method, | ||
12391 | + }) as unknown as Promise<PostServiceConstListResearchGroupsStatusResponseSuccess>; | ||
12392 | + } | ||
12393 | + | ||
12394 | + /** http method */ | ||
12395 | + request.method = method; | ||
12396 | + /** request url */ | ||
12397 | + request.url = url; | ||
12398 | + return request; | ||
12399 | +})(); | ||
12400 | + | ||
12155 | /** @description response type for postServiceConstNotCanModifyInvoiceRecordStatus */ | 12401 | /** @description response type for postServiceConstNotCanModifyInvoiceRecordStatus */ |
12156 | export interface PostServiceConstNotCanModifyInvoiceRecordStatusResponse { | 12402 | export interface PostServiceConstNotCanModifyInvoiceRecordStatusResponse { |
12157 | /** | 12403 | /** |
@@ -12416,7 +12662,7 @@ export interface PostServiceInvoiceAddInvoicingAccountOption { | @@ -12416,7 +12662,7 @@ export interface PostServiceInvoiceAddInvoicingAccountOption { | ||
12416 | /** | 12662 | /** |
12417 | @description | 12663 | @description |
12418 | dto */ | 12664 | dto */ |
12419 | - dto: AdminInvoicingAccountDto; | 12665 | + dto: AdminInvoicingAccountDTO; |
12420 | }; | 12666 | }; |
12421 | } | 12667 | } |
12422 | 12668 | ||
@@ -12487,7 +12733,7 @@ export interface PostServiceInvoiceApplyInvoiceOption { | @@ -12487,7 +12733,7 @@ export interface PostServiceInvoiceApplyInvoiceOption { | ||
12487 | /** | 12733 | /** |
12488 | @description | 12734 | @description |
12489 | dto */ | 12735 | dto */ |
12490 | - dto: ApplyInvoiceDto; | 12736 | + dto: ApplyInvoiceDTO; |
12491 | }; | 12737 | }; |
12492 | } | 12738 | } |
12493 | 12739 | ||
@@ -13534,7 +13780,7 @@ export interface PostServiceInvoiceModifyRecordOption { | @@ -13534,7 +13780,7 @@ export interface PostServiceInvoiceModifyRecordOption { | ||
13534 | /** | 13780 | /** |
13535 | @description | 13781 | @description |
13536 | dto */ | 13782 | dto */ |
13537 | - dto: InvoiceRecordDto; | 13783 | + dto: InvoiceRecordDTO; |
13538 | }; | 13784 | }; |
13539 | } | 13785 | } |
13540 | 13786 |