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 | 58 | icon: 'BookOutlined', |
59 | 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 | 76 | name: '预存管理', |
63 | 77 | path: '/prepaidManage', |
... | ... | @@ -91,7 +105,7 @@ export default defineConfig({ |
91 | 105 | path: '/client', |
92 | 106 | component: './Client', |
93 | 107 | icon: 'BookOutlined', |
94 | - access: 'canReadAdmin', | |
108 | + access: 'canReadAdminAndSales', | |
95 | 109 | }, |
96 | 110 | { |
97 | 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 | 1 | import ClientDrawer from '@/pages/Client/Components/ClientDrawer'; |
2 | 2 | import ClientImportModal from '@/pages/Client/Components/ClientImportModal'; |
3 | +import ClientStatistic from '@/pages/Client/Components/ClientStatistic'; | |
3 | 4 | import CommunicationHistoryModal from '@/pages/Client/Components/CommunicationHistoryModal'; |
4 | 5 | import { |
5 | 6 | postAdminClientQueryClientPage, |
7 | + postServiceConstClientGroupFilters, | |
6 | 8 | postServiceConstClientLevels, |
7 | 9 | postServiceConstTradeStatus, |
8 | 10 | } from '@/services'; |
... | ... | @@ -10,42 +12,48 @@ import { orderExport } from '@/services/order'; |
10 | 12 | import { enumToSelect } from '@/utils'; |
11 | 13 | import type { ActionType } from '@ant-design/pro-components'; |
12 | 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 | 18 | const columns = [ |
17 | 19 | { |
18 | 20 | dataIndex: 'index', |
19 | 21 | valueType: 'indexBorder', |
22 | + ellipsis: true, | |
20 | 23 | width: 48, |
21 | 24 | }, |
22 | 25 | { |
23 | 26 | title: '客户名称', |
24 | 27 | dataIndex: 'name', |
25 | 28 | width: 100, |
29 | + ellipsis: true, | |
26 | 30 | hideInSearch: true, |
27 | 31 | }, |
28 | 32 | { |
29 | 33 | title: '单位名称', |
30 | 34 | width: 150, |
35 | + ellipsis: true, | |
31 | 36 | dataIndex: 'companyName', |
32 | 37 | hideInSearch: true, |
33 | 38 | }, |
34 | 39 | { |
35 | 40 | title: '单位地址', |
36 | 41 | width: 250, |
42 | + ellipsis: true, | |
37 | 43 | dataIndex: 'companyAddressText', |
38 | 44 | hideInSearch: true, |
39 | 45 | }, |
40 | 46 | { |
41 | 47 | title: '联系电话', |
42 | 48 | width: 150, |
49 | + ellipsis: true, | |
43 | 50 | dataIndex: 'phoneNumber', |
44 | 51 | hideInSearch: true, |
45 | 52 | }, |
46 | 53 | { |
47 | 54 | title: '客户来源', |
48 | 55 | width: 150, |
56 | + ellipsis: true, | |
49 | 57 | dataIndex: 'source', |
50 | 58 | hideInSearch: true, |
51 | 59 | }, |
... | ... | @@ -53,17 +61,20 @@ const columns = [ |
53 | 61 | title: '推荐人', |
54 | 62 | dataIndex: 'referrers', |
55 | 63 | width: 150, |
64 | + ellipsis: true, | |
56 | 65 | hideInSearch: true, |
57 | 66 | }, |
58 | 67 | { |
59 | 68 | title: '客户需求', |
60 | 69 | dataIndex: 'requirements', |
61 | 70 | width: 150, |
71 | + ellipsis: true, | |
62 | 72 | hideInSearch: true, |
63 | 73 | }, |
64 | 74 | { |
65 | 75 | title: '是否已报方案', |
66 | 76 | width: 150, |
77 | + ellipsis: true, | |
67 | 78 | dataIndex: 'hasSchemeText', |
68 | 79 | hideInSearch: true, |
69 | 80 | }, |
... | ... | @@ -71,6 +82,7 @@ const columns = [ |
71 | 82 | title: '报价时间', |
72 | 83 | key: 'since', |
73 | 84 | width: 150, |
85 | + ellipsis: true, | |
74 | 86 | dataIndex: 'quoteDatetime', |
75 | 87 | valueType: 'dateTime', |
76 | 88 | hideInSearch: true, |
... | ... | @@ -78,12 +90,14 @@ const columns = [ |
78 | 90 | { |
79 | 91 | title: '跟进状态', |
80 | 92 | width: 150, |
93 | + ellipsis: true, | |
81 | 94 | dataIndex: 'tradeStatusText', |
82 | 95 | hideInSearch: true, |
83 | 96 | }, |
84 | 97 | { |
85 | 98 | title: '客户等级', |
86 | 99 | width: 150, |
100 | + ellipsis: true, | |
87 | 101 | dataIndex: 'levelText', |
88 | 102 | hideInSearch: true, |
89 | 103 | }, |
... | ... | @@ -91,6 +105,7 @@ const columns = [ |
91 | 105 | title: '创建时间', |
92 | 106 | key: 'since', |
93 | 107 | width: 150, |
108 | + ellipsis: true, | |
94 | 109 | dataIndex: 'createTime', |
95 | 110 | valueType: 'dateTime', |
96 | 111 | hideInSearch: true, |
... | ... | @@ -99,6 +114,7 @@ const columns = [ |
99 | 114 | title: '最新跟进时间', |
100 | 115 | key: 'since', |
101 | 116 | width: 150, |
117 | + ellipsis: true, | |
102 | 118 | dataIndex: 'latestCommunicationTime', |
103 | 119 | valueType: 'dateTime', |
104 | 120 | hideInSearch: true, |
... | ... | @@ -207,101 +223,128 @@ const columns = [ |
207 | 223 | |
208 | 224 | export default () => { |
209 | 225 | const [messageApi, contextHolder] = message.useMessage(); |
226 | + const [groupFilter, setGroupFilter] = useState('All'); | |
227 | + const [groupFilterOptions, setGroupFilterDataOptions] = useState([]); | |
210 | 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 | 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 | 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 | 155 | </Col> |
156 | 156 | <Col className="title col_18 no-border"> |
157 | 157 | 电子发票( |
158 | - {data.type === 'SPECIAL_TICKET' | |
159 | - ? '增值税专用发票' | |
160 | - : '增值税普通发票'} | |
161 | - ) | |
158 | + {data.type === 'SPECIAL_TICKET' ? '增值税专用发票' : '普通发票'}) | |
162 | 159 | </Col> |
163 | 160 | <UnderLine className="UnderLine"> |
164 | 161 | <div></div> |
... | ... | @@ -198,13 +195,13 @@ export default ({ data }) => { |
198 | 195 | <Col className=""> |
199 | 196 | <div className="text-center">单位</div> |
200 | 197 | </Col> |
201 | - <Col className=""> | |
198 | + <Col className="col_2"> | |
202 | 199 | <div className="text-center">数量</div> |
203 | 200 | </Col> |
204 | 201 | <Col className="col_2"> |
205 | 202 | <div className="text-center">单价</div> |
206 | 203 | </Col> |
207 | - <Col className="col_3"> | |
204 | + <Col className="col_2"> | |
208 | 205 | <div className="text-center">金额</div> |
209 | 206 | </Col> |
210 | 207 | <Col className=""> |
... | ... | @@ -242,22 +239,22 @@ export default ({ data }) => { |
242 | 239 | > |
243 | 240 | <div className="text-center">{specification}</div> |
244 | 241 | </Col> |
245 | - <Col className="col_4 transparent-border" key={'unit'}> | |
242 | + <Col className=" transparent-border" key={'unit'}> | |
246 | 243 | <div className="text-center">{unit}</div> |
247 | 244 | </Col> |
248 | - <Col className="col_4 transparent-border" key={'quantity'}> | |
245 | + <Col className="col_2 transparent-border" key={'quantity'}> | |
249 | 246 | <div className="text-center">{quantity}</div> |
250 | 247 | </Col> |
251 | 248 | <Col className="col_2 transparent-border" key={'price'}> |
252 | 249 | <div className="text-center">{price}</div> |
253 | 250 | </Col> |
254 | 251 | <Col |
255 | - className="col_3 transparent-border" | |
252 | + className="col_2 transparent-border" | |
256 | 253 | key={'totalPrice'} |
257 | 254 | > |
258 | 255 | <div className="text-center">{totalPrice}</div> |
259 | 256 | </Col> |
260 | - <Col className="col_9 transparent-border" key={'taxRate'}> | |
257 | + <Col className=" transparent-border" key={'taxRate'}> | |
261 | 258 | <div className="text-center">{taxRate}</div> |
262 | 259 | </Col> |
263 | 260 | <Col className="col_2 transparent-border" key={'taxPrice'}> | ... | ... |
src/pages/Invoice/components/InvoiceModal.tsx
src/pages/Invoice/components/InvoiceRecordDetailModal.tsx
... | ... | @@ -12,7 +12,6 @@ import { |
12 | 12 | ModalForm, |
13 | 13 | ProCard, |
14 | 14 | ProForm, |
15 | - ProFormFieldSet, | |
16 | 15 | ProFormInstance, |
17 | 16 | ProFormList, |
18 | 17 | ProFormSelect, |
... | ... | @@ -83,16 +82,15 @@ export default ({ id, setVisible }) => { |
83 | 82 | const data = ret.data; |
84 | 83 | const orderIdMap = data.orderIdMap; |
85 | 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 | 94 | return { |
97 | 95 | ...data, |
98 | 96 | orderIdList: orderIdList, |
... | ... | @@ -248,53 +246,45 @@ export default ({ id, setVisible }) => { |
248 | 246 | { required: true, message: 'Please select your country!' }, |
249 | 247 | ]} |
250 | 248 | /> |
251 | - <ProFormFieldSet | |
252 | - name="list" | |
249 | + <ProFormList | |
253 | 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 | 288 | </ProForm.Group> |
299 | 289 | </ProCard> |
300 | 290 | <hr /> | ... | ... |
src/pages/Invoice/components/InvoicingModal.tsx
1 | 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 | 4 | import { Button, Form, message } from 'antd'; |
8 | 5 | |
9 | 6 | export default ({ selectedRowKeys, reloadRecordTable }) => { |
... | ... | @@ -41,7 +38,7 @@ export default ({ selectedRowKeys, reloadRecordTable }) => { |
41 | 38 | return true; |
42 | 39 | }} |
43 | 40 | > |
44 | - <ProFormSelect | |
41 | + {/*<ProFormSelect | |
45 | 42 | name="invoicingAccount" |
46 | 43 | label="开票账号" |
47 | 44 | request={async () => { |
... | ... | @@ -55,7 +52,7 @@ export default ({ selectedRowKeys, reloadRecordTable }) => { |
55 | 52 | }} |
56 | 53 | placeholder="请选择开票账号" |
57 | 54 | rules={[{ required: true, message: '请选择开票账号!' }]} |
58 | - /> | |
55 | + />*/} | |
59 | 56 | </ModalForm> |
60 | 57 | ); |
61 | 58 | }; | ... | ... |
src/pages/Invoice/components/ManualInvoicingModal.tsx
... | ... | @@ -6,11 +6,7 @@ import { |
6 | 6 | } from '@/services'; |
7 | 7 | import { |
8 | 8 | ModalForm, |
9 | - ProCard, | |
10 | 9 | ProFormDatePicker, |
11 | - ProFormDigit, | |
12 | - ProFormList, | |
13 | - ProFormMoney, | |
14 | 10 | ProFormText, |
15 | 11 | } from '@ant-design/pro-components'; |
16 | 12 | import { Col, Form, Row, message } from 'antd'; |
... | ... | @@ -52,12 +48,12 @@ export default ({ record }) => { |
52 | 48 | } |
53 | 49 | }} |
54 | 50 | > |
55 | - <ProFormText | |
51 | + {/*<ProFormText | |
56 | 52 | rules={[{ required: true, message: '此项为必填项' }]} |
57 | 53 | width={'md'} |
58 | 54 | name="invoicingPerson" |
59 | 55 | label="开票人" |
60 | - /> | |
56 | + />*/} | |
61 | 57 | <ProFormText |
62 | 58 | rules={[{ required: true, message: '此项为必填项' }]} |
63 | 59 | width={'md'} |
... | ... | @@ -102,7 +98,7 @@ export default ({ record }) => { |
102 | 98 | ></UploadC> |
103 | 99 | </Col> |
104 | 100 | </Row> |
105 | - <ProFormList | |
101 | + {/*<ProFormList | |
106 | 102 | name="invoiceDetailDtoList" |
107 | 103 | label="明细" |
108 | 104 | creatorButtonProps={false} |
... | ... | @@ -128,7 +124,7 @@ export default ({ record }) => { |
128 | 124 | /> |
129 | 125 | <ProFormDigit label="税率" name="taxRate" min={0} max={100} /> |
130 | 126 | <ProFormMoney label="税额" name="taxPrice" locale="zh-CN" min={0} /> |
131 | - </ProFormList> | |
127 | + </ProFormList>*/} | |
132 | 128 | </ModalForm> |
133 | 129 | ); |
134 | 130 | }; | ... | ... |
src/pages/Invoice/index.tsx
... | ... | @@ -298,7 +298,7 @@ const InvoicePage = () => { |
298 | 298 | { |
299 | 299 | title: '申请开票时间', |
300 | 300 | dataIndex: 'createTime', |
301 | - valueType: 'dateRange', | |
301 | + valueType: 'dateTimeRange', | |
302 | 302 | width: 200, |
303 | 303 | hideInTable: true, |
304 | 304 | search: { |
... | ... | @@ -319,24 +319,32 @@ const InvoicePage = () => { |
319 | 319 | render: (text, record) => { |
320 | 320 | return [ |
321 | 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 | 349 | {record.paths.includes('INVOICING') && ( |
342 | 350 | <ManualInvoicingModal |
... | ... | @@ -371,8 +379,8 @@ const InvoicePage = () => { |
371 | 379 | }, |
372 | 380 | { |
373 | 381 | title: '开票日期', |
374 | - dataIndex: 'invoicingTime', | |
375 | - valueType: 'dateTime', | |
382 | + dataIndex: 'invoicingDate', | |
383 | + valueType: 'date', | |
376 | 384 | hideInSearch: true, |
377 | 385 | ellipsis: true, |
378 | 386 | }, |
... | ... | @@ -491,15 +499,15 @@ const InvoicePage = () => { |
491 | 499 | }, |
492 | 500 | { |
493 | 501 | title: '开票日期', |
494 | - dataIndex: 'invoicingTime', | |
502 | + dataIndex: 'invoicingDate', | |
495 | 503 | valueType: 'dateRange', |
496 | 504 | hideInTable: true, |
497 | 505 | search: { |
498 | 506 | transform: (value) => { |
499 | 507 | if (value) { |
500 | 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 | 527 | valueType: 'option', |
520 | 528 | key: 'option', |
521 | 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 | 553 | <ModalForm |
545 | 554 | title="提示" |
546 | 555 | trigger={ |
... | ... | @@ -831,7 +840,8 @@ const InvoicePage = () => { |
831 | 840 | actionRef={waitDealrecordActionRef} |
832 | 841 | cardBordered |
833 | 842 | pagination={{ |
834 | - pageSize: 10, | |
843 | + showSizeChanger: true, // 显示可以选择每页显示条数的下拉菜单 | |
844 | + pageSizeOptions: ['10', '20', '50', '100'], // 设置可以选择的每页显示条数选项 | |
835 | 845 | }} |
836 | 846 | rowSelection={{ |
837 | 847 | selections: [Table.SELECTION_ALL, Table.SELECTION_INVERT], |
... | ... | @@ -904,7 +914,8 @@ const InvoicePage = () => { |
904 | 914 | actionRef={processedRecordRef} |
905 | 915 | cardBordered |
906 | 916 | pagination={{ |
907 | - pageSize: 10, | |
917 | + showSizeChanger: true, // 显示可以选择每页显示条数的下拉菜单 | |
918 | + pageSizeOptions: ['10', '20', '50', '100'], // 设置可以选择的每页显示条数选项 | |
908 | 919 | }} |
909 | 920 | editable={{ |
910 | 921 | type: 'multiple', | ... | ... |
src/pages/Order/components/InvoicingDrawerForm.tsx
... | ... | @@ -2,6 +2,7 @@ |
2 | 2 | import InvoiceModal from '@/pages/Invoice/components/InvoiceModal'; |
3 | 3 | import { |
4 | 4 | postServiceConstGetPayeeEnum, |
5 | + postServiceConstInitInvoiceDetailNames, | |
5 | 6 | postServiceConstInvoiceType, |
6 | 7 | postServiceConstInvoicingType, |
7 | 8 | postServiceConstListInvoiceDetailNames, |
... | ... | @@ -15,33 +16,91 @@ import { |
15 | 16 | ProCard, |
16 | 17 | ProFormDigit, |
17 | 18 | ProFormGroup, |
19 | + ProFormInstance, | |
18 | 20 | ProFormList, |
19 | 21 | ProFormMoney, |
20 | 22 | ProFormSelect, |
21 | 23 | ProFormText, |
22 | 24 | ProFormTextArea, |
23 | 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 | 29 | export default ({ dataList, setVisible, onClose }) => { |
28 | 30 | // let subOrderIds = dataList?.map((item) => { |
29 | 31 | // return item.id; |
30 | - // }); | |
32 | + // }) | |
31 | 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 | 93 | useEffect(() => {}, []); |
33 | 94 | return ( |
34 | 95 | <DrawerForm |
35 | 96 | open |
36 | - title="合并开票" | |
97 | + title="申请开票" | |
37 | 98 | resize={{ |
38 | - onResize() { | |
39 | - console.log('resize!'); | |
40 | - }, | |
41 | 99 | maxWidth: window.innerWidth * 0.8, |
42 | 100 | minWidth: 500, |
43 | 101 | }} |
44 | 102 | form={form} |
103 | + formRef={formRef} | |
45 | 104 | autoFocusFirstInput |
46 | 105 | drawerProps={{ |
47 | 106 | destroyOnClose: true, |
... | ... | @@ -53,12 +112,11 @@ export default ({ dataList, setVisible, onClose }) => { |
53 | 112 | key={'invoicePreview'} |
54 | 113 | button={<Button type="primary"> 发票预览 </Button>} |
55 | 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 | 120 | return { |
63 | 121 | ...form.getFieldsValue(), |
64 | 122 | totalPrice: totalPrice, |
... | ... | @@ -75,7 +133,7 @@ export default ({ dataList, setVisible, onClose }) => { |
75 | 133 | postServiceInvoiceApplyInvoice({ |
76 | 134 | data: { |
77 | 135 | ...values, |
78 | - subOrderIds: dataList.map((item) => { | |
136 | + subOrderIds: dataListCopy.map((item) => { | |
79 | 137 | return item.id; |
80 | 138 | }), |
81 | 139 | }, |
... | ... | @@ -90,7 +148,7 @@ export default ({ dataList, setVisible, onClose }) => { |
90 | 148 | name="subOrderIdObjs" |
91 | 149 | readonly={true} |
92 | 150 | label="开票订单" |
93 | - initialValue={dataList.map((item) => { | |
151 | + initialValue={dataListCopy.map((item) => { | |
94 | 152 | return { |
95 | 153 | value: item.id, |
96 | 154 | }; |
... | ... | @@ -181,7 +239,7 @@ export default ({ dataList, setVisible, onClose }) => { |
181 | 239 | name="price" |
182 | 240 | locale="zh-CN" |
183 | 241 | rules={[{ required: true, message: '请填写开票金额!' }]} |
184 | - initialValue={dataList.reduce((accumulator, currentValue) => { | |
242 | + initialValue={dataListCopy.reduce((accumulator, currentValue) => { | |
185 | 243 | return accumulator + currentValue.subOrderPayment; |
186 | 244 | }, 0)} |
187 | 245 | /> |
... | ... | @@ -257,23 +315,24 @@ export default ({ dataList, setVisible, onClose }) => { |
257 | 315 | <ProFormList |
258 | 316 | name="invoiceDetails" |
259 | 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 | 332 | rules={[ |
273 | 333 | { |
274 | 334 | required: true, |
275 | 335 | validator: async (_, value) => { |
276 | - console.log(value); | |
277 | 336 | if (value && value.length > 0) { |
278 | 337 | return; |
279 | 338 | } |
... | ... | @@ -282,7 +341,6 @@ export default ({ dataList, setVisible, onClose }) => { |
282 | 341 | }, |
283 | 342 | ]} |
284 | 343 | itemRender={(doms, listMeta) => { |
285 | - console.log(listMeta); | |
286 | 344 | return ( |
287 | 345 | <ProCard |
288 | 346 | bordered |
... | ... | @@ -292,12 +350,23 @@ export default ({ dataList, setVisible, onClose }) => { |
292 | 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 | 370 | <ProFormSelect |
302 | 371 | key={'projectName' + listMeta.index} |
303 | 372 | width="md" |
... | ... | @@ -343,12 +412,14 @@ export default ({ dataList, setVisible, onClose }) => { |
343 | 412 | option.productAndServiceCatagoryAbbreviation + |
344 | 413 | '*' + |
345 | 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 | 418 | form.setFieldValue('invoiceDetails', copyList); |
349 | 419 | }} |
350 | 420 | debounceTime={1000} |
351 | 421 | label="项目名称" |
422 | + initialValue={listMeta.record.projectName} | |
352 | 423 | placeholder="请输入名称" |
353 | 424 | /> |
354 | 425 | <ProFormText |
... | ... | @@ -377,8 +448,6 @@ export default ({ dataList, setVisible, onClose }) => { |
377 | 448 | len += 1; // 半角字符 |
378 | 449 | } |
379 | 450 | } |
380 | - console.log(value); | |
381 | - console.log(len); | |
382 | 451 | if (len <= 40) { |
383 | 452 | return Promise.resolve(); |
384 | 453 | } |
... | ... | @@ -400,18 +469,46 @@ export default ({ dataList, setVisible, onClose }) => { |
400 | 469 | key={'quantity' + listMeta.index} |
401 | 470 | label="数量" |
402 | 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 | 483 | <ProFormDigit |
406 | 484 | key={'price' + listMeta.index} |
407 | 485 | label="单价" |
408 | 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 | 498 | <ProFormMoney |
412 | 499 | key={'totalPrice' + listMeta.index} |
413 | 500 | label="金额" |
414 | 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 | 512 | locale="zh-CN" |
416 | 513 | /> |
417 | 514 | </ProCard> | ... | ... |
src/pages/Order/index.tsx
... | ... | @@ -1283,7 +1283,7 @@ const OrderPage = () => { |
1283 | 1283 | </div> |
1284 | 1284 | </Flex> |
1285 | 1285 | <Flex className="w-[18%]" wrap="wrap" gap="small"> |
1286 | - {optRecord.subPath?.includes('postAudit') ? ( | |
1286 | + {optRecord.paths?.includes('postAudit') ? ( | |
1287 | 1287 | <Button |
1288 | 1288 | className="p-0" |
1289 | 1289 | type="link" |
... | ... | @@ -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 | 1303 | <Button |
1304 | 1304 | className="p-0" |
1305 | 1305 | type="link" |
... | ... | @@ -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 | 1320 | <Button |
1321 | 1321 | className="p-0" |
1322 | 1322 | type="link" |
... | ... | @@ -1333,7 +1333,7 @@ const OrderPage = () => { |
1333 | 1333 | ) : ( |
1334 | 1334 | '' |
1335 | 1335 | )} |
1336 | - {optRecord.subPath?.includes('salesConfirm') && ( | |
1336 | + {optRecord.paths?.includes('salesConfirm') && ( | |
1337 | 1337 | <ButtonConfirm |
1338 | 1338 | className="p-0" |
1339 | 1339 | title="是否确认此商城订单信息无误?确认无误之后订单将进入审核流程。" |
... | ... | @@ -1352,7 +1352,7 @@ const OrderPage = () => { |
1352 | 1352 | }} |
1353 | 1353 | /> |
1354 | 1354 | )} |
1355 | - {optRecord.subPath?.includes('uploadPaymentReceiptBill') ? ( | |
1355 | + {optRecord.paths?.includes('uploadPaymentReceiptBill') ? ( | |
1356 | 1356 | <Button |
1357 | 1357 | className="p-0" |
1358 | 1358 | type="link" |
... | ... | @@ -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 | 1370 | /*optRecord.afterInvoicingStatus==='PARTIAL_INVOICING'|| |
1371 | 1371 | optRecord.afterInvoicingStatus==='COMPLETE_INVOICING'*/ |
1372 | 1372 | <Button |
... | ... | @@ -1382,7 +1382,7 @@ const OrderPage = () => { |
1382 | 1382 | ) : ( |
1383 | 1383 | '' |
1384 | 1384 | )} |
1385 | - {optRecord.subPath?.includes('reissue') ? ( | |
1385 | + {optRecord.paths?.includes('reissue') ? ( | |
1386 | 1386 | /*optRecord.afterInvoicingStatus==='PARTIAL_INVOICING'|| |
1387 | 1387 | optRecord.afterInvoicingStatus==='COMPLETE_INVOICING'*/ |
1388 | 1388 | <Button |
... | ... | @@ -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 | 1404 | <Button |
1405 | 1405 | className="p-0" |
1406 | 1406 | type="link" |
... | ... | @@ -1416,7 +1416,7 @@ const OrderPage = () => { |
1416 | 1416 | ) : ( |
1417 | 1417 | '' |
1418 | 1418 | )} |
1419 | - {optRecord.subPath?.includes('confirmReissue') ? ( | |
1419 | + {optRecord.paths?.includes('confirmReissue') ? ( | |
1420 | 1420 | <Button |
1421 | 1421 | className="p-0" |
1422 | 1422 | type="link" |
... | ... | @@ -1433,7 +1433,7 @@ const OrderPage = () => { |
1433 | 1433 | '' |
1434 | 1434 | )} |
1435 | 1435 | |
1436 | - {optRecord.subPath?.includes('leaderAudit') ? ( | |
1436 | + {optRecord.paths?.includes('leaderAudit') ? ( | |
1437 | 1437 | <Button |
1438 | 1438 | className="p-0" |
1439 | 1439 | type="link" |
... | ... | @@ -1450,7 +1450,7 @@ const OrderPage = () => { |
1450 | 1450 | '' |
1451 | 1451 | )} |
1452 | 1452 | |
1453 | - {optRecord.subPath?.includes('creditAudit') ? ( | |
1453 | + {optRecord.paths?.includes('creditAudit') ? ( | |
1454 | 1454 | <Button |
1455 | 1455 | className="p-0" |
1456 | 1456 | type="link" |
... | ... | @@ -1467,7 +1467,7 @@ const OrderPage = () => { |
1467 | 1467 | '' |
1468 | 1468 | )} |
1469 | 1469 | |
1470 | - {optRecord.subPath?.includes('auditPaymentReceipt') ? ( | |
1470 | + {optRecord.paths?.includes('auditPaymentReceipt') ? ( | |
1471 | 1471 | <Button |
1472 | 1472 | className="p-0" |
1473 | 1473 | type="link" |
... | ... | @@ -1483,7 +1483,7 @@ const OrderPage = () => { |
1483 | 1483 | '' |
1484 | 1484 | )} |
1485 | 1485 | |
1486 | - {optRecord.subPath?.includes('modifiedAuditRequest') ? ( | |
1486 | + {optRecord.paths?.includes('modifiedAuditRequest') ? ( | |
1487 | 1487 | <Button |
1488 | 1488 | className="p-0" |
1489 | 1489 | type="link" |
... | ... | @@ -1499,7 +1499,7 @@ const OrderPage = () => { |
1499 | 1499 | '' |
1500 | 1500 | )} |
1501 | 1501 | |
1502 | - {optRecord.subPath?.includes('applyModify') ? ( | |
1502 | + {optRecord.paths?.includes('applyModify') ? ( | |
1503 | 1503 | <Button |
1504 | 1504 | className="p-0" |
1505 | 1505 | type="link" |
... | ... | @@ -1515,7 +1515,7 @@ const OrderPage = () => { |
1515 | 1515 | '' |
1516 | 1516 | )} |
1517 | 1517 | |
1518 | - {optRecord.subPath?.includes('modifiedLeaderAuditRequest') ? ( | |
1518 | + {optRecord.paths?.includes('modifiedLeaderAuditRequest') ? ( | |
1519 | 1519 | <Button |
1520 | 1520 | className="p-0" |
1521 | 1521 | type="link" |
... | ... | @@ -1531,7 +1531,7 @@ const OrderPage = () => { |
1531 | 1531 | '' |
1532 | 1532 | )} |
1533 | 1533 | |
1534 | - {optRecord.subPath?.includes('shippingWarehouseChangeRequest') ? ( | |
1534 | + {optRecord.paths?.includes('shippingWarehouseChangeRequest') ? ( | |
1535 | 1535 | <Button |
1536 | 1536 | className="p-0" |
1537 | 1537 | type="link" |
... | ... | @@ -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 | 1551 | <ButtonConfirm |
1552 | 1552 | className="p-0" |
1553 | 1553 | title="确认取消申请开票?" |
... | ... | @@ -1568,7 +1568,7 @@ const OrderPage = () => { |
1568 | 1568 | ) : ( |
1569 | 1569 | '' |
1570 | 1570 | )} |
1571 | - {optRecord.subPath?.includes('saleCancelInvoicing') ? ( | |
1571 | + {optRecord.paths?.includes('saleCancelInvoicing') ? ( | |
1572 | 1572 | <ButtonConfirm |
1573 | 1573 | className="p-0" |
1574 | 1574 | title="确认取消申请开票?" |
... | ... | @@ -1589,7 +1589,7 @@ const OrderPage = () => { |
1589 | 1589 | ) : ( |
1590 | 1590 | '' |
1591 | 1591 | )} |
1592 | - {optRecord.subPath?.includes('noNeedInvoicingEdit') ? ( | |
1592 | + {optRecord.paths?.includes('noNeedInvoicingEdit') ? ( | |
1593 | 1593 | <Button |
1594 | 1594 | className="p-0" |
1595 | 1595 | type="link" |
... | ... | @@ -1604,7 +1604,7 @@ const OrderPage = () => { |
1604 | 1604 | ) : ( |
1605 | 1605 | '' |
1606 | 1606 | )} |
1607 | - {optRecord.subPath?.includes('sendProduct') ? ( | |
1607 | + {optRecord.paths?.includes('sendProduct') ? ( | |
1608 | 1608 | <Button |
1609 | 1609 | className="p-0" |
1610 | 1610 | type="link" |
... | ... | @@ -1621,7 +1621,7 @@ const OrderPage = () => { |
1621 | 1621 | '' |
1622 | 1622 | )} |
1623 | 1623 | |
1624 | - {optRecord.subPath?.includes('supplierSendOrder') ? ( | |
1624 | + {optRecord.paths?.includes('supplierSendOrder') ? ( | |
1625 | 1625 | <Button |
1626 | 1626 | className="p-0" |
1627 | 1627 | type="link" |
... | ... | @@ -1639,7 +1639,7 @@ const OrderPage = () => { |
1639 | 1639 | '' |
1640 | 1640 | )} |
1641 | 1641 | |
1642 | - {optRecord.subPath?.includes('procureSend') ? ( | |
1642 | + {optRecord.paths?.includes('procureSend') ? ( | |
1643 | 1643 | <Button |
1644 | 1644 | className="p-0" |
1645 | 1645 | type="link" |
... | ... | @@ -1656,7 +1656,7 @@ const OrderPage = () => { |
1656 | 1656 | '' |
1657 | 1657 | )} |
1658 | 1658 | |
1659 | - {optRecord.subPath?.includes('editProductionTime') ? ( | |
1659 | + {optRecord.paths?.includes('editProductionTime') ? ( | |
1660 | 1660 | <Button |
1661 | 1661 | className="p-0" |
1662 | 1662 | type="link" |
... | ... | @@ -1671,7 +1671,7 @@ const OrderPage = () => { |
1671 | 1671 | '' |
1672 | 1672 | )} |
1673 | 1673 | |
1674 | - {optRecord.subPath?.includes('queryAnnex') && | |
1674 | + {optRecord.paths?.includes('queryAnnex') && | |
1675 | 1675 | optRecord.listAnnex?.length > 0 ? ( |
1676 | 1676 | <Button |
1677 | 1677 | className="p-0" |
... | ... | @@ -1688,7 +1688,7 @@ const OrderPage = () => { |
1688 | 1688 | '' |
1689 | 1689 | )} |
1690 | 1690 | |
1691 | - {optRecord.subPath?.includes('modifySendInformation') ? ( | |
1691 | + {optRecord.paths?.includes('modifySendInformation') ? ( | |
1692 | 1692 | <Button |
1693 | 1693 | className="p-0" |
1694 | 1694 | type="link" |
... | ... | @@ -1704,7 +1704,7 @@ const OrderPage = () => { |
1704 | 1704 | '' |
1705 | 1705 | )} |
1706 | 1706 | |
1707 | - {optRecord.subPath?.includes('printOrder') ? ( | |
1707 | + {optRecord.paths?.includes('printOrder') ? ( | |
1708 | 1708 | <Button |
1709 | 1709 | className="p-0" |
1710 | 1710 | type="link" |
... | ... | @@ -1720,7 +1720,7 @@ const OrderPage = () => { |
1720 | 1720 | '' |
1721 | 1721 | )} |
1722 | 1722 | |
1723 | - {optRecord.subPath?.includes('supplierPrint') ? ( | |
1723 | + {optRecord.paths?.includes('supplierPrint') ? ( | |
1724 | 1724 | <Button |
1725 | 1725 | className="p-0" |
1726 | 1726 | type="link" |
... | ... | @@ -1736,7 +1736,7 @@ const OrderPage = () => { |
1736 | 1736 | '' |
1737 | 1737 | )} |
1738 | 1738 | |
1739 | - {optRecord.subPath?.includes('procurePrint') ? ( | |
1739 | + {optRecord.paths?.includes('procurePrint') ? ( | |
1740 | 1740 | <ButtonConfirm |
1741 | 1741 | className="p-0" |
1742 | 1742 | title="确认打印?" |
... | ... | @@ -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 | 1774 | <Button |
1775 | 1775 | className="p-0" |
1776 | 1776 | type="link" |
... | ... | @@ -1786,7 +1786,7 @@ const OrderPage = () => { |
1786 | 1786 | '' |
1787 | 1787 | )} |
1788 | 1788 | |
1789 | - {optRecord.subPath?.includes('invoicing') ? ( | |
1789 | + {optRecord.paths?.includes('invoicing') ? ( | |
1790 | 1790 | <Button |
1791 | 1791 | className="p-0" |
1792 | 1792 | type="link" |
... | ... | @@ -1803,7 +1803,7 @@ const OrderPage = () => { |
1803 | 1803 | '' |
1804 | 1804 | )} |
1805 | 1805 | |
1806 | - {optRecord.subPath?.includes('applyInvoicing') ? ( | |
1806 | + {optRecord.paths?.includes('applyInvoicing') ? ( | |
1807 | 1807 | <Button |
1808 | 1808 | className="p-0" |
1809 | 1809 | type="link" |
... | ... | @@ -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 | 1824 | <Button |
1825 | 1825 | className="p-0" |
1826 | 1826 | type="link" |
... | ... | @@ -1837,7 +1837,7 @@ const OrderPage = () => { |
1837 | 1837 | '' |
1838 | 1838 | )} |
1839 | 1839 | |
1840 | - {optRecord.subPath?.includes('checkOrder') ? ( | |
1840 | + {optRecord.paths?.includes('checkOrder') ? ( | |
1841 | 1841 | <Button |
1842 | 1842 | className="p-0" |
1843 | 1843 | type="link" |
... | ... | @@ -1854,7 +1854,7 @@ const OrderPage = () => { |
1854 | 1854 | '' |
1855 | 1855 | )} |
1856 | 1856 | |
1857 | - {optRecord.subPath?.includes('afterSalesCheck') ? ( | |
1857 | + {optRecord.paths?.includes('afterSalesCheck') ? ( | |
1858 | 1858 | <Button |
1859 | 1859 | className="p-0" |
1860 | 1860 | type="link" |
... | ... | @@ -1870,7 +1870,7 @@ const OrderPage = () => { |
1870 | 1870 | '' |
1871 | 1871 | )} |
1872 | 1872 | |
1873 | - {optRecord.subPath?.includes('financeCheckOrder') ? ( | |
1873 | + {optRecord.paths?.includes('financeCheckOrder') ? ( | |
1874 | 1874 | <Button |
1875 | 1875 | className="p-0" |
1876 | 1876 | type="link" |
... | ... | @@ -1886,7 +1886,7 @@ const OrderPage = () => { |
1886 | 1886 | '' |
1887 | 1887 | )} |
1888 | 1888 | |
1889 | - {optRecord.subPath?.includes('procureCheckOrder') ? ( | |
1889 | + {optRecord.paths?.includes('procureCheckOrder') ? ( | |
1890 | 1890 | <Button |
1891 | 1891 | className="p-0" |
1892 | 1892 | type="link" |
... | ... | @@ -1902,7 +1902,7 @@ const OrderPage = () => { |
1902 | 1902 | '' |
1903 | 1903 | )} |
1904 | 1904 | |
1905 | - {optRecord.subPath?.includes('procureConvertProcure') ? ( | |
1905 | + {optRecord.paths?.includes('procureConvertProcure') ? ( | |
1906 | 1906 | <Button |
1907 | 1907 | className="p-0" |
1908 | 1908 | type="link" |
... | ... | @@ -1918,7 +1918,7 @@ const OrderPage = () => { |
1918 | 1918 | '' |
1919 | 1919 | )} |
1920 | 1920 | |
1921 | - {optRecord.subPath?.includes('rePrintOrder') ? ( | |
1921 | + {optRecord.paths?.includes('rePrintOrder') ? ( | |
1922 | 1922 | <Button |
1923 | 1923 | className="p-0" |
1924 | 1924 | type="link" |
... | ... | @@ -1934,7 +1934,7 @@ const OrderPage = () => { |
1934 | 1934 | '' |
1935 | 1935 | )} |
1936 | 1936 | |
1937 | - {optRecord.subPath?.includes('confirmReceipt') ? ( | |
1937 | + {optRecord.paths?.includes('confirmReceipt') ? ( | |
1938 | 1938 | <Button |
1939 | 1939 | className="p-0" |
1940 | 1940 | type="link" |
... | ... | @@ -1949,7 +1949,7 @@ const OrderPage = () => { |
1949 | 1949 | '' |
1950 | 1950 | )} |
1951 | 1951 | |
1952 | - {optRecord.subPath?.includes('applyAfterSales') ? ( | |
1952 | + {optRecord.paths?.includes('applyAfterSales') ? ( | |
1953 | 1953 | <Button |
1954 | 1954 | className="p-0" |
1955 | 1955 | type="link" |
... | ... | @@ -1965,7 +1965,7 @@ const OrderPage = () => { |
1965 | 1965 | '' |
1966 | 1966 | )} |
1967 | 1967 | |
1968 | - {optRecord.subPath?.includes('procureOrder') ? ( | |
1968 | + {optRecord.paths?.includes('procureOrder') ? ( | |
1969 | 1969 | <ButtonConfirm |
1970 | 1970 | className="p-0" |
1971 | 1971 | title="是否已下单?" |
... | ... | @@ -1985,7 +1985,7 @@ const OrderPage = () => { |
1985 | 1985 | '' |
1986 | 1986 | )} |
1987 | 1987 | |
1988 | - {optRecord.subPath?.includes('cancelSend') ? ( | |
1988 | + {optRecord.paths?.includes('cancelSend') ? ( | |
1989 | 1989 | <ButtonConfirm |
1990 | 1990 | className="p-0" |
1991 | 1991 | title="是否取消发货" |
... | ... | @@ -2005,7 +2005,7 @@ const OrderPage = () => { |
2005 | 2005 | '' |
2006 | 2006 | )} |
2007 | 2007 | |
2008 | - {optRecord.subPath?.includes('noNeedSend') ? ( | |
2008 | + {optRecord.paths?.includes('noNeedSend') ? ( | |
2009 | 2009 | <ButtonConfirm |
2010 | 2010 | className="p-0" |
2011 | 2011 | title="此订单是否无需发货?" |
... | ... | @@ -2025,7 +2025,7 @@ const OrderPage = () => { |
2025 | 2025 | '' |
2026 | 2026 | )} |
2027 | 2027 | |
2028 | - {optRecord.subPath?.includes('viewImages') ? ( | |
2028 | + {optRecord.paths?.includes('viewImages') ? ( | |
2029 | 2029 | <Button |
2030 | 2030 | className="p-0" |
2031 | 2031 | type="link" |
... | ... | @@ -2041,7 +2041,7 @@ const OrderPage = () => { |
2041 | 2041 | '' |
2042 | 2042 | )} |
2043 | 2043 | |
2044 | - {optRecord.subPath?.includes('confirmDeliver') ? ( | |
2044 | + {optRecord.paths?.includes('confirmDeliver') ? ( | |
2045 | 2045 | <Button |
2046 | 2046 | className="p-0" |
2047 | 2047 | type="link" |
... | ... | @@ -2057,7 +2057,7 @@ const OrderPage = () => { |
2057 | 2057 | '' |
2058 | 2058 | )} |
2059 | 2059 | |
2060 | - {optRecord.subPath?.includes('orderCancel') ? ( | |
2060 | + {optRecord.paths?.includes('orderCancel') ? ( | |
2061 | 2061 | <ButtonConfirm |
2062 | 2062 | className="p-0" |
2063 | 2063 | title="确认作废?" |
... | ... | @@ -2677,7 +2677,7 @@ const OrderPage = () => { |
2677 | 2677 | <Flex justify="flex-end"> |
2678 | 2678 | <Space.Compact direction="vertical" align="end"> |
2679 | 2679 | <Space wrap> |
2680 | - {record.mainPath?.includes('postAudit') ? ( | |
2680 | + {record.paths?.includes('postAudit') ? ( | |
2681 | 2681 | <Button |
2682 | 2682 | className="p-0" |
2683 | 2683 | type="link" |
... | ... | @@ -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 | 2697 | <Button |
2698 | 2698 | className="p-0" |
2699 | 2699 | type="link" |
... | ... | @@ -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 | 2712 | <Button |
2713 | 2713 | className="p-0" |
2714 | 2714 | type="link" |
... | ... | @@ -2725,7 +2725,7 @@ const OrderPage = () => { |
2725 | 2725 | ) : ( |
2726 | 2726 | '' |
2727 | 2727 | )} |
2728 | - {record.mainPath?.includes('salesConfirm') && ( | |
2728 | + {record.paths?.includes('salesConfirm') && ( | |
2729 | 2729 | <ButtonConfirm |
2730 | 2730 | className="p-0" |
2731 | 2731 | title="是否确认此商城订单信息无误?确认无误之后订单将进入审核流程。" |
... | ... | @@ -2756,7 +2756,7 @@ const OrderPage = () => { |
2756 | 2756 | }} |
2757 | 2757 | /> |
2758 | 2758 | )} |
2759 | - {record.mainPath?.includes('uploadPaymentReceiptBill') ? ( | |
2759 | + {record.paths?.includes('uploadPaymentReceiptBill') ? ( | |
2760 | 2760 | <Button |
2761 | 2761 | className="p-0" |
2762 | 2762 | type="link" |
... | ... | @@ -2771,7 +2771,7 @@ const OrderPage = () => { |
2771 | 2771 | '' |
2772 | 2772 | )} |
2773 | 2773 | |
2774 | - {record.mainPath?.includes('modifiedAuditRequest') ? ( | |
2774 | + {record.paths?.includes('modifiedAuditRequest') ? ( | |
2775 | 2775 | <Button |
2776 | 2776 | className="p-0" |
2777 | 2777 | type="link" |
... | ... | @@ -2787,7 +2787,7 @@ const OrderPage = () => { |
2787 | 2787 | '' |
2788 | 2788 | )} |
2789 | 2789 | |
2790 | - {record.mainPath?.includes('auditPaymentReceipt') ? ( | |
2790 | + {record.paths?.includes('auditPaymentReceipt') ? ( | |
2791 | 2791 | <Button |
2792 | 2792 | className="p-0" |
2793 | 2793 | type="link" |
... | ... | @@ -2803,7 +2803,7 @@ const OrderPage = () => { |
2803 | 2803 | '' |
2804 | 2804 | )} |
2805 | 2805 | |
2806 | - {record.mainPath?.includes('modifiedLeaderAuditRequest') ? ( | |
2806 | + {record.paths?.includes('modifiedLeaderAuditRequest') ? ( | |
2807 | 2807 | <Button |
2808 | 2808 | className="p-0" |
2809 | 2809 | type="link" |
... | ... | @@ -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 | 2839 | /*optRecord.afterInvoicingStatus==='PARTIAL_INVOICING'|| |
2840 | 2840 | optRecord.afterInvoicingStatus==='COMPLETE_INVOICING'*/ |
2841 | 2841 | <Button |
... | ... | @@ -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 | 2857 | <Button |
2858 | 2858 | className="p-0" |
2859 | 2859 | type="link" |
... | ... | @@ -2870,7 +2870,7 @@ const OrderPage = () => { |
2870 | 2870 | '' |
2871 | 2871 | )} |
2872 | 2872 | |
2873 | - {record.mainPath?.includes('reissue') ? ( | |
2873 | + {record.paths?.includes('reissue') ? ( | |
2874 | 2874 | /*optRecord.afterInvoicingStatus==='PARTIAL_INVOICING'|| |
2875 | 2875 | optRecord.afterInvoicingStatus==='COMPLETE_INVOICING'*/ |
2876 | 2876 | <Button |
... | ... | @@ -2887,7 +2887,7 @@ const OrderPage = () => { |
2887 | 2887 | '' |
2888 | 2888 | )} |
2889 | 2889 | |
2890 | - {record.mainPath?.includes('confirmReissue') ? ( | |
2890 | + {record.paths?.includes('confirmReissue') ? ( | |
2891 | 2891 | <Button |
2892 | 2892 | className="p-0" |
2893 | 2893 | type="link" |
... | ... | @@ -2904,7 +2904,7 @@ const OrderPage = () => { |
2904 | 2904 | '' |
2905 | 2905 | )} |
2906 | 2906 | |
2907 | - {record.mainPath?.includes('procureOrder') ? ( | |
2907 | + {record.paths?.includes('procureOrder') ? ( | |
2908 | 2908 | <ButtonConfirm |
2909 | 2909 | className="p-0" |
2910 | 2910 | title="是否下单?" |
... | ... | @@ -2936,7 +2936,7 @@ const OrderPage = () => { |
2936 | 2936 | '' |
2937 | 2937 | )} |
2938 | 2938 | |
2939 | - {record.mainPath?.includes('cancelSend') ? ( | |
2939 | + {record.paths?.includes('cancelSend') ? ( | |
2940 | 2940 | <ButtonConfirm |
2941 | 2941 | className="p-0" |
2942 | 2942 | title="是否取消发货?" |
... | ... | @@ -2968,7 +2968,7 @@ const OrderPage = () => { |
2968 | 2968 | '' |
2969 | 2969 | )} |
2970 | 2970 | |
2971 | - {record.mainPath?.includes('applyModify') ? ( | |
2971 | + {record.paths?.includes('applyModify') ? ( | |
2972 | 2972 | <Button |
2973 | 2973 | className="p-0" |
2974 | 2974 | type="link" |
... | ... | @@ -2984,7 +2984,7 @@ const OrderPage = () => { |
2984 | 2984 | '' |
2985 | 2985 | )} |
2986 | 2986 | |
2987 | - {record.mainPath?.includes('leaderAudit') ? ( | |
2987 | + {record.paths?.includes('leaderAudit') ? ( | |
2988 | 2988 | <Button |
2989 | 2989 | className="p-0" |
2990 | 2990 | type="link" |
... | ... | @@ -3016,7 +3016,7 @@ const OrderPage = () => { |
3016 | 3016 | '' |
3017 | 3017 | )} |
3018 | 3018 | |
3019 | - {record.mainPath?.includes('changeOrderAudit') ? ( | |
3019 | + {record.paths?.includes('changeOrderAudit') ? ( | |
3020 | 3020 | <Button |
3021 | 3021 | className="p-0" |
3022 | 3022 | type="link" |
... | ... | @@ -3050,7 +3050,7 @@ const OrderPage = () => { |
3050 | 3050 | '' |
3051 | 3051 | )} |
3052 | 3052 | |
3053 | - {record.mainPath?.includes('creditAudit') ? ( | |
3053 | + {record.paths?.includes('creditAudit') ? ( | |
3054 | 3054 | <Button |
3055 | 3055 | className="p-0" |
3056 | 3056 | type="link" |
... | ... | @@ -3082,7 +3082,7 @@ const OrderPage = () => { |
3082 | 3082 | '' |
3083 | 3083 | )} |
3084 | 3084 | |
3085 | - {record.mainPath?.includes('editProductionTime') ? ( | |
3085 | + {record.paths?.includes('editProductionTime') ? ( | |
3086 | 3086 | <Button |
3087 | 3087 | className="p-0" |
3088 | 3088 | type="link" |
... | ... | @@ -3097,7 +3097,7 @@ const OrderPage = () => { |
3097 | 3097 | '' |
3098 | 3098 | )} |
3099 | 3099 | |
3100 | - {record.mainPath?.includes('procureConvertProcure') ? ( | |
3100 | + {record.paths?.includes('procureConvertProcure') ? ( | |
3101 | 3101 | <Button |
3102 | 3102 | className="p-0" |
3103 | 3103 | type="link" |
... | ... | @@ -3111,7 +3111,7 @@ const OrderPage = () => { |
3111 | 3111 | |
3112 | 3112 | for (let i = 0; i < selectedSubOrders.length; i++) { |
3113 | 3113 | if ( |
3114 | - !selectedSubOrders[i].subPath.includes( | |
3114 | + !selectedSubOrders[i].paths.includes( | |
3115 | 3115 | 'procureConvertProcure', |
3116 | 3116 | ) |
3117 | 3117 | ) { |
... | ... | @@ -3129,7 +3129,7 @@ const OrderPage = () => { |
3129 | 3129 | ) : ( |
3130 | 3130 | '' |
3131 | 3131 | )} |
3132 | - {record.mainPath?.includes('sendProduct') ? ( | |
3132 | + {record.paths?.includes('sendProduct') ? ( | |
3133 | 3133 | <Button |
3134 | 3134 | className="p-0" |
3135 | 3135 | type="link" |
... | ... | @@ -3150,7 +3150,7 @@ const OrderPage = () => { |
3150 | 3150 | )} |
3151 | 3151 | |
3152 | 3152 | {/* 供应商发货 */} |
3153 | - {record.mainPath?.includes('supplierSendOrder') ? ( | |
3153 | + {record.paths?.includes('supplierSendOrder') ? ( | |
3154 | 3154 | <Button |
3155 | 3155 | className="p-0" |
3156 | 3156 | type="link" |
... | ... | @@ -3170,7 +3170,7 @@ const OrderPage = () => { |
3170 | 3170 | '' |
3171 | 3171 | )} |
3172 | 3172 | |
3173 | - {record.mainPath?.includes('procureSend') ? ( | |
3173 | + {record.paths?.includes('procureSend') ? ( | |
3174 | 3174 | <Button |
3175 | 3175 | className="p-0" |
3176 | 3176 | type="link" |
... | ... | @@ -3190,7 +3190,7 @@ const OrderPage = () => { |
3190 | 3190 | '' |
3191 | 3191 | )} |
3192 | 3192 | |
3193 | - {record.mainPath?.includes('printOrder') ? ( | |
3193 | + {record.paths?.includes('printOrder') ? ( | |
3194 | 3194 | <Button |
3195 | 3195 | className="p-0" |
3196 | 3196 | type="link" |
... | ... | @@ -3203,8 +3203,8 @@ const OrderPage = () => { |
3203 | 3203 | } |
3204 | 3204 | |
3205 | 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 | 3208 | return message.error('请选择可以打印的子订单'); |
3209 | 3209 | } |
3210 | 3210 | } |
... | ... | @@ -3219,7 +3219,7 @@ const OrderPage = () => { |
3219 | 3219 | '' |
3220 | 3220 | )} |
3221 | 3221 | |
3222 | - {record.mainPath?.includes('supplierPrint') ? ( | |
3222 | + {record.paths?.includes('supplierPrint') ? ( | |
3223 | 3223 | <Button |
3224 | 3224 | className="p-0" |
3225 | 3225 | type="link" |
... | ... | @@ -3239,7 +3239,7 @@ const OrderPage = () => { |
3239 | 3239 | '' |
3240 | 3240 | )} |
3241 | 3241 | |
3242 | - {record.mainPath?.includes('rePrintOrder') ? ( | |
3242 | + {record.paths?.includes('rePrintOrder') ? ( | |
3243 | 3243 | <Button |
3244 | 3244 | className="p-0" |
3245 | 3245 | type="link" |
... | ... | @@ -3257,7 +3257,7 @@ const OrderPage = () => { |
3257 | 3257 | ) : ( |
3258 | 3258 | '' |
3259 | 3259 | )} |
3260 | - {record.mainPath?.includes('confirmReceipt') ? ( | |
3260 | + {record.paths?.includes('confirmReceipt') ? ( | |
3261 | 3261 | <Button |
3262 | 3262 | className="p-0" |
3263 | 3263 | type="link" |
... | ... | @@ -3271,7 +3271,7 @@ const OrderPage = () => { |
3271 | 3271 | ) : ( |
3272 | 3272 | '' |
3273 | 3273 | )} |
3274 | - {record.mainPath?.includes('modifySendInformation') ? ( | |
3274 | + {record.paths?.includes('modifySendInformation') ? ( | |
3275 | 3275 | <Button |
3276 | 3276 | className="p-0" |
3277 | 3277 | type="link" |
... | ... | @@ -3301,7 +3301,7 @@ const OrderPage = () => { |
3301 | 3301 | ) : ( |
3302 | 3302 | '' |
3303 | 3303 | )} |
3304 | - {record.mainPath?.includes('invoicing') ? ( | |
3304 | + {record.paths?.includes('invoicing') ? ( | |
3305 | 3305 | <Button |
3306 | 3306 | type="link" |
3307 | 3307 | className="p-0" |
... | ... | @@ -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 | 3321 | <Button |
3322 | 3322 | type="link" |
3323 | 3323 | className="p-0" |
... | ... | @@ -3354,7 +3354,7 @@ const OrderPage = () => { |
3354 | 3354 | '' |
3355 | 3355 | )} |
3356 | 3356 | |
3357 | - {record.mainPath?.includes('applyInvoicing') ? ( | |
3357 | + {record.paths?.includes('applyInvoicing') ? ( | |
3358 | 3358 | <Button |
3359 | 3359 | type="link" |
3360 | 3360 | className="p-0" |
... | ... | @@ -3391,7 +3391,7 @@ const OrderPage = () => { |
3391 | 3391 | '' |
3392 | 3392 | )} |
3393 | 3393 | |
3394 | - {record.mainPath?.includes('updateOrder') ? ( | |
3394 | + {record.paths?.includes('updateOrder') ? ( | |
3395 | 3395 | <Button |
3396 | 3396 | className="p-0" |
3397 | 3397 | type="link" |
... | ... | @@ -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 | 3460 | 'noNeedInvoicingEdit', |
3461 | 3461 | ) ? ( |
3462 | 3462 | <Button |
... | ... | @@ -3474,7 +3474,7 @@ const OrderPage = () => { |
3474 | 3474 | '' |
3475 | 3475 | )} |
3476 | 3476 | |
3477 | - {record.mainPath?.includes('checkOrder') ? ( | |
3477 | + {record.paths?.includes('checkOrder') ? ( | |
3478 | 3478 | <Button |
3479 | 3479 | className="p-0" |
3480 | 3480 | type="link" |
... | ... | @@ -3511,7 +3511,7 @@ const OrderPage = () => { |
3511 | 3511 | '' |
3512 | 3512 | )} |
3513 | 3513 | |
3514 | - {record.mainPath?.includes('afterSalesCheck') ? ( | |
3514 | + {record.paths?.includes('afterSalesCheck') ? ( | |
3515 | 3515 | <Button |
3516 | 3516 | className="p-0" |
3517 | 3517 | type="link" |
... | ... | @@ -3544,7 +3544,7 @@ const OrderPage = () => { |
3544 | 3544 | '' |
3545 | 3545 | )} |
3546 | 3546 | |
3547 | - {record.mainPath?.includes('noNeedSend') ? ( | |
3547 | + {record.paths?.includes('noNeedSend') ? ( | |
3548 | 3548 | <ButtonConfirm |
3549 | 3549 | className="p-0" |
3550 | 3550 | title="此订单是否无需发货?" |
... | ... | @@ -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 | 3598 | <ButtonConfirm |
3599 | 3599 | className="p-0" |
3600 | 3600 | title="确认取消申请开票?" |
... | ... | @@ -3637,7 +3637,7 @@ const OrderPage = () => { |
3637 | 3637 | '' |
3638 | 3638 | )} |
3639 | 3639 | {/* 财务审核:主订单暂无 */} |
3640 | - {record.mainPath?.includes('financeCheckOrder') ? ( | |
3640 | + {record.paths?.includes('financeCheckOrder') ? ( | |
3641 | 3641 | <Button |
3642 | 3642 | className="p-0" |
3643 | 3643 | type="link" |
... | ... | @@ -3675,7 +3675,7 @@ const OrderPage = () => { |
3675 | 3675 | )} |
3676 | 3676 | |
3677 | 3677 | {/* 采购审核 */} |
3678 | - {record.mainPath?.includes('procureCheckOrder') ? ( | |
3678 | + {record.paths?.includes('procureCheckOrder') ? ( | |
3679 | 3679 | <Button |
3680 | 3680 | className="p-0" |
3681 | 3681 | type="link" |
... | ... | @@ -3708,7 +3708,7 @@ const OrderPage = () => { |
3708 | 3708 | '' |
3709 | 3709 | )} |
3710 | 3710 | |
3711 | - {record.mainPath?.includes('applyAfterSales') ? ( | |
3711 | + {record.paths?.includes('applyAfterSales') ? ( | |
3712 | 3712 | <Button |
3713 | 3713 | className="p-0" |
3714 | 3714 | type="link" |
... | ... | @@ -3743,7 +3743,7 @@ const OrderPage = () => { |
3743 | 3743 | '' |
3744 | 3744 | )} |
3745 | 3745 | |
3746 | - {/* {record.mainPath?.includes('afterSalesCompletion') ? ( | |
3746 | + {/* {record.paths?.includes('afterSalesCompletion') ? ( | |
3747 | 3747 | <ButtonConfirm |
3748 | 3748 | className="p-0" |
3749 | 3749 | title="售后是否已完成?" |
... | ... | @@ -3787,7 +3787,7 @@ const OrderPage = () => { |
3787 | 3787 | '' |
3788 | 3788 | )} */} |
3789 | 3789 | |
3790 | - {record.mainPath?.includes('salOrderSave') ? ( | |
3790 | + {record.paths?.includes('salOrderSave') ? ( | |
3791 | 3791 | <ButtonConfirm |
3792 | 3792 | className="p-0" |
3793 | 3793 | title="是否推送至金蝶ERP?" |
... | ... | @@ -3809,7 +3809,7 @@ const OrderPage = () => { |
3809 | 3809 | '' |
3810 | 3810 | )} |
3811 | 3811 | |
3812 | - {record.mainPath?.includes('salBillOutbound') ? ( | |
3812 | + {record.paths?.includes('salBillOutbound') ? ( | |
3813 | 3813 | <ButtonConfirm |
3814 | 3814 | className="p-0" |
3815 | 3815 | title="是否下推金蝶ERP出库单?" |
... | ... | @@ -3831,7 +3831,7 @@ const OrderPage = () => { |
3831 | 3831 | '' |
3832 | 3832 | )} |
3833 | 3833 | |
3834 | - {record.mainPath?.includes('orderCancel') ? ( | |
3834 | + {record.paths?.includes('orderCancel') ? ( | |
3835 | 3835 | <ButtonConfirm |
3836 | 3836 | className="p-0" |
3837 | 3837 | title="确认作废?" |
... | ... | @@ -3854,7 +3854,7 @@ const OrderPage = () => { |
3854 | 3854 | '' |
3855 | 3855 | )} |
3856 | 3856 | |
3857 | - {record.mainPath?.includes('procurePrint') ? ( | |
3857 | + {record.paths?.includes('procurePrint') ? ( | |
3858 | 3858 | <ButtonConfirm |
3859 | 3859 | className="p-0" |
3860 | 3860 | title="确认打印?" |
... | ... | @@ -4205,6 +4205,7 @@ const OrderPage = () => { |
4205 | 4205 | { |
4206 | 4206 | label: '加急开票审核(旧)', |
4207 | 4207 | key: '2', |
4208 | + disabled: true, | |
4208 | 4209 | onClick: async () => { |
4209 | 4210 | setIsMainOrder(true); |
4210 | 4211 | setCheckVisible(true); |
... | ... | @@ -4313,7 +4314,7 @@ const OrderPage = () => { |
4313 | 4314 | setIsMainOrder(true); |
4314 | 4315 | setApplyForInvoicingVisible(true); |
4315 | 4316 | }} |
4316 | - disabled={selectedSubOrderKeys?.length === 0} | |
4317 | + disabled={true} /*{selectedSubOrderKeys?.length === 0}*/ | |
4317 | 4318 | > |
4318 | 4319 | {roleCode === 'admin' ? '合并(销售)' : '合并开票'} |
4319 | 4320 | </Button>, | ... | ... |
src/pages/Order/type.d.ts
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 | 221 | pid?: number; |
222 | 222 | } |
223 | 223 | |
224 | -export interface AdminInvoicingAccountDto { | |
224 | +export interface AdminInvoicingAccountDTO { | |
225 | 225 | account?: string; |
226 | + accountText?: string; | |
226 | 227 | createByName?: string; |
227 | 228 | /** @format date-time */ |
228 | 229 | createTime?: string; |
... | ... | @@ -230,6 +231,7 @@ export interface AdminInvoicingAccountDto { |
230 | 231 | id?: number; |
231 | 232 | logicDelete?: boolean; |
232 | 233 | password?: string; |
234 | + paths?: Array<string>; | |
233 | 235 | updateByName?: string; |
234 | 236 | /** @format date-time */ |
235 | 237 | updateTime?: string; |
... | ... | @@ -698,7 +700,7 @@ export interface ApiQueryOrderStatusCountsRequest { |
698 | 700 | uid?: number; |
699 | 701 | } |
700 | 702 | |
701 | -export interface ApplyInvoiceDto { | |
703 | +export interface ApplyInvoiceDTO { | |
702 | 704 | /** |
703 | 705 | * @description |
704 | 706 | * 备注 |
... | ... | @@ -749,6 +751,9 @@ export interface ApplyInvoiceDto { |
749 | 751 | * 发票号码 |
750 | 752 | */ |
751 | 753 | invoiceNumber?: string; |
754 | + invoicingAccount?: string; | |
755 | + /** @format date */ | |
756 | + invoicingDate?: string; | |
752 | 757 | /** |
753 | 758 | * @description |
754 | 759 | * 开票人 |
... | ... | @@ -770,8 +775,6 @@ export interface ApplyInvoiceDto { |
770 | 775 | * 开具类型 |
771 | 776 | */ |
772 | 777 | invoicingTypeText?: string; |
773 | - /** @format date */ | |
774 | - invoicingdate?: string; | |
775 | 778 | /** |
776 | 779 | * @description |
777 | 780 | * 是否加急 |
... | ... | @@ -1437,7 +1440,7 @@ export interface InvoiceDto { |
1437 | 1440 | subOrderIds?: Array<number>; |
1438 | 1441 | } |
1439 | 1442 | |
1440 | -export interface InvoiceRecordDto { | |
1443 | +export interface InvoiceRecordDTO { | |
1441 | 1444 | applyInvoicingNotes?: string; |
1442 | 1445 | /** |
1443 | 1446 | * @description |
... | ... | @@ -1484,6 +1487,9 @@ export interface InvoiceRecordDto { |
1484 | 1487 | * 发票号码 |
1485 | 1488 | */ |
1486 | 1489 | invoiceNumber?: string; |
1490 | + invoicingAccount?: string; | |
1491 | + /** @format date */ | |
1492 | + invoicingDate?: string; | |
1487 | 1493 | /** |
1488 | 1494 | * @description |
1489 | 1495 | * 开票人 |
... | ... | @@ -1505,8 +1511,6 @@ export interface InvoiceRecordDto { |
1505 | 1511 | * 开具类型 |
1506 | 1512 | */ |
1507 | 1513 | invoicingTypeText?: string; |
1508 | - /** @format date */ | |
1509 | - invoicingdate?: string; | |
1510 | 1514 | /** |
1511 | 1515 | * @description |
1512 | 1516 | * 是否加急 |
... | ... | @@ -1695,6 +1699,18 @@ export interface InvoiceRecordQueryRequest { |
1695 | 1699 | /** |
1696 | 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 | 1714 | * @format date-time |
1699 | 1715 | */ |
1700 | 1716 | invoicingTimeGe?: string; |
... | ... | @@ -2589,6 +2605,7 @@ export interface QueryClientDto { |
2589 | 2605 | companyAddressLike?: string; |
2590 | 2606 | companyIds?: Array<number>; |
2591 | 2607 | companyNameLike?: string; |
2608 | + createByUserIdIn?: Array<number>; | |
2592 | 2609 | /** @format date-time */ |
2593 | 2610 | createTimeGe?: string; |
2594 | 2611 | /** @format date-time */ |
... | ... | @@ -2597,6 +2614,7 @@ export interface QueryClientDto { |
2597 | 2614 | current?: number; |
2598 | 2615 | /** @format int32 */ |
2599 | 2616 | end?: number; |
2617 | + groupFilter?: string; | |
2600 | 2618 | hasScheme?: boolean; |
2601 | 2619 | level?: string; |
2602 | 2620 | namelike?: string; |
... | ... | @@ -2728,6 +2746,18 @@ export interface QueryInvoiceRecordDto { |
2728 | 2746 | /** |
2729 | 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 | 2761 | * @format date-time |
2732 | 2762 | */ |
2733 | 2763 | invoicingTimeGe?: string; |
... | ... | @@ -2908,75 +2938,53 @@ export interface ReissueInvoiceDto { |
2908 | 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 | 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 | 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 | 2957 | * @description |
2939 | - * 关联的账号id | |
2958 | + * 主键id | |
2940 | 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 | 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 | 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 | 2976 | * @description |
2971 | - * 课题组名称 | |
2977 | + * 冗余字段,当前状态备注 | |
2972 | 2978 | */ |
2973 | - group?: string; | |
2979 | + statusNotes?: string; | |
2974 | 2980 | /** |
2975 | 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 | 2990 | export interface ResearchGroupDeleteRequest { |
... | ... | @@ -2997,16 +3005,20 @@ export interface ResearchGroupDetailRequest { |
2997 | 3005 | } |
2998 | 3006 | |
2999 | 3007 | export interface ResearchGroupEditRequest { |
3008 | + accounts?: Array<ResearchGroupAccounts>; | |
3000 | 3009 | /** |
3001 | 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 | 3018 | * @description |
3007 | 3019 | * 课题组名称 |
3008 | 3020 | */ |
3009 | - group?: string; | |
3021 | + groupName?: string; | |
3010 | 3022 | /** |
3011 | 3023 | * @description |
3012 | 3024 | * 主键id |
... | ... | @@ -3015,14 +3027,30 @@ export interface ResearchGroupEditRequest { |
3015 | 3027 | id?: number; |
3016 | 3028 | /** |
3017 | 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 | 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 | 3056 | export interface ResearchGroupListRequest { |
... | ... | @@ -3031,6 +3059,11 @@ export interface ResearchGroupListRequest { |
3031 | 3059 | * 预存账号手机号 |
3032 | 3060 | */ |
3033 | 3061 | accountPhone?: string; |
3062 | + /** | |
3063 | + * @description | |
3064 | + * 公司名称 | |
3065 | + */ | |
3066 | + companyNameLike?: string; | |
3034 | 3067 | /** @format int32 */ |
3035 | 3068 | current?: number; |
3036 | 3069 | /** @format int32 */ |
... | ... | @@ -3042,6 +3075,11 @@ export interface ResearchGroupListRequest { |
3042 | 3075 | groupName?: string; |
3043 | 3076 | /** |
3044 | 3077 | * @description |
3078 | + * id | |
3079 | + */ | |
3080 | + idIn?: Array<number>; | |
3081 | + /** | |
3082 | + * @description | |
3045 | 3083 | * 课题组负责人 |
3046 | 3084 | */ |
3047 | 3085 | leaderName?: string; |
... | ... | @@ -3059,30 +3097,34 @@ export interface ResearchGroupListRequest { |
3059 | 3097 | pageSize?: number; |
3060 | 3098 | /** @format int32 */ |
3061 | 3099 | start?: number; |
3100 | + /** | |
3101 | + * @description | |
3102 | + * 状态 | |
3103 | + */ | |
3104 | + status?: string; | |
3062 | 3105 | /** @format int32 */ |
3063 | 3106 | total?: number; |
3064 | 3107 | } |
3065 | 3108 | |
3066 | -export interface ResearchGroupMemberAddRequest { | |
3109 | +export interface ResearchGroupMemberRequestAddRequest { | |
3067 | 3110 | /** |
3068 | 3111 | * @description |
3069 | - * 课题组ID | |
3070 | - * @format int64 | |
3112 | + * 审核备注 | |
3071 | 3113 | */ |
3072 | - groupId?: number; | |
3114 | + auditNotes?: string; | |
3073 | 3115 | /** |
3074 | 3116 | * @description |
3075 | - * 成员名称 | |
3117 | + * 审核状态:CREATED-未审核 AUDIT_FAIL-审核不通过 AUDIT_PASS-审核通过 | |
3076 | 3118 | */ |
3077 | - memberName?: string; | |
3119 | + auditStatus?: string; | |
3078 | 3120 | /** |
3079 | 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 | 3129 | * @description |
3088 | 3130 | * 课题组ID |
... | ... | @@ -3091,10 +3133,16 @@ export interface ResearchGroupMemberEditRequest { |
3091 | 3133 | groupId?: number; |
3092 | 3134 | /** |
3093 | 3135 | * @description |
3136 | + * 课题组名称 | |
3137 | + */ | |
3138 | + groupName?: string; | |
3139 | + /** | |
3140 | + * @description | |
3094 | 3141 | * 主键id |
3095 | 3142 | * @format int64 |
3096 | 3143 | */ |
3097 | 3144 | id?: number; |
3145 | + logicDelete?: boolean; | |
3098 | 3146 | /** |
3099 | 3147 | * @description |
3100 | 3148 | * 成员名称 |
... | ... | @@ -3105,26 +3153,26 @@ export interface ResearchGroupMemberEditRequest { |
3105 | 3153 | * 成员手机号 |
3106 | 3154 | */ |
3107 | 3155 | memberPhone?: string; |
3108 | -} | |
3109 | - | |
3110 | -export interface ResearchGroupMemberRequestAddRequest { | |
3156 | + members?: Array<ResearchGroupMembers>; | |
3157 | + paths?: Array<string>; | |
3111 | 3158 | /** |
3112 | 3159 | * @description |
3113 | - * 课题组ID | |
3114 | - * @format int64 | |
3160 | + * 权限 | |
3115 | 3161 | */ |
3116 | - groupId?: number; | |
3162 | + permissions?: Array<string>; | |
3117 | 3163 | /** |
3118 | 3164 | * @description |
3119 | - * 课题组名称 | |
3165 | + * 申请备注 | |
3120 | 3166 | */ |
3121 | - groupName?: string; | |
3122 | - members?: Array<ResearchGroupMemberAddRequest>; | |
3167 | + requestNotes?: string; | |
3123 | 3168 | /** |
3124 | 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 | 3178 | export interface ResearchGroupMemberRequestDeleteRequest { |
... | ... | @@ -3147,6 +3195,24 @@ export interface ResearchGroupMemberRequestDetailRequest { |
3147 | 3195 | export interface ResearchGroupMemberRequestEditRequest { |
3148 | 3196 | /** |
3149 | 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 | 3216 | * 课题组ID |
3151 | 3217 | * @format int64 |
3152 | 3218 | */ |
... | ... | @@ -3162,6 +3228,7 @@ export interface ResearchGroupMemberRequestEditRequest { |
3162 | 3228 | * @format int64 |
3163 | 3229 | */ |
3164 | 3230 | id?: number; |
3231 | + logicDelete?: boolean; | |
3165 | 3232 | /** |
3166 | 3233 | * @description |
3167 | 3234 | * 成员名称 |
... | ... | @@ -3172,11 +3239,25 @@ export interface ResearchGroupMemberRequestEditRequest { |
3172 | 3239 | * 成员手机号 |
3173 | 3240 | */ |
3174 | 3241 | memberPhone?: string; |
3242 | + paths?: Array<string>; | |
3243 | + /** | |
3244 | + * @description | |
3245 | + * 权限 | |
3246 | + */ | |
3247 | + permissions?: Array<string>; | |
3175 | 3248 | /** |
3176 | 3249 | * @description |
3177 | 3250 | * 申请备注 |
3178 | 3251 | */ |
3179 | 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 | 3263 | export interface ResearchGroupMemberRequestsRequest { |
... | ... | @@ -3385,6 +3466,7 @@ export interface SubOrder { |
3385 | 3466 | /** @format date-time */ |
3386 | 3467 | updateTime?: string; |
3387 | 3468 | urgentInvoiceAuditNotes?: string; |
3469 | + useOldInvoicingProcess?: boolean; | |
3388 | 3470 | /** @format int32 */ |
3389 | 3471 | version?: number; |
3390 | 3472 | } |
... | ... | @@ -3815,6 +3897,76 @@ export interface InvoiceDetail { |
3815 | 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 | 3970 | export interface SalesRechargePrepaymentAuditRequest { |
3819 | 3971 | /** |
3820 | 3972 | * @description | ... | ... |
src/services/request.ts
... | ... | @@ -9,7 +9,7 @@ import type { |
9 | 9 | AdminClientDto, |
10 | 10 | AdminDeptQueryVO, |
11 | 11 | AdminDeptVO, |
12 | - AdminInvoicingAccountDto, | |
12 | + AdminInvoicingAccountDTO, | |
13 | 13 | AdminJobQueryVO, |
14 | 14 | AdminJobVO, |
15 | 15 | AdminMenuQueryVO, |
... | ... | @@ -31,7 +31,7 @@ import type { |
31 | 31 | ApiOrderEvaluatedRequest, |
32 | 32 | ApiQueryOrderDetailRequest, |
33 | 33 | ApiQueryOrderStatusCountsRequest, |
34 | - ApplyInvoiceDto, | |
34 | + ApplyInvoiceDTO, | |
35 | 35 | AuditDto, |
36 | 36 | AuditVO, |
37 | 37 | CancelInvoiceAndBankStatementDto, |
... | ... | @@ -54,7 +54,7 @@ import type { |
54 | 54 | Dto, |
55 | 55 | InventoryMaterialStockReq, |
56 | 56 | InvoiceDto, |
57 | - InvoiceRecordDto, | |
57 | + InvoiceRecordDTO, | |
58 | 58 | InvoiceRecordQueryRequest, |
59 | 59 | MainOrderqueryRequest, |
60 | 60 | MaterialListReply, |
... | ... | @@ -63,7 +63,6 @@ import type { |
63 | 63 | MaterialUnitListRes, |
64 | 64 | MeasureUnitListRes, |
65 | 65 | MessageQueryDTO, |
66 | - ModelAndView, | |
67 | 66 | OrderAddVO, |
68 | 67 | OrderAuditLogQueryVO, |
69 | 68 | OrderBaseInfoQueryVO, |
... | ... | @@ -474,6 +473,60 @@ export const postAdminClientExportClients = /* #__PURE__ */ (() => { |
474 | 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 | 530 | /** @description request parameter type for postAdminClientImportClient */ |
478 | 531 | export interface PostAdminClientImportClientOption { |
479 | 532 | /** |
... | ... | @@ -3172,7 +3225,9 @@ export interface GetErrorResponse { |
3172 | 3225 | * @description |
3173 | 3226 | * OK |
3174 | 3227 | */ |
3175 | - 200: ModelAndView; | |
3228 | + 200: { | |
3229 | + [propertyName: string]: any; | |
3230 | + }; | |
3176 | 3231 | /** |
3177 | 3232 | * @description |
3178 | 3233 | * Unauthorized |
... | ... | @@ -3193,9 +3248,9 @@ export interface GetErrorResponse { |
3193 | 3248 | export type GetErrorResponseSuccess = GetErrorResponse[200]; |
3194 | 3249 | /** |
3195 | 3250 | * @description |
3196 | - * errorHtml | |
3251 | + * error | |
3197 | 3252 | * @tags basic-error-controller |
3198 | - * @produces text/html | |
3253 | + * @produces * | |
3199 | 3254 | */ |
3200 | 3255 | export const getError = /* #__PURE__ */ (() => { |
3201 | 3256 | const method = 'get'; |
... | ... | @@ -3219,7 +3274,9 @@ export interface PutErrorResponse { |
3219 | 3274 | * @description |
3220 | 3275 | * OK |
3221 | 3276 | */ |
3222 | - 200: ModelAndView; | |
3277 | + 200: { | |
3278 | + [propertyName: string]: any; | |
3279 | + }; | |
3223 | 3280 | /** |
3224 | 3281 | * @description |
3225 | 3282 | * Created |
... | ... | @@ -3245,9 +3302,9 @@ export interface PutErrorResponse { |
3245 | 3302 | export type PutErrorResponseSuccess = PutErrorResponse[200]; |
3246 | 3303 | /** |
3247 | 3304 | * @description |
3248 | - * errorHtml | |
3305 | + * error | |
3249 | 3306 | * @tags basic-error-controller |
3250 | - * @produces text/html | |
3307 | + * @produces * | |
3251 | 3308 | * @consumes application/json |
3252 | 3309 | */ |
3253 | 3310 | export const putError = /* #__PURE__ */ (() => { |
... | ... | @@ -3272,7 +3329,9 @@ export interface PostErrorResponse { |
3272 | 3329 | * @description |
3273 | 3330 | * OK |
3274 | 3331 | */ |
3275 | - 200: ModelAndView; | |
3332 | + 200: { | |
3333 | + [propertyName: string]: any; | |
3334 | + }; | |
3276 | 3335 | /** |
3277 | 3336 | * @description |
3278 | 3337 | * Created |
... | ... | @@ -3298,9 +3357,9 @@ export interface PostErrorResponse { |
3298 | 3357 | export type PostErrorResponseSuccess = PostErrorResponse[200]; |
3299 | 3358 | /** |
3300 | 3359 | * @description |
3301 | - * errorHtml | |
3360 | + * error | |
3302 | 3361 | * @tags basic-error-controller |
3303 | - * @produces text/html | |
3362 | + * @produces * | |
3304 | 3363 | * @consumes application/json |
3305 | 3364 | */ |
3306 | 3365 | export const postError = /* #__PURE__ */ (() => { |
... | ... | @@ -3325,7 +3384,9 @@ export interface DeleteErrorResponse { |
3325 | 3384 | * @description |
3326 | 3385 | * OK |
3327 | 3386 | */ |
3328 | - 200: ModelAndView; | |
3387 | + 200: { | |
3388 | + [propertyName: string]: any; | |
3389 | + }; | |
3329 | 3390 | /** |
3330 | 3391 | * @description |
3331 | 3392 | * No Content |
... | ... | @@ -3346,9 +3407,9 @@ export interface DeleteErrorResponse { |
3346 | 3407 | export type DeleteErrorResponseSuccess = DeleteErrorResponse[200]; |
3347 | 3408 | /** |
3348 | 3409 | * @description |
3349 | - * errorHtml | |
3410 | + * error | |
3350 | 3411 | * @tags basic-error-controller |
3351 | - * @produces text/html | |
3412 | + * @produces * | |
3352 | 3413 | */ |
3353 | 3414 | export const deleteError = /* #__PURE__ */ (() => { |
3354 | 3415 | const method = 'delete'; |
... | ... | @@ -3372,7 +3433,9 @@ export interface OptionsErrorResponse { |
3372 | 3433 | * @description |
3373 | 3434 | * OK |
3374 | 3435 | */ |
3375 | - 200: ModelAndView; | |
3436 | + 200: { | |
3437 | + [propertyName: string]: any; | |
3438 | + }; | |
3376 | 3439 | /** |
3377 | 3440 | * @description |
3378 | 3441 | * No Content |
... | ... | @@ -3393,9 +3456,9 @@ export interface OptionsErrorResponse { |
3393 | 3456 | export type OptionsErrorResponseSuccess = OptionsErrorResponse[200]; |
3394 | 3457 | /** |
3395 | 3458 | * @description |
3396 | - * errorHtml | |
3459 | + * error | |
3397 | 3460 | * @tags basic-error-controller |
3398 | - * @produces text/html | |
3461 | + * @produces * | |
3399 | 3462 | * @consumes application/json |
3400 | 3463 | */ |
3401 | 3464 | export const optionsError = /* #__PURE__ */ (() => { |
... | ... | @@ -3420,7 +3483,9 @@ export interface HeadErrorResponse { |
3420 | 3483 | * @description |
3421 | 3484 | * OK |
3422 | 3485 | */ |
3423 | - 200: ModelAndView; | |
3486 | + 200: { | |
3487 | + [propertyName: string]: any; | |
3488 | + }; | |
3424 | 3489 | /** |
3425 | 3490 | * @description |
3426 | 3491 | * No Content |
... | ... | @@ -3441,9 +3506,9 @@ export interface HeadErrorResponse { |
3441 | 3506 | export type HeadErrorResponseSuccess = HeadErrorResponse[200]; |
3442 | 3507 | /** |
3443 | 3508 | * @description |
3444 | - * errorHtml | |
3509 | + * error | |
3445 | 3510 | * @tags basic-error-controller |
3446 | - * @produces text/html | |
3511 | + * @produces * | |
3447 | 3512 | * @consumes application/json |
3448 | 3513 | */ |
3449 | 3514 | export const headError = /* #__PURE__ */ (() => { |
... | ... | @@ -3468,7 +3533,9 @@ export interface PatchErrorResponse { |
3468 | 3533 | * @description |
3469 | 3534 | * OK |
3470 | 3535 | */ |
3471 | - 200: ModelAndView; | |
3536 | + 200: { | |
3537 | + [propertyName: string]: any; | |
3538 | + }; | |
3472 | 3539 | /** |
3473 | 3540 | * @description |
3474 | 3541 | * No Content |
... | ... | @@ -3489,9 +3556,9 @@ export interface PatchErrorResponse { |
3489 | 3556 | export type PatchErrorResponseSuccess = PatchErrorResponse[200]; |
3490 | 3557 | /** |
3491 | 3558 | * @description |
3492 | - * errorHtml | |
3559 | + * error | |
3493 | 3560 | * @tags basic-error-controller |
3494 | - * @produces text/html | |
3561 | + * @produces * | |
3495 | 3562 | * @consumes application/json |
3496 | 3563 | */ |
3497 | 3564 | export const patchError = /* #__PURE__ */ (() => { |
... | ... | @@ -10517,7 +10584,7 @@ export type PostResearchGroupMemberRequestsAddResponseSuccess = |
10517 | 10584 | /** |
10518 | 10585 | * @description |
10519 | 10586 | * 新增申请信息 |
10520 | - * @tags research-group-member-requests-controller | |
10587 | + * @tags research-group-request-controller | |
10521 | 10588 | * @produces * |
10522 | 10589 | * @consumes application/json |
10523 | 10590 | */ |
... | ... | @@ -10588,7 +10655,7 @@ export type PostResearchGroupMemberRequestsDeleteResponseSuccess = |
10588 | 10655 | /** |
10589 | 10656 | * @description |
10590 | 10657 | * 删除申请信息 |
10591 | - * @tags research-group-member-requests-controller | |
10658 | + * @tags research-group-request-controller | |
10592 | 10659 | * @produces * |
10593 | 10660 | * @consumes application/json |
10594 | 10661 | */ |
... | ... | @@ -10659,7 +10726,7 @@ export type PostResearchGroupMemberRequestsDetailResponseSuccess = |
10659 | 10726 | /** |
10660 | 10727 | * @description |
10661 | 10728 | * 查询申请信息 |
10662 | - * @tags research-group-member-requests-controller | |
10729 | + * @tags research-group-request-controller | |
10663 | 10730 | * @produces * |
10664 | 10731 | * @consumes application/json |
10665 | 10732 | */ |
... | ... | @@ -10730,7 +10797,7 @@ export type PostResearchGroupMemberRequestsEditResponseSuccess = |
10730 | 10797 | /** |
10731 | 10798 | * @description |
10732 | 10799 | * 编辑申请信息 |
10733 | - * @tags research-group-member-requests-controller | |
10800 | + * @tags research-group-request-controller | |
10734 | 10801 | * @produces * |
10735 | 10802 | * @consumes application/json |
10736 | 10803 | */ |
... | ... | @@ -10801,7 +10868,7 @@ export type PostResearchGroupMemberRequestsListResponseSuccess = |
10801 | 10868 | /** |
10802 | 10869 | * @description |
10803 | 10870 | * 申请列表 |
10804 | - * @tags research-group-member-requests-controller | |
10871 | + * @tags research-group-request-controller | |
10805 | 10872 | * @produces * |
10806 | 10873 | * @consumes application/json |
10807 | 10874 | */ |
... | ... | @@ -11865,6 +11932,60 @@ export const postServiceConstCanApplyAfterInvoicingStatus = |
11865 | 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 | 11989 | /** @description response type for postServiceConstClientLevels */ |
11869 | 11990 | export interface PostServiceConstClientLevelsResponse { |
11870 | 11991 | /** |
... | ... | @@ -11973,6 +12094,77 @@ export const postServiceConstGetPayeeEnum = /* #__PURE__ */ (() => { |
11973 | 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 | 12168 | /** @description response type for postServiceConstInvoiceType */ |
11977 | 12169 | export interface PostServiceConstInvoiceTypeResponse { |
11978 | 12170 | /** |
... | ... | @@ -12152,6 +12344,60 @@ export const postServiceConstListInvoiceDetailNames = /* #__PURE__ */ (() => { |
12152 | 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 | 12401 | /** @description response type for postServiceConstNotCanModifyInvoiceRecordStatus */ |
12156 | 12402 | export interface PostServiceConstNotCanModifyInvoiceRecordStatusResponse { |
12157 | 12403 | /** |
... | ... | @@ -12416,7 +12662,7 @@ export interface PostServiceInvoiceAddInvoicingAccountOption { |
12416 | 12662 | /** |
12417 | 12663 | @description |
12418 | 12664 | dto */ |
12419 | - dto: AdminInvoicingAccountDto; | |
12665 | + dto: AdminInvoicingAccountDTO; | |
12420 | 12666 | }; |
12421 | 12667 | } |
12422 | 12668 | |
... | ... | @@ -12487,7 +12733,7 @@ export interface PostServiceInvoiceApplyInvoiceOption { |
12487 | 12733 | /** |
12488 | 12734 | @description |
12489 | 12735 | dto */ |
12490 | - dto: ApplyInvoiceDto; | |
12736 | + dto: ApplyInvoiceDTO; | |
12491 | 12737 | }; |
12492 | 12738 | } |
12493 | 12739 | |
... | ... | @@ -13534,7 +13780,7 @@ export interface PostServiceInvoiceModifyRecordOption { |
13534 | 13780 | /** |
13535 | 13781 | @description |
13536 | 13782 | dto */ |
13537 | - dto: InvoiceRecordDto; | |
13783 | + dto: InvoiceRecordDTO; | |
13538 | 13784 | }; |
13539 | 13785 | } |
13540 | 13786 | ... | ... |